如何在Eleventy中使用LiquidJS的Layout Blocks功能?
11ty LiquidJS Layout Blocks 相关问题解答
11ty 原生支持 LiquidJS 的 Layout Blocks 功能,无需额外引入第三方依赖,你遇到的渲染异常大概率是配置或语法使用不当导致的,可按以下几点排查:
- 确认模板引擎配置正确:你需要在项目根目录的
.eleventy.js配置文件中,指定Markdown文件的预处理引擎为liquid,示例配置如下:
module.exports = function(eleventyConfig) { return { // 开启Markdown文件的Liquid语法解析 markdownTemplateEngine: "liquid" }; };
- 确认布局文件的块定义语法正确:
{{ content }}是11ty内置的特殊变量,用于自动注入内容文件的正文,自定义块不能用双大括号变量语法,必须使用Liquid的{% block %}标签定义,例如你的布局模板需要写成:
<!-- 布局文件示例:_includes/default.liquid --> <aside> {% block sidebar %}{% endblock %} </aside> <main> {{ content }} </main>
- 确认Markdown内容文件的写法正确:首先要在Front Matter中指定使用的布局,再用对应
{% block %}标签定义块内容,示例如下:
--- layout: default --- {% block sidebar %} <p>自定义侧边栏内容</p> {% endblock %} 这里是正文内容,会自动渲染到布局的{{ content }}位置
- 如果你需要保留布局中块的默认内容,同时在内容文件中追加新内容,可以使用
block.super语法:
{% block sidebar %} {{ block.super }} <p>追加的侧边栏内容</p> {% endblock %}
内容的提问来源于stack exchange,提问作者mike
相关产品推荐
相关产品推荐

