【问题标题】:Jekyll: Liquid Capture and Markdownify Tag IssuesJekyll:Liquid Capture 和 Markdownify 标签问题
【发布时间】: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.htmlpost/123456-mypost.md。为什么不用include 进行相同的测试?
  • 使用常规的include标签,站点信息显示在我想要的页面上,但不是markdown格式。然后我使用了一个带有相同包含语句的捕获标签和一个降价标签,这就是我开始得到错误的时候:Liquid Exception: undefined method `gsub' for nil:NilClass in _layouts/layout.html
  • 你有github仓库吗?

标签: markdown jekyll liquid


【解决方案1】:

检查您是否尝试将markdownify 过滤器应用于空文本。如果没有要降价的文本,您将获得Liquid Exception: undefined method 'gsub' for nil:NilClass

既然你这么说

此代码在使用捕获标签时根本不会在页面上显示“site_information.md”信息。

在不导入任何文本的情况下使用capture 方法可能会导致错误。

【讨论】:

    猜你喜欢
    • 2017-03-21
    • 2018-04-08
    • 2011-10-11
    • 1970-01-01
    • 1970-01-01
    • 2013-05-11
    • 1970-01-01
    • 2023-03-25
    • 1970-01-01
    相关资源
    最近更新 更多