【问题标题】:Jekyll - split content up into two columnsJekyll - 将内容分成两列
【发布时间】:2012-06-24 22:47:59
【问题描述】:

我有一个基本的布局页面模板:

---
layout: default
---

<header class="sidebar">
    {{ page.title }}
</header>

<section class="content">
    {{ content }}
</section>

我使用它作为页面模板的页面只是 Markdown,它被放入 &lt;section&gt; 块中。

我正在寻找一种方法来将我的所有页面内容保存在一个文件中,但拥有它以便我可以定义从页面模板放入 &lt;header&gt; 标记的单独内容。

有没有办法做到这一点并将所有页面的内容保存在一个文件中?

【问题讨论】:

    标签: ruby jekyll liquid github-pages


    【解决方案1】:

    您可以通过在_includes/ 目录中定义您希望分离和重复使用的内容来做到这一点。

    然后您可以通过调用例如:{% include file.ext %} 来包含它,以包含文件名 _includes/file.ext(几乎就像您只是复制并粘贴它一样)。

    请参阅 Jekyll 文档 here 中与 _includes 相关的部分。

    【讨论】:

      【解决方案2】:

      YAML Front Matter 可用于直接存储页面的附加内容。这是通过创建自定义键/值变量来完成的。布局/模板使用流动标签来检查辅助内容是否可用。如果是这样,它会得到输出。否则,将跳过该部分。

      这是一个布局模板示例,用于检查是否设置了名为 myvar1 的自定义变量:

      ---
      layout: default
      ---
      
      <header class="sidebar">
      
          <h2>{{ page.title }}</h2>
      
          {% if page.myvar1 %}
              <p>Secondary content here: {{ page.myvar1 }}</p>
          {% endif %}
      
      </header>
      
      <section class="content">
          {{ content }}
      </section>
      

      注意:为了匹配您的原始示例,此布局文件调用父级“默认”布局。对于此示例,上述内容位于名为“_layouts/nested_layout.html”的布局文件中。

      要使用新插槽,在前面添加一个myvar1 变量,如下所示:

      ---
      layout: nested_layout
      title: This is the post test layout
      myvar1: More here <strong>including bold text</strong>.
      ---
      
      And here is the page content: The quick brown fox jumps over the lazy dog.
      

      处理该页面后,将显示次要内容。如果您创建另一个没有myvar1 的页面,则模板的该部分不会呈现任何内容。

      您可以根据需要向页面添加任意数量的自定义变量。这些值可以包括 HTML,如本示例所示。 (它在 Jekyll 0.11.2 中对我有用。)如果你有很多代码要添加(而不是很容易放在一行上的代码),或者如果你想有相同的内容可以打开/关闭多个页面,您可以使用自定义变量作为标志。然后,在 {% if %} 标记中,如果设置了值,您将调用包含。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 2017-10-02
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2021-12-09
        • 2014-05-07
        • 2017-04-22
        相关资源
        最近更新 更多