跳转到主要内容

从SVG图标生成精灵

项目描述

© 2014 Thomas Khyn

Python包,用于从SVG图标生成精灵

此包受到了Joschi Kuphal的Iconizrgrunt-iconizr的启发。

根据Joschi的话,Iconizr …

... takes a folder of SVG images and creates a CSS icon kit out of them.
Depending on the client's capabilities, icons are served as SVG / PNG
sprite or embedded data URIs. iconizr creates suitable CSS / Sass / LESS
etc. resources and a JavaScript loader for easy integration into your
HTML documents.

尚未实现原始Iconizr的所有功能,但大部分都已在此实现。

在Python 2.6和2.7上运行。

安装

使用pip安装,非常简单

pip install pyconizr

需求

Pyconizr将安装所有必需的依赖项,除了Cairo和librsvg以及它们的Python绑定,这些绑定用于生成PNG图像。如果您想使用pyconizr的PNG功能,请确保它们已安装在您的环境中。

如果您使用的是Windows,安装它们的最快方式是使用PyGTK(适用于Python 2.6和2.7)或PyGI(适用于Python 2.7)。

使用方法

从命令行

pyconizr [options]

从Python

from pyconizr import iconize
iconize(option1=val1, option2=val2, ...)

默认行为

默认情况下,pyconizr将
  • 使用scour优化当前工作目录中的每个SVG文件(不覆盖它们)

  • 将它们连接起来,在当前工作目录/sprites/sourcedir_name.svg中创建一个优化的SVG精灵

  • 从SVG精灵创建PNG精灵,为当前工作目录/sprites/sourcedir_name.png

  • 在当前工作目录/sourcedir_name下创建一个CSS/SCSS/什么的文件

这可以通过以下选项进行配置。

选项

所有选项都应该在命令行中以--前缀(如果不使用快捷方式),或者应该作为iconize函数的关键字参数提供。

in, -i

用于生成精灵图的输入目录或文件(作为通配符)。只有有效的SVG文件将被考虑,因此没有必要添加*.svg通配符(“dir/*”只会包括dir中的*.svg文件)。默认为当前工作目录。

out, -o

生成输出文件的输出路径(CSS,SASS等)。如果该目录不存在,将会创建它。默认为当前工作目录下的‘out’目录。

out-sprite, -s

SVG和PNG精灵图的输出路径。如果该目录不存在,将会创建它。默认为输出目录下的‘sprites’目录。

out-icons

优化后的SVG和栅格化PNG单个图标的输出路径。如果为空,则不会生成图标。如果已定义,将生成一个带有‘-icons’后缀的辅助输出文件。默认为空白(不生成图标)。

render, -r
输出应该如何渲染。可以是
  • css: 用于CSS输出[默认]

  • scss: 用于SASS输出

  • no或python中的Falsy:不输出(仅生成精灵图)

  • 自定义Jinja2模板文件的路径,用于100%自定义输出(查看现有模板以获取可用变量)

static-url

静态目录的绝对URL。用于从生成的输出中链接到精灵图和图标文件。默认为/static

sprites-url

精灵目录的绝对或相对(相对于static-url)URL。用于链接到精灵文件。默认为sprites

icons-url

图标目录的绝对或相对(相对于static-url)URL。用于链接到单个图标。如果不定义out-icons,则不使用。默认为icons

padding

图标周围的填充,以像素为单位。默认为0

layout

精灵图布局。可以是垂直、水平或对角线。默认为vertical

png/nopng

默认情况下,将生成png回退。当使用iconize函数时,使用png=False来禁用此行为。在命令行中使用--nopng。默认为True

data

是否应将SVG和PNG图像链接为dataURIs?请记住,如果CSS不使用dataURIs,页面加载速度会更快(感谢缓存与dataURI解码)。默认为False

class

精灵图中所有图标的公共CSS类。默认为None

selectors

逗号分隔的可以选择嵌入到图标文件名中的选择器,使用_分隔符。例如,一个名为_filename_hover.svg的文件将被视为图标名的悬停版本。默认为hover,target,active

unit

用于background-position属性的单元。仅适用于px%。默认为px

scour-*

所有使用‘scour-’前缀的scour选项。例如,‘strip-xml-prolog’变为‘scour-strip-xml-prolog’。默认为生成精灵图的最佳优化参数。

为scour参数添加了2个命令行选项

scour-disable-comment-stripping

Pyconizr默认启用注释剥离功能。当使用iconize函数时,使用enable_comment_stripping=False来禁用此功能。从命令行需要使用--scour-disable-comment-stripping

scour-verbose

Pyconizr默认以安静模式运行scour。如果您需要查看scour的非错误输出,请在iconize函数中使用quiet=False,或从命令行使用--scour-verbose

项目详情


下载文件

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

源分发

pyconizr-0.1b2.zip (23.5 kB 查看哈希值)

上传时间

由以下支持