Markdown to Markdown的模板语言

时间:2014-05-09 15:36:12

标签: yaml markdown template-engine pandoc

我正在寻找一个简单的模板引擎,它将YAML剪切为上下文,并且非常适合阅读Markdown以及一些标记来生成Markdown。我尝试过Jekyll的液体,它起作用,除了在Markdown中非常重要的空白。

例如使用此输入...

---
samples:
- name: one
  samplecode: |
    function sample() {
      return 1;
    }
- name: two
  samplecode: |
    function sample() {
      return 2;
    }
---

{% for s in page.samples %}
- {{s.name}}

        {{s.samplecode}}

{% endfor %}

输出是:

- one

        function sample() {
  return 1;
}

- two

        function sample() {
  return 2;
}

而不是实际使用Pandoc的以下内容:

- one

        function sample() {
          return 1;
        }

- two

        function sample() {
          return 2;
        }

这实际上是discussed before for Jekyll

所以我的问题是:有没有适合我需要的简单模板引擎?

1 个答案:

答案 0 :(得分:7)

我认为你可以使用pandoc中内置的模板引擎来做你想做的事。

t.tpl

$for(samples)$
-   $samples.name$

    $samples.samplecode$

$endfor$

t.md

---
samples:
- name: one
  samplecode: |
    ```
    function sample() {
      return 1;
    }
    ```
- name: two
  samplecode: |
    ```
    function sample() {
      return 2;
    }
    ```
---

注意:我们将代码示例放在代码栏中,因为pandoc将元数据值解释为markdown。

然后:

% pandoc --template t.tpl -f markdown -t markdown t.md
-   one

        function sample() {
          return 1;
        }

-   two

        function sample() {
          return 2;
        }