【问题标题】:Jekyll: parse pages without front matterJekyll:解析页面,无需前置内容
【发布时间】:2016-12-03 06:22:31
【问题描述】:

据我所知,当且仅当 Jekyll 找到 YAML 标头/前端内容时,Jekyll 才会通过模板阶段解析包含的页面。否则它只是复制它。有没有办法强制 Jekyll 解析包含的文件 没有前面的问题?

【问题讨论】:

  • 你能举个例子吗?
  • 为什么不添加头部(创建一个在 tmp 目录中添加头部的进程,并让 Jekyll 处理)。
  • 我想在另一个页面中包含一个页面,并让页面独立呈现。实际上,我围绕需要这样做进行了重构,但我将保持开放状态,因为仍然有兴趣知道是否可以这样做。
  • 加个空前的事怎么样?这是一个选择吗?它确实有效。
  • Jekyll 不会删除它。它将输出“---\n---”。如果 Jekyll 会从包含中删除 YAML 标头,那也对我有用。但不幸的是,它不是因为标题当前对包含没有意义。

标签: jekyll


【解决方案1】:

经验法则是 Jekyll 不会解析没有前置内容的文件。

但是...有一个解决方法。您可以在 _includes 目录中创建一个 index.html 文件,而无需前面的内容。这个文件中的 Liquid 将由 Jekyll 解释。您可以使用以下方式在任何地方呈现此包含:

{% include index.html %}

这个解决方案非常适合在 Jekyll 上下文中渲染 HTML 页面(没有前端要求),尤其是当您想要重用它们时。这对于呈现预览和在另一个页面上的代码块中显示代码可能很有用。包含可以写在布局文件或 index.md 文件中。

请注意,包含的文件名可以是变量(https://jekyllrb.com/docs/includes/):

{% if page.my_variable %}
  {% include {{ page.my_variable }} %}
{% endif %}

另请注意,如果您想在此代码中显示 Liquid 示例,您应该使用:

 {% raw %} ... Liquid example ... {% endraw %}

如果您需要针对您的特定情况的解决方案,您应该共享您的存储库并解释您的用例。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2015-12-21
    • 1970-01-01
    • 2015-05-08
    • 1970-01-01
    • 1970-01-01
    • 2011-02-25
    相关资源
    最近更新 更多