0

我已经开始将一个简单的站点迁移到 Jekyll。我有一组模板,一切都继承自,所以我所要做的就是填写实际内容。但是,在将内容移过来的过程中,我发现其中一些需要修改模板之前指定的标签。

例如,我有一个“主”模板,它指定了包括开始<body>标签在内的所有内容。我网站的一个页面使用一点 JavaScript 来修改 html5 画布,因此它的开始标记必须是<body onload="startDrawing();">. 现在,拥有一个完全独立的模板,其唯一的变化是这个单个标签似乎很愚蠢,但同样愚蠢的是从模板中删除这个标签并让每个页面手动指定开始<body>标签。解决这个问题的正确方法是什么?

4

2 回答 2

0

我对 Jekyll 一无所知,但我倾向于为包含画布的一页提供单独的模板。这是一个特殊情况,除非 Jekyll 可以用一些特殊的语法来解释它,否则我觉得为这种情况使用不同的模板会更干净。

于 2011-06-05T02:59:49.647 回答
0

在需要特殊 onload 命令的单个页面中,在 YAML 前端添加一行:


---
... your existing frontmatter ...
special_command: onload="startDrawing();"
---

然后,在默认模板中,更改

<body>

<body {{ page.special_command }}>

在具有该 YAML frontmatter 的页面上,它将呈现内容。在 frontmatter 中没有“special_command”行的页面上,它不会呈现任何内容。您将在这些页面上的 <body> 标记中留下一个额外的空间,但这仍然作为有效代码通过 W3 规范(或者,至少,当我刚刚通过它运行该代码时,它通过了验证器。)

于 2011-06-08T15:41:46.320 回答