【发布时间】:2015-08-28 22:17:02
【问题描述】:
在 Jekyll 中,我试图在我的网站的一定数量的页面上包含一段“网站信息”。我正在处理的某些信息的文件结构是“团队”文件夹->“_posts”文件夹->然后在“_posts”文件夹中是“site_information.md”和我想要包含的许多其他页面的降价文件“site_information.md”。如果可能的话,我不想对“_posts”文件夹中的每个文件都使用包含语句,所以我想在“layout.html”文件中创建一个包含语句。
这是我在“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 异常:_layouts/layout.html 中 nil:NilClass 的未定义方法“gsub”
有谁知道如何解决这个问题,以便我可以在布局中使用包含语句在多个网页上正确显示降价文件?
【问题讨论】:
-
我是否了解您希望能够通过测试
{% if page.page == "page" %}有条件地在任何页面上或在您的网站上发布此网站信息? -
是的,没错。
-
但是相对包含不能相对于
index.html和post/123456-mypost.md。为什么不用include进行相同的测试? -
使用常规的include标签,站点信息显示在我想要的页面上,但不是markdown格式。然后我使用了一个带有相同包含语句的捕获标签和一个降价标签,这就是我开始得到错误的时候:Liquid Exception: undefined method `gsub' for nil:NilClass in _layouts/layout.html
-
你有github仓库吗?