问题标签 [template-tal]
For questions regarding programming in ECMAScript (JavaScript/JS) and its various dialects/implementations (excluding ActionScript). Note JavaScript is NOT the same as Java! Please include all relevant tags on your question; e.g., [node.js], [jquery], [json], [reactjs], [angular], [ember.js], [vue.js], [typescript], [svelte], etc.
java - 类似于 ZPT(属性语言)的 Java 模板库
我最近一直在 python 中使用ZPT,我喜欢模板语言。我一直在为 Java 寻找类似的东西,但也找不到我喜欢的东西。最接近的是FreeMarker。
我看到的 FreeMarker 和其他 Java 模板引擎的问题是它们的 JSP 样式语法允许不符合标准的 XML。我只是想知道是否有类似于 Zope 页面模板的 Java 模板引擎,因此它是一种需要有效 xml 的“属性”语言。
templates - 如何在 tal:attributes 中使用 TALES 为同一属性设置多个值
我正在尝试在一个元素上设置多个 css 类。
不幸的是,这不起作用,因为它返回:LanguageError: Duplicate attribute name in attributes.
将这 3 种情况组合成一个表达式会变得相当复杂,因为有 6 种不同的css 状态:
- 第一+主动
- 第一的
- 最后+活跃
- 最后的
- 积极的
- (没有任何)
我能想到两种可能的解决方案:
-> 检查每个组合内联:
-> 创建一个返回组合css类的方法
现在,有没有更好的方法,如果没有,这两个中的哪一个更好(可能是后一个,好像它变得更加复杂,内联脚本将变得不可读/不可管理)。
顺便说一句,有什么好的资源和例子Chameleon
,TALES
(除了http://chameleon.repoze.org/docs/latest)
python - 金字塔和变色龙中的 ajax 小部件
我希望能够在服务器端轻松创建由变色龙和金字塔支持的 ajax“小部件”。
Pyramid 是否提供任何可以简化编写小部件的管道代码?
我目前的方法是我有一个使用 home.pt 作为渲染器的主视图。home.pt 使用宏 base.pt 定义页面结构并为 home.pt 提供一个插槽来填充。base.pt 还使用了我编写的登录“小部件”宏(请参阅下面的 account_login_widget.pt)。
从理论上讲,这一切听起来都很棒......我有一个可重复使用的登录小部件,可以在许多页面中使用,但我目前的方法效果不佳。我的登录小部件在其渲染器(服务器需要定义)中使用像 ${username} 这样的变量。我希望登录小部件及其呈现尽可能独立。但是以我目前的做事方式,主视图代码需要了解登录小部件的需求,并在字典中提供用户名、formrender 和其他变量。肯定不好...
我觉得我接近正确的想法,但错过了一些东西......
有什么想法吗?
基础.pt:
主页.pt:
account_login_widget.pt:
template-tal - PHPTAL 动态表生成
我发现自己为表格数据创建了很多表,并且想创建一个可以根据调用模板中定义的数据结构(而不是 PHP 代码)动态创建表的宏。这是一个简单的例子:
我正在寻找的是如何data
从 PHPTAL 本身定义(数组结构)。我不能将其定义为 PHP(例如$tpl->data = array(...)
)中的模板变量的原因是因为数据的顺序和布局属于模板。因此,例如,如果我想翻转表格的 X 和 Y 轴,我应该只需要修改模板,而不是PHP 代码。
编辑:
举个例子,假设我有任意模板变量foo
,bar
和baz
. 我可以像这样在模板中使用它们:
如何将这些变量构造成行和列的二维数据结构,然后我可以将其输入到生成表的宏中?像这样的东西(注意:这实际上不起作用):
宏的所需输出将是:
之后,如果我想交换 and 的位置foo
,bar
我只需要修改模板并将 to 的定义更改data
为data [bar, foo; baz]
。
html - PHPTAL 条件属性
给定一个看起来像这样的金属宏:
还有一个使用如下宏的模板:
我需要向宏添加什么,以使生成的 HTML 如下所示:
我已经尝试了使用该php:
表达式的各种不同方法,甚至定义了我自己的 TALES 函数,但似乎没有什么能给我我想要的东西。
浏览器将selected
属性出现的任何选项视为实际选中。这意味着 , selected
,selected=""
等都selected="foo"
将选择该选项。PHPTAL 有一个内置的attribute value | nothing
语法可以解决这个问题,但这只会nothing
在空的情况下回退value
,这对我没有帮助,因为我需要将它与一个值进行比较。像这样的东西(不起作用):
python - 如何使用 TAL 中定义的变量检索字典中键的值?
我在python中定义了一个字典:
我有另一个使用tal:define
称为 var 定义的变量,它是“a”或“b”。当我尝试这样做时出现错误:
(然后 foo 将是 '1' 或 '2')我得到KeyError: '${var}'
. 我试过了dic[$var]
,dic[var]
等等,但它们都不起作用。如何使用以前定义的变量tal:define
作为字典的键来获取其值。
python - 在变色龙中使用基本布局模板
在金字塔文档中有一个很好的关于 UX 的教程:
我注意到的一件事是在教程中,他们正在代码中明确设置和传递“全局布局”(见下文)。我认为这是不寻常且不必要的,因为我一直只使用“加载”命令,如此处的文档中所示:
http://chameleon.repoze.org/docs/latest/
这只是个人偏好问题,还是以这种方式设置和使用“全局布局”有真正的优势?
教程基础视图类:
教程模板文件:
但在我的模板文件中,我只使用:
python - 任何关于 Pyramid Web 框架中的变色龙模板的详细文档?
金字塔文档中只有对变色龙模板的简单介绍。
任何详细的文档/教程?
python - 将 Pyramid 中多个视图的渲染内容注入到一个基本模板中
我想做类似下面的事情。
我配置了以下路线:
以下观点:
有一个基本模板'templates/base.pt':
现在在我看来,我想将以下内容注入 id 为“content”的 div:
我将如何更改上面的home_view和foo_view以便他们可以将自己的模板(home.pt、foo.pt)注入 base.pt?不知何故,我还需要将诸如${user_id}之类的数据传输到 base.pt 中。在定义我的视图时,我正在玩wrapper参数,但无法弄清楚它是如何工作的。
python - 带有标签的 POT 文件,而不是
我正在尝试从 Pyramid 项目中的模板文件中翻译文本。或多或少在这个例子中: http: //docs.pylonsproject.org/projects/pyramid_cookbook/en/latest/chameleon_i18n.html
现在我如何摆脱<dynamic element>
我的 .pot 文件的评论?我想查看其余代码及其标签。
我的变色龙模板(.pt):
我使用 Babel 和 Lingua 在 setup.py 中使用以下选项提取消息:
我的 .pot 文件中的相关输出如下所示: