3

语境:

  • 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 MAIN 和 NJK PARTIAL 包括

输入

目录结构

src/
    /_includes
        base.njk
        _layout-A.njk
        _layout-B.njk
    main-layout.njk
    content-1.md
    content-2.md

主布局.njk

    {% extends "base.njk" %}

    {% block content %}

        {% include '_layout-A.njk' %}

        {% include '_layout-B.njk' %}

    {% endblock %}

内容 1.md

    ---
    layout: _layout-A.njk
    --- 
    Some content.

_layout-A.njk

    <div>{{ content | safe }}</div>

内容 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>


我不知道如何处理文件以及我可以做些什么来做我打算做的事情。

4

1 回答 1

3

这不是 11ty 的工作方式。每个 MD 文件是一个页面。

如果要在页面中包含多个 MD 文件,则应为 11ty 添加自定义过滤器,以将其呈现为 html。

请参阅此问题中的示例https://github.com/11ty/eleventy/issues/658

于 2020-08-15T10:25:25.740 回答