问题标签 [template-metal]

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.

0 投票
1 回答
587 浏览

python - 变色龙模板全局变量

我正在使用 Pyramid 1.3 和他们用 Chameleon 编写的模板。由于不同的页面或模板可能需要每页更改全局样式表,我希望能够重新定义页面上的 body 标记的类(当然,我更愿意从模板中执行此操作)。

我试过的:

  • 使用子宏中的 tal:define="global body_class"。不工作。
  • 我尝试使用<metal:div metal:define-slot="vars">...variable definition...</metal:div>and<metal:div metal:fill-slot="vars">...redefinition...</metal:div>并重新定义子宏中的变量。它确实有效,但是如果我在父模板中有多个变量定义并且我只需要重新定义一个怎么办?

有没有用 METAL 做得更好的好方法?

0 投票
1 回答
366 浏览

python - 如何使用 Python Chameleon 指定 html5 文档类型?

我对此进行了彻底的 RTFMed 和 Google 搜索,但我似乎找不到答案。我是变色龙的新手,所以也许它很明显以至于找不到它,但是当我把

<!DOCTYPE html>

在我的主模板中,呈现的页面已将其剥离,从而导致可怕的怪癖模式。

有没有我错过的技巧?

0 投票
2 回答
448 浏览

python - 使用 Chameleon ZPT 渲染具有任意深度的嵌套元素

我正在使用 Pyramid 框架,我想用 Chameleon 渲染一个带有任意深度的嵌套列表(ul,li)的 html 菜单。

为了做到这一点,我在 Chameleon 中找不到某种递归方法。这似乎是一个普遍的需求,所以我想知道渲染具有任意深度的嵌套元素的正确方法是什么?

但是,可能还有一些菜单«widget»已经可用,经过全面测试并与金字塔和变色龙兼容?

0 投票
1 回答
2073 浏览

macros - 如何在金字塔 / ZPT(变色龙)中使用宏

我想使用带有金字塔+ZPT 引擎(变色龙)的宏。

文档说“一个页面模板可以容纳多个宏”。 http://chameleon.readthedocs.org/en/latest/reference.html#macros-metal

因此我定义了一个文件 macros.pt

和一个全局模板main_template.pt,其中包含定义 slot 的所有 html 内容content

progress.pt以及用于main_template.pt填充插槽的我的视图模板:

到目前为止,我痛苦地发现,我不能说use-macro="main_template.pt"是因为 Chameleon 不像 Zope 那样自动加载模板。因此,我必须先添加load:片段。

来到use-macro="step-0". 这会引发 NameError step-0。我试图用类似的macros.pt东西预加载,<tal:block tal:define="compile load: macros.pt" />但这没有帮助。

如何使用宏摘要文件中收集的宏?

0 投票
1 回答
450 浏览

html - Zope (ZPT) 重叠标签

我尝试在 Zope 页面模板中使用 TAL 创建打开div标签条件并关闭div另一个条件中的标签,但不允许重叠标签。

这是我的代码:

重要的部分是:

这是错误。

我尝试使用 Python 脚本,但它也不起作用。

使用close_div脚本:

它返回&lt;/div&gt;而不是</div>

如果你想知道我为什么这样做。我有一个需要显示的树结构。由于我(认为我)不能递归地执行此操作,因此我尝试使用 LIFO 列表来模拟它。并且current是我当前的节点。

我试图实现这一点(节点是dict的dict ...用作树):

任何帮助或建议表示赞赏

0 投票
1 回答
101 浏览

html5boilerplate - 如何在 ZPT 中使用 HTML5 样板文件?

我正在尝试更新我们较旧的基于 ZPT 的应用程序之一,并且我想实现以下 HTML5 Boilerplate 最佳实践,以将条件 IE 类添加到<html>.

由于我在许多非 ZPT 网站上使用过这种技术,我并没有考虑太多,但是当我去实现它时,我遇到了一些问题。

  1. ZPT 删除 HTML 注释,因此呈现的源代码缺少条件注释
  2. 我们正在使用整个页面宏来定义可重用的页面模板,并且该定义出现在<html>元素中,如<html metal:define-macro="page">. 即使我得到条件注释来显示,似乎我的下一个障碍将是正确定义页面宏。

任何人都可以阐明这些问题中的任何一个吗?

0 投票
1 回答
339 浏览

php - 如何在 PHPTAL 宏中打印未关闭的标签

我正在将网站转换为使用 PHPTAL 模板,现在我正在使用模板编写所有新页面,同时保留现有页面。

旧页面使用标准页眉和页脚,典型页面的内容生成如下:

PHPTAL 中的新页面将使用相同的标准页眉/页脚,因此我将它们移动到宏中。我想对新旧页面页眉和页脚使用相同的源 HTML。为此,我想编辑 printHeader() 和 printFooter() 函数以使用模板打印页眉和页脚宏:

我遇到的问题是我的标题包含开头<html><body>标签,它们在页脚中关闭。PHPTAL 抛出异常,因为我的宏不是有效的 xml:

解决这个问题的最简单方法是什么?我找到了一种使用结构将这些标签包含为字符串的解决方法,但它看起来很草率:

有没有更清洁的方法来做到这一点?也许某种 tal 属性可以让它忽略<html>and缺少的结束标签<body>

0 投票
0 回答
70 浏览

macros - Zope 页面模板:从宏调用宏

基本上它可以工作,但它似乎会产生权限问题。这通常是一个坏主意吗?

0 投票
2 回答
428 浏览

python - 带有变色龙负载的可配置头部

使用 chameleon 时,我可以使用插槽的概念从基本模板中替换元素。您在其中定义一个插槽并使用另一个标签填充它。由于 head 中没有容器元素,如何向 head 中添加元素?:

布局文件

需要指定额外头部的内容模板。

这将呈现在:

但是 head 中没有容器标签,那么如何定义一个插槽来在 head 中添加东西呢?

0 投票
1 回答
191 浏览

plone - 为什么在填充槽或定义宏元素外部定义的变量在该元素内部不可见?

为什么在 a fill-slotordefine-macro元素之外定义的变量在该元素内不可见?

a无法评估带有变量的 tales-expression 。当然b是可见的。

另一方面,如果变量c在如下的封闭元素中定义,define-slot那么它是可见的。

看起来只有在插入插槽后才会评估变量。