用于安全嵌入mustache.js模板的django模板标记。
django-mustachejs的Python项目详细描述
一个templatetag框架,便于集成mustache.jsjavascript 带有django模板的模板。灵感来自ICanHaz.js,django-icanhaz, 以及jquery.mustache。
快速使用
(阅读Read the Docs上的完整文档)
将"mustachejs"添加到INSTALLED_APPS设置中。
app/jstemplates/main.mustache:
<div> <p>This is {{ name }}'s template</p> </div>
app/templates/main.html:
{% load mustachejs %} <html> <head> <script src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.js"></script> <script src="{{ STATIC_URL }}mustache/js/mustache-0.3.0.js"></script> <script src="{{ STATIC_URL }}mustache/js/django.mustache.js"></script> </head> <body> <div id="dynamic-area"></div> {% mustachejs "main" %} <script> $(document).ready(function() { var $area = $('#dynamic-area') , template; template = Mustache.template('main'); $area.html(template.render()); }); </script> </body> </html>
基本原理(来自django-icanhaz)
django模板使用{{和}}作为模板之间的冲突 变量标记和mustache.js的使用产生了 解决。One solution只需将[[和]]替换为{{和 }}在mustachejs模板标记中;another进行了有效的尝试 在django模板块中重建逐字文本 已经被django模板标记器损坏。
我更喜欢将javascript模板保存在单独的文件中 目录,以避免服务器端和客户端之间的混淆 模板制作。所以我对一系列解决方案的贡献本质上就是 “include”标记避免将包含的文件解析为django模板(和 为了方便起见,自动将其包装在脚本标记中,该标记是ICanHaz.js 希望能找到它)。
享受吧!
变化
0.8.3
- 修复makemessages命令中不正确的标识符名称
0.8.2
- 修复fileSystemRegexFinder,使其与中指定的扩展名完全匹配。 配置,不再需要
0.8.1
- 修复makeMessages以处理最近的代码更新
0.8.0
- 让regex查找程序尊重mustachejs\u exts设置
- 更新普通文件查找程序以使用全局模式
0.7.4
- 修复i18n预处理器以实现python 2.6兼容性
0.7.3
- 正确转义的翻译字符串。
0.7.2
- 将搜索模式更改为非贪婪。
0.7.1
- 用新行处理翻译字符串。
0.7.0
- 从django icanhaz拉入commit以使用常规 表达。
- 添加了预处理框架,并为i18n添加了预处理器。
- 劫持makeMessages命令以查找js模板消息。
0.6.0
- 添加dustjs标记以插入脚本块以创建已编译的dustjs 模板。多亏了Gehan Gonsalkorale。
0.5.0
- 添加mustacheraw标记以仅插入mustacehe模板的原始文本。 感谢格雷格·欣奇。
- 添加mustacheich标记以按照icanhaz的要求插入胡子脚本块。
0.4.1(2012.01.09)
- 固定模板读取显式解码模板文件内容使用 django的FILE_CHARSET设置。谢谢爱德华伊斯坎达罗夫。
- 修复了在 MUSTACHEJS_DIRS。感谢Eduard Iskandarov的报告和补丁。
0.4.0
- 添加mustachejs_exts配置变量以指定扩展 允许使用由filesystemfinder定位的模板文件(并且,根据扩展名, 应用程序查找器)。
0.3.3
- 将package_数据值添加到设置调用中
0.3.2
- 将manifest.in文件本身添加为manifest.in中的条目。
0.3.0
- 把名字从django icanhaz改成django mustachejs。
- 删除对icanhaz.js的依赖。我喜欢图书馆,但维修人员 目前还没有足够的反应。直接使用mustache.js,稍微 少量的糖。模板被呈现为直接的javascript。
0.2.0(2011.06.26)
- 使模板查找更加灵活:^ {Tt17}$现在是^ {TT18}$ (列表);添加了ICANHAZ_FINDERS,ICANHAZ_APP_DIRNAMES,并查找 已安装应用中的模板。
0.1.0(2011.06.22)
- 初次发布。