我即将在Grav中构建一个模块化页面主题(它使用twig作为模板引擎)。
默认情况下,模块化主题至少包含两个 twig 模板文件:一个提供包含页眉的页面框架,另一个提供内容模块的标记。Grav 的标准主题提供了这些模板的示例:
如您所见,模块(示例)没有用于将 javascript 添加到 html 头部的head
or块。javascripts
(这甚至是不可能的,因为典型的模块化页面由多个模块组成。因此,如果两个不同的模块尝试更改javascripts
块,最后一个模块将覆盖第一个模块所做的更改,这将导致意外结果)。
但是,碰巧我需要从模块中将一些 javascript 代码添加到页面的头部。我考虑了一个解决方案,并想到将 javascript-code 作为属性添加到存在“站点范围”的对象中,即pages 对象。
这导致了我的问题:
如何使用 twig 语法向现有对象添加属性?
除此之外,我还想知道您是否能想到这个解决方案可能不起作用的任何原因。但是,如果您帮助我了解语法,我也可以尝试一下...