Jekyll 包含代码段但缩进标题

Jekyll 包含代码段但缩进标题,jekyll,Jekyll,tl,dr:我可以{%include%}一个文件并增加所有标题级别吗? 如果我有一个文件chapter1.md: # chapter 1 blah blah ## subheading 1 blah blah 当我用Jekyll渲染它时,我按计划将“第1章”作为h1和“第1子目”作为h2 现在我有了一个不同的页面,book.md,我想把我的第一章也包括进去,就像这样: # Book Here is my book. {% capture inc %}{% include chapte

tl,dr:我可以
{%include%}
一个文件并增加所有标题级别吗?

如果我有一个文件
chapter1.md

# chapter 1

blah blah

## subheading 1

blah blah
当我用Jekyll渲染它时,我按计划将“第1章”作为
h1
和“第1子目”作为
h2

现在我有了一个不同的页面,
book.md
,我想把我的第一章也包括进去,就像这样:

# Book

Here is my book.

{% capture inc %}{% include chapter1.md %}{% endcapture %}
{{ inc | markdownify }}

{% comment %} ditto for remaining chapters {% endcomment %}
其中(愚蠢的)
capture
/
endcapture
是包含需要使用markdown(无插件)呈现的代码段的常用技巧

在这里,“第1章”是一个
h1
,“第1子目”是一个
h2
(同样,正如预期的那样,在原始的降价文件之后)

我的问题是:如何使
第1.md章
中的所有标题在包含后增加一级,以便“第1章”成为
h2
,“子目1”成为
h3

这使我可以将我的章节片段作为独立文件使用,并包含在主文档中

是否有一个
{inc | markdownify:'header increment','1'}
或类似的东西

我可以{%include%}一个文件并增加所有标题级别吗

不是真的。Jekyll和Liquid都没有内置的方法来缩进标题级别,如所述。表面上,您可以编写一个插件来进行适当的转换,但这是一项不平凡的任务(也就是说,天真地为
#
编写
#
,例如,会破坏代码块或段落中对“#”的任何使用)


简单地保持章节内容从
h2
开始的约定会容易得多。或者,您可以将章节嵌套在
文章
部分
标记中,并使用CSS进行区分,而不会与标记语义发生冲突。

谢谢,我喜欢将包含的文档嵌套在标记中,并使用CSS降级标题(不管从风格上讲)。从长远来看,我可能会考虑使用pandoc作为我的转换器,因为在pandoc中编写这样的插件是微不足道的。我只是还没有这样做,因为我正在尝试使用无插件限制的github页面(尽管我相信最终我会像其他人一样完成工作,并编译网站发布到gh上)