【发布时间】:2020-12-03 20:14:51
【问题描述】:
上下文:
- Eleventy 和 Nunjucks(以及 Markdown)
- 大量长文本(使用 Markdown 更容易创建/编辑)。
- 复杂的布局。
- 对 SSG 还是新手
目标:
- 使用 Markdown 管理文本内容块。
- 将这些降价文件与模板部分一起使用。
- 将部分组合成一个页面。
预期结果
处理后的html页面:
<html>
<body>
<div>
<p>Some content originating from a markdown file.</p>
</div>
<div>
<p>Some content originating from another markdown file.</p>
</div>
</body>
</html>
尝试的操作
这是我迄今为止尝试过的......
(注意:为了便于阅读,我已经排除了我的 base.njk(html doctype shell)。)
1。 NJK 主要与 NJK 部分包括
输入
目录结构
src/
/_includes
base.njk
_layout-A.njk
_layout-B.njk
main-layout.njk
content-1.md
content-2.md
main-layout.njk
{% extends "base.njk" %}
{% block content %}
{% include '_layout-A.njk' %}
{% include '_layout-B.njk' %}
{% endblock %}
content-1.md
---
layout: _layout-A.njk
---
Some content.
_layout-A.njk
<div>{{ content | safe }}</div>
content-2.md
---
layout: _layout-B.njk
---
Some more content.
_layout-B.njk
<div>{{ content | safe }}</div>
结果
- 目录结构“拆分”。
dist/
/content-1
index.html
/content-2
index.html
/main-layout
index.html
- Markdown 内容未传递到父页面。父项中的子标记为空。
主布局/index.html
<html>
<body>
<div></div>
<div></div>
</body>
</html>
我不知道文件是如何处理的,也不知道我能做些什么来做我打算做的事情。
【问题讨论】:
-
老实说,我对您要做什么感到困惑。包含肯定有效,但前面的内容不会与它们一起运行,所以当你包含一个孩子并且它定义了一个布局时,它不会那样工作。可以简化一下吗?
-
@RaymondCamden 我的目标是让我的内容和布局尽可能分开。例如,我想管理 Markdown 文件中的文本内容“块”,并能够混合和匹配给定页面的不同模板部分。 Lesha Ogonkov(下)证实了我的怀疑; 11ty 不能开箱即用 - 但可以进行一些改造。我会为以后的访问者澄清我的帖子。