如何创建包含适用于页面md文件的内容的子文件

时间:2017-09-07 14:44:40

标签: jekyll

我正在使用Jekyll创建一个网站。 到目前为止,我有四个页面是从四个md文件自动创建的,md文件位于项目的根目录中。

index.md
about.md
login.md
register.md

以下是我login.md file

中的内容
---
layout: layout-default
title: some login title
permalink: /login
theme: secondary-theme 
nav:
    menu-items:
        - type: text
          text: Don't have an account?
        - type: link
          text: SIGN UP
          class: button
          linkPath: /register
sections:
    - type: 3
      class: form-section
      header-line-2: Login Section!
      form:
        api: http://127.0.0.1:8080/login
        submit-text: LOG IN
        form-controls:
            - label-text: EMAIL ADDRESS
              input-type: email
              input-placeholder: Enter your email
              input-name: email
            - label-text: PASSWORD
              label-link-text: Forgot password?
              label-link-path: #
              input-type: password
              input-placeholder: Enter your password
              input-name: password

---

我所做的是迭代这些部分并根据每个部分中的变量应用html属性值。这样我可以在一个页面上尽可能多地渲染我想要的部分。它们也可以根据我放在md文件中的类和内容而有所不同。 问题是如果项目太复杂,部分的样式不同等等。我想分开每个部分的内容。如果我可以让一个文件夹让我们说登录/部分文件夹将是很好的 然后把md文件放在里面然后在login.md文件里面包含这些部分的md文件。这样代码就会更有条理。 有没有办法做到这一点,我的方法实际上是好的。

1 个答案:

答案 0 :(得分:1)

Jekyll提供include files到另一个文件的功能。这个神奇的目录是_includes/sections/s1.html。例如:

如果您创建名为{% include sections/s1.html %} 的文件,则可以将包含在具有以下标记的任何其他文件中:

{% capture m %}{% include sections/s1.md %}{% endcapture %}
{{ m | markdownify }}

这种方法适用于:

  • 将HTML文件包含在HTML
  • 将HTML文件包含在Markdown中(因为Markdown可以包含HTML代码)
  • 包括Markdown进入Markdown

如果要将Markdown文件包含在HTML中,则必须使用一些技巧:

{{1}}