yaml - Markdown 到 Markdown 的模板语言

标签 yaml markdown template-engine pandoc

我正在寻找一个简单的模板引擎,它将 YAML 片段作为上下文,并且非常适合阅读 Markdown 以及一些标签以生成 Markdown。我尝试了 Jekyll 的 Liquid,它工作正常,除了空白,这在 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 .

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

最佳答案

我认为你可以使用 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;
        }

关于yaml - Markdown 到 Markdown 的模板语言,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/23568628/

相关文章:

java - 使用 Java 进行模板处理

php - 何时使用 PHP 模板引擎

python - ruamel_yaml.constructor.ConstructorError : could not determine a constructor for the tag 'tag:yaml.org,2002:python/tuple' in "<unicode string>"

xamarin - 将 markdown 文本加载到 Xamarin.Forms 标签中

markdown - Mkdocs 消除文件中的复制粘贴

ruby-on-rails - 哪种标记语言? Markdown 还是?

javascript - Node 中的输出缓冲是什么?

symfony - 如何将自定义属性添加到 Symfony Doctrine YAML 映射文件

Azure DevOps Pipeline Program 不包含适合入口点的静态 'Main' 方法

python - 将正则表达式添加到 yaml python