对于专注于性能的django开发人员来说。最小化你的django模板,这样你的html已经最小化了。

django-template-minimizer的Python项目详细描述


django模板最小化器

对于专注于性能的django开发人员来说。一次最小化模板,而不是每次服务时最小化html。

Download:http://pypi.python.org/pypi/django-template-minimizer/
Source:http://github.com/Charles-Kaminski/django-template-minimizer
License:MIT

运行此django命令以最小化django模板。不需要重新处理HTML以最小化它;因为HTML现在是以最小化的形式组合在一起的。

该命令最小化django模板以及模板内的html、in-line<script>javascript和in-line<style>css。该命令包括最小化和撤消选项。html、css和javascript的最小化是可插入的,因此您可以覆盖或添加自己的最小化。

安装Django Template Minimizer

您可以通过python包索引(pypi)或从源代码安装django-template-minimizer

使用pip安装(推荐):

$ pip install django-template-minimizer

使用easy_install:安装

$ easy_install django-template-minimizer

在Django项目的设置文件中注册应用程序:

import tmin
...
INSTALLED_APPS += ('tmin',)

要从源代码安装,请从github(http://github.com/Charles-Kaminski/django-template-minimizer/downloads)下载源代码。将其解压缩,并将其作为另一个django应用程序与django项目放在文件夹中。在Django项目的设置文件中注册应用程序。

用法

命令

$ python manage.py minimizetemplates    -> help text
$ python manage.py minimizetemplates -m -> minimize
$ python manage.py minimizetemplates -u -> undo

在开发之后,使用这些命令最小化(或取消最小化)django模板。这样,当对模板求值时,模板很小,所提供的html已经最小化;省去了任何后期处理最小化步骤。

使用模板中的注释标记{# NOMINIFY #} {# ENDNOMINIFY #}包装不希望缩小的内容。

使用django设置文件中的设置TEMPLATE_DIRS告诉命令在何处查找要最小化的模板。:

TEMPLATE_DIRS = [...]

定制

minimizer命令对html、嵌入样式标记的css和嵌入脚本标记的javascript使用默认的minimizer。您可以使用下面的设置覆盖这些并链接任意数量的自己的最小化。这些设置在django设置文件中。自定义最小化必须是接受文本作为字符串参数并返回文本作为字符串的函数。:

JAVASCRIPT_MINIMIZERS = [my_function_1, my_function_2, ...]
CSS_MINIMIZERS        = [my_function_3, my_function_4, ...]
HTML_MINIMIZERS       = [my_function_5, my_function_6, ...]

要关闭最小化程序,请使用以下模式:

f = lambda x: x
JAVASCRIPT_MINIMIZERS = [f,]

您可以告诉minimizer命令在默认的html minimizer链中禁用攻击性html minimizer。此最小化程序通常删除(而不是仅折叠)字符>'&;'<'之间的剩余空间。要在默认链中禁用此最小化程序,请在django设置文件中将以下设置设置为false:

AGGRESSIVE_HTML_MINIMIZER = False

方法

对于每个模板,minimizer命令:

  1. 将任何{# NOMINIFY #} {# ENDNOMINIFY #}标记和内容替换为唯一标识符,并将内容保存在内存中,以便将其从进程的其余部分排除。
  2. 剩下的django评论将被删除。
  3. django标记和django变量替换为唯一标识符。标记和变量保存在内存中。这种方法“保护”标签和变量不受最小化的影响。它还允许您在javascript和css中使用django标记和变量,而不会受到css或javascript最小化程序的不良影响。
  4. HTML脚本标记和内容将替换为唯一标识符。标记和内容保存在内存中,以便进行其他处理。检查脚本标记的type属性,查看脚本内容是否为javascript。如果未提供类型,则假定为javascript。然后通过javascript最小化程序运行任何javascript。
  5. 在css的html样式标记上实现了与步骤4几乎相同的过程。
  6. 剩下的文本(带有标识符)通过html最小化程序运行。
  7. 所有保存在内存中并与唯一标识符相关联的内容都将放回。
  8. 原始模板将移动到存档文件夹。最小化的模板是放在原来的位置。

限制

使用{# NOMINIFY #} {# ENDNOMINIFY #}注释标记克服这些限制。

  1. 默认的javascript和css最小化程序不处理脚本标记内的脚本标记或样式标记内的样式标记;这是一种不寻常的情况。

    ^{tt12}$

  2. minimizer将折叠所有不在django标记、django变量、javascript或内联css中的空白。这包括<pre><textarea>中的空白和类似的标记;以及html属性中的空白。

欢迎加入QQ群-->: 979659372 Python中文网_新手群

推荐PyPI第三方库


热门话题
java LinkedHashMap搜索   java将类及其所有依赖项移动到另一个项目   java doGet和doPost之间有什么区别?   java统计实体JPA的所有特定属性   Neo4j服务器的java推荐设置   java我可以设置GAE的dev_appserver,以便在更改时自动重新加载上下文。类文件?   mysql我试图使用java记录保存项目,但该程序似乎无法连接到数据库   java PDA在挂起模式下失去与ServerSocket的TCP连接   当应用spring安全性时,java找不到jsp视图   javascript如何通过Web视图从React组件的构造函数执行Java函数   java为什么在一个线程迭代(使用迭代器)而另一个线程修改同一个非线程安全ArrayList副本时没有ConcurrentModificationException   java调试与Eclipse JD行不匹配   java文本字段,用于在JavaFX聊天应用程序中输入文本和插入图像