增强网页排版的过滤器,包括对Django & Jinja模板的支持
项目描述
Typogrify提供一组自定义过滤器,可自动将各种转换应用于纯文本,以生成具有改进排版的HTML。虽然通常与Jinja和Django模板系统一起使用,但这些过滤器可以在任何环境中使用。
安装
以下命令将通过 pip 安装。请注意包名。
pip install typogrify
或者,您可以在项目的根目录内运行以下命令。
python setup.py install
最后但同样重要的是,您可以简单地将附带的 typogrify 文件夹移动到您的 Python 路径。
要求
支持 Python 2.3 及以上版本,包括 Python 3。唯一的依赖是 John Gruber 项目的一个 Python 版本,名为 SmartyPants。
用法
您可以通过从 typogrify.filters 导入来在任何环境中使用过滤器。
from typogrify.filters import typogrify content = typogrify(content)
对于 Django,您可以将 typogrify 添加到您希望使用它的任何 Django 项目的 INSTALLED_APPS 设置中,然后在模板中使用 {% load typogrify_tags %} 来加载它提供的过滤器。
Jinja 的实验性支持在 typogrify.templatetags.jinja_filters 中。
包含的过滤器
amp
将 HTML 中的 & 符号包裹在 <span class="amp"> 中,以便可以使用 CSS 进行样式化。并且将 & 符号规范化为 &。要求 & 符号两侧有空格或 。不会改变已经以这种方式包裹的任何 & 符号。
caps
将多个大写字母包裹在 <span class="caps"> 中,以便可以使用 CSS 进行样式化。
initial_quotes
将首行引号包裹在 <span class="dquo">(双引号)或 <span class="quo">(单引号)中。在以下块元素内有效:
h1、h2、h3、h4、h5、h6
p
li
dt
dd
还考虑了潜在的开头内联元素: a、em、strong、span、b、i。
smartypants
应用 SmartyPants。
typogrify
按顺序应用以下所有过滤器
amp
widont
smartypants
caps
initial_quotes
widont
基于 Shaun Inman 的同名 PHP 工具,将字符串中最后两个单词之间的空格替换为 以避免只有一词的最后一行文本。
在以下块元素内有效
h1、h2、h3、h4、h5、h6
p
li
dt
dd
还考虑了潜在的结尾内联元素: a、em、strong、span、b、i。