包括片段但缩进标题

时间:2014-10-02 01:47:47

标签: jekyll

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

如果我有文件chapter1.md

# chapter 1

blah blah

## subheading 1

blah blah

当我使用Jekyll渲染时,我按照计划将'第1章'作为h1和'副标题1'作为h2

现在我有一个不同的页面,book.md,我希望将第1章纳入其中:

# 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(再次,正如预期的那样 - 在原始降价文件之后)。

我的问题是:如何将chapter1.md中的所有标题在包含时增加一级,以便“第1章”成为h2和“副标题1“成为h3

这允许我将我的章节片段用作独立文件并包含在主文档中。

是否有{{ inc | markdownify: 'header-increment', '1'}}或类似的内容?

1 个答案:

答案 0 :(得分:1)

  

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

不是真的。 Jekyll和Liquid都没有内置的方法来缩进标题级别,如上所述。你可以表面上写一个插件来进行适当的转换,但它是一项非常重要的任务(也就是说,天真地gsub ###,例如,会破坏在代码块或段落中使用"#"。

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