GitHub Pages 上的 Jekyll:在另一个 markdown 文件中包含 markdown
Posted
技术标签:
【中文标题】GitHub Pages 上的 Jekyll:在另一个 markdown 文件中包含 markdown【英文标题】:Jekyll on GitHub Pages: include markdown in another markdown file 【发布时间】:2017-06-17 10:11:02 【问题描述】:我在 GitHub 页面上使用 kramdown
和 Jekyll。我有一块markdown,我想使用两次,不想维护它的两个版本。如何将其包含在其他降价文件中?
例如,我想输入类似的内容
: include otherFile.md
并在此命令所在的位置直接呈现otherFile.md
的内容。请注意,父文件也是 markdown 文件,而不是 html 模板。
额外考虑:如果能够使用默认的 GitHub 页面工作流来实现这一点,并且不必使用 GH 页面禁用的插件并且必须手动推送网站的编译版本,那就太好了。
【问题讨论】:
【参考方案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.md
和 live page。如果你想这样称呼它,“诀窍”就是使用
include_relative
如果你想要构建块文本(例如intro.md
,explanation.md
、conclusion.md
等)以及您的页面(在 同一个文件夹)。干杯。杰基林快乐。
自从我第一次写这个答案以来,原来的论坛帖子似乎已经完全消失了,我还没有在archive.org上找到它。旧论坛的答案链接是this(现在指向一个无关的帖子),新论坛geraldb的个人资料是here。
引用的答案中的第一个链接已更新,以指向当前存在的 repo 中的正确文件,1 第二个链接已失效,但在我引用时保持不变原作者在这里。
1感谢Ben Leggiero找到它!
【讨论】:
include_relative
也为我工作。虽然example code on the Jekyll tutorial page 只显示了嵌入 .html 文件的情况,但它也适用于 .md 文件。【参考方案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 支持包含文件。
【讨论】:
以上是关于GitHub Pages 上的 Jekyll:在另一个 markdown 文件中包含 markdown的主要内容,如果未能解决你的问题,请参考以下文章
使用Jekyll + GitHub Pages免费搭建个人博客
GitHub Pages (jekyll blog) 显示 404
hexo与jekyll 搭建github pages 哪个好
使用Github pages+jekyll搭建自己的博客(windows版)