我开始将一个简单的网站迁移到Jekyll。我有一组模板,一切都是从中继承的,所以我所要做的就是填写实际的内容。但是,在移动内容时,我发现其中一些内容需要修改之前由模板指定的标记。
例如,我有一个'main'模板,它指定了包括开始<body>
标记在内的所有内容。我的网站的一个页面使用一些JavaScript来修改html5画布,因此它的开始标记必须类似于<body onload="startDrawing();">
。现在,拥有一个完全独立的模板似乎很愚蠢,其中唯一的变化是这个单一标签,但同样愚蠢的是从模板中删除此标签并让每个页面手动指定开始<body>
标签。解决这个问题的正确方法是什么?
答案 0 :(得分:0)
我对Jekyll一无所知,但我倾向于为包含画布的一个页面提供单独的模板。这是一个特例,除非Jekyll能够用一些特殊的语法来解释它,否则在这种情况下使用不同的模板对我来说感觉更清晰。
答案 1 :(得分:0)
在需要特殊onload命令的单个页面中,向YAML前端添加一行:
---
... your existing frontmatter ...
special_command: onload="startDrawing();"
---
然后,在默认模板中,更改
<body>
到
<body {{ page.special_command }}>
在具有该YAML前端的页面上,它将呈现内容。在其前端没有“special_command”行的页面上,它将不会呈现任何内容。你将在&lt; body&gt;中留下额外的空间。这些页面上的标记,但仍然将W3规范作为有效代码传递(或者,至少,当我通过它运行代码时,它传递了Validator。)