我已经开始将一个简单的站点迁移到Jekyll。我有一组模板,所有东西都继承自这些模板,所以我所要做的就是填写实际内容。但是,在移动内容的过程中,我发现其中一些内容需要修改先前由模板指定的标记。
例如,我有一个'main‘模板,它指定开始<body>标记之前的所有内容。我的站点的一个页面使用了一些JavaScript来修改html5画布,因此它的开始标记必须类似于<body onload="startDrawing();">。现在,拥有一个完全独立的模板,它唯一的变化就是这个单一的标记,这看起来很愚蠢,但从模板中删除这个标记并让每个页面手动指定开始的<body>标记也同样愚蠢。解决这个问题的正确方法是什么?
发布于 2011-06-08 23:41:46
在需要特殊onload命令的单个页面中,将一行添加到YAML首页:
---
... your existing frontmatter ...
special_command: onload="startDrawing();"
---然后,在默认模板中更改
<body>
至
<body {{ page.special_command }}>
在包含YAML头条的页面上,它将呈现内容。在首页没有"special_command“行的页面上,它将不会呈现任何内容。您将在这些页面上的标记中留出额外的空格,但这仍然会将W3规范作为有效代码传递(或者,至少在我刚刚运行代码时,它会传递给验证器)。
发布于 2011-06-05 10:59:50
我对Jekyll一无所知,但我倾向于为包含画布的页面提供单独的模板。这是一种特殊的情况,除非Jekyll可以用一些特殊的语法来解释它,否则对于我来说,对于这种情况有一个不同的模板是更清晰的。
https://stackoverflow.com/questions/6240719
复制相似问题