跳转到主要内容

Iconify API实现和Django项目的工具

项目描述

这个可重用应用程序帮助将Iconify集成到Django项目中。Iconify是一个统一的图标框架,提供访问来自不同图标集的40,000+个图标。

Iconify替代了传统的图标字体,声称这些字体对于某些图标集来说会太大。相反,它提供了一个API,可以从其集合中添加SVG格式的图标。

django-iconify 简化了与Django的集成。为了提高性能,Iconify 使用服务器端API来请求图标(批量请求,应用转换等)。上游提供了由CDN提供服务的中央API以及用PHP或Node.js编写的自托管选项,这些都不适合Django项目。 django-iconify 将Iconify API实现为一个可重用的Django应用程序。

安装

要将 django-iconify 添加到项目中,首先将其作为依赖项添加到项目中,例如使用 poetry

$ poetry add django-iconify

然后,将其添加到您的 INSTALLED_APPS 设置中,以便以后可以使用其视图

INSTALLED_APPS = [
    ...
    "dj_iconify.apps.DjIconifyConfig",
    ...
]

您需要通过某种方式使 JSON收藏集 可用。您可以手动下载它,或使用您喜欢的资产管理库。例如,您可以使用 django-yarnpkg 依赖 @iconify/json Yarn包

YARN_INSTALLED_APPS = [
  "@iconify/json",
]
NODE_MODULES_ROOT = os.path.join(BASE_DIR, "node_modules")

无论哪种方式,最后,您都必须在设置中配置收集集的路径

ICONIFY_JSON_ROOT = os.path.join(NODE_MODULES_ROOT, "@iconify", "json")

如果您不使用 django-yarnpkg,则手动构建路径或使用资产管理器提供的任何机制。

您可以使用两个设置来配置可用的图标收藏集

ICONIFY_COLLECTIONS_ALLOWED = ["foo", "bar"]

此列表控制哪些收藏集可以使用。如果设置为非空列表,则只允许列表中列出的收藏集。

ICONIFY_COLLECTIONS_DISALLOWED = ["foo", "bar"]

另一方面,此列表控制哪些收藏集不能使用。如果此列表包含值,而 COLLECTIONS_ALLOWED 没有设置,则允许所有列表中未列出的收藏集。

此允许/拒绝功能可用于仅因设计原则或法律原因应仅提供有限集合的情况。

最后,将URL包含在您的 urlpatterns

from django.urls import include, path

urlpatterns = [
    path("icons/", include("dj_iconify.urls")),
]

使用方法

Iconify SVG框架

要使用 Iconify SVG框架,从某处获取其JavaScript(例如,再次使用 django-yarnpkg,或直接从CDN,从您自己的静态文件或任何地方)。

django-iconify 提供一个视图,返回一个小的JavaScript片段,用于配置 Iconify SVG框架 以使用其API端点。在以下示例中,我们首先加载此配置片段,然后从CDN包含 Iconify SVG框架(不要在生产环境中这样做,因为数据保护很重要)

<script type="text/javascript" src="{% url 'config.js' %}"></script>
<script type="text/javascript" src="https://code.iconify.design/1/1.0.6/iconify.min.js"></script>

直接加载SVG(“如何在CSS中使用Iconify”)

django-iconify 还实现了直接SVG API。目前,您必须使用Django的常规URL反向解析器构建SVG URL,或手动构建

<img src="{% url 'iconify_svg' 'mdi' 'account' %}?rotate=90deg %}" />

有关支持哪些查询参数的文档,请参阅 如何在CSS中使用Iconify 上的文档。

将来,将提供一个模板标记来简化此操作。

直接在模板中包含SVG

尚未实现

将来,将提供一个模板标记,可以直接在模板中渲染SVG图标,这在从外部资源检索不理想的情况下可能很有用,例如HTML电子邮件。

示例

源代码分发以及 Git存储库 包含一个完整的应用程序示例,该应用程序在 /icons/ 下提供API,在 /test.html 下提供测试页面。

它被简化为一个最小的工作示例,以方便读者。

项目详情


下载文件

下载适合您平台的文件。如果您不确定选择哪个,请了解更多关于安装包的信息。

源代码发行版

django_iconify-0.4.tar.gz (16.8 kB 查看散列值)

上传时间 源代码

构建发行版

django_iconify-0.4-py3-none-any.whl (19.6 kB 查看散列值)

上传时间 Python 3

由以下支持