如何使用Eleventy将多个Markdown文件合并到Nunjucks模板中? 输入结果

问题描述

上下文:

  • Eleventy和Nunjucks(和Markdown)
  • 许多长格式的文本(更容易使用markdown创建/编辑)。
  • 复杂的布局。
  • SSG的新手

目标:

  • 使用markdown管理大量文本内容
  • 将这些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局部

输入

目录结构

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

main-layout / index.html

    <html>
      <body>
        <div></div>
        <div></div> 
      </body>
    </html>


我对文件的处理方式以及如何执行我打算做的事情一无所知。

解决方法

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

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

请参阅本期https://github.com/11ty/eleventy/issues/658

中的示例