【问题标题】:Jekyll on GitHub Pages: include markdown in another markdown fileGitHub Pages 上的 Jekyll:在另一个 markdown 文件中包含 markdown
【发布时间】:2017-06-17 10:11:02
【问题描述】:

我在 GitHub 页面上使用 kramdown 和 Jekyll。我有一块markdown,我想使用两次,不想维护它的两个版本。如何将其包含在其他降价文件中?

例如,我想输入类似的内容

{: include otherFile.md }

并在此命令所在的位置直接呈现otherFile.md 的内容。请注意,父文件也是 markdown 文件,而不是 HTML 模板。

额外考虑:如果能够使用默认的 GitHub 页面工作流来实现这一点,并且不必使用 GH 页面禁用的插件并且必须手动推送网站的编译版本,那就太好了。

【问题讨论】:

    标签: markdown jekyll github-pages static-site kramdown


    【解决方案1】:

    要走的路似乎是include_relative。我在旧的Jekyll forums 上找到了用户 geraldb 的答案:

    是的,有一个简单的方法。它在 Jekyll 中“开箱即用”(和 GitHub 页面)。刚试了一下。请参阅 Vienna.html 测试页面,例如:

    ---
    layout: default
    ---
    
    some text here
    
    {% include_relative test_header.md %}
    
    some more text here
    
    {% include_relative test_footer.md %}
    

    查看源代码-> test.mdlive page

    如果你想这样称呼它,“诀窍”就是使用include_relative 如果你想要构建块文本(例如intro.mdexplanation.mdconclusion.md 等)以及您的页面(在 同一个文件夹)。干杯。杰基林快乐。


    自从我第一次写这个答案以来,原来的论坛帖子似乎已经完全消失了,我还没有在archive.org上找到它。旧论坛的答案链接是this(现在指向一个无关的帖子),新论坛geraldb的个人资料是here

    引用的答案中的第一个链接已更新,以指向当前存在的 repo 中的正确文件,1 第二个链接已失效,但在我引用时保持不变原作者在这里。


    1感谢Ben Leggiero找到它!

    【讨论】:

    【解决方案2】:

    对我来说,通过 include_relative 导入并使用 正常 include 不会呈现包含的 Markdown 文件,无法解决问题。

    但是捕获包含然后通过markdownify 管道它是一个很好的解决方法:

    {% capture my_include %}{% include a_markdown_file.md %}{% endcapture %}
    {{ my_include | markdownify }}
    

    我在GH:/jekyll/jekyll#1303 (comment) 中找到了这个。这是避免捕获的功能请求。很遗憾,它已关闭。

    【讨论】:

      【解决方案3】:

      有一个 Ruby gem markdown_helper 支持包含文件。

      【讨论】:

        猜你喜欢
        • 2019-04-03
        • 2013-07-17
        • 1970-01-01
        • 2017-01-25
        • 2015-04-01
        • 1970-01-01
        • 2011-06-14
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多