在Jekyll,我试图在我的网站中包含一段“网站信息”,这段信息应该放在一定数量的页面上 . 我正在处理的某些信息的文件结构是一个“团队”文件夹 - >“_ posts”文件夹 - >然后在“_posts”文件夹中是“site_information.md”以及我想要包含的许多其他页面的降价文件in“site_information.md” . 如果可能的话,我不想在“_posts”文件夹中的每个文件上使用include语句,所以我想在“layout.html”文件中创建一个includes语句 .
以下是我在“layout.html”文件中尝试过的内容:
{% if page.page == "page" %}
{% include_relative site_information.md %}
{{content}}
{% endif %}}
上面的代码包含了我想要的信息,但它没有以markdown格式包含它 .
然后我尝试了这个:
{% if page.page == "page" %}
{% capture site_info %}{% include_relative site_information.md %}{% endcapture %}
{{site_info}}
{{content}}
{% endif %}
使用捕获标记时,此代码根本不显示页面上的“site_information.md”信息 .
然后我尝试了这个:
{% if page.page == "page" %}
{% capture site_info %}{% include_relative site_information.md %}{% endcapture %}
{{site_info | markdownify}}
{{content}}
{% endif %}
使用markdownify标记时,此代码给出了错误:
Liquid Exception:nil的未定义方法`gsub':_layouts / layout.html中的NilClass
有谁知道如何解决这个问题,所以我可以在布局中使用包含语句在多个网页上正确显示降价文件?
1 回答
检查您是否尝试将
markdownify
过滤器应用于空文本 . 如果没有要降价的文字,您将获得Liquid Exception: undefined method 'gsub' for nil:NilClass
.既然你说的那样
使用
capture
方法虽然它不导入任何文本可能会导致错误 .