【问题标题】:Jekyll/Liquid - how to add large blocks of text to YAML front matter?Jekyll/Liquid - 如何将大块文本添加到 YAML 前端?
【发布时间】:2011-10-07 18:37:58
【问题描述】:

我正在尝试在 Jekyll 中实现一个服务目录,其中 20 或 30 个页面中的每一个都将包含一个 7x2 表。左列将包含标签,例如概述、可用于等,而右栏将包含在一行和几段文本之间。我希望用 Liquid 变量来描述右列,例如{概述},{availableTo}

我注意到 YAML 似乎对换行非常挑剔,因此我不得不在一行上输入这些段落和它们的标记,这可以持续几个屏幕宽度。这是一个问题,因为它很烦人,还因为我希望这些前端事项可由技术但非 webdev 用户编辑。有没有办法让前面的事情容忍休息?

或者,有没有一种方法可以用 {content} 部分填充此表,而不必每次都将表重新编码到其中?

【问题讨论】:

标签: yaml liquid jekyll


【解决方案1】:

多行字符串的Yaml语法is this one:

body: |
  This is a multi-line string.
  "special" metacharacters may
  appear here. The extent of this string is
  indicated by indentation. 

请注意,第一行必须是空格,后跟| 字符和新行。然后你必须将文本比其父级缩进一级。

因此,您可以通过这种方式创建一个项目:

item1:
  overview: |
    overview text
    more overview text
  available_to: 2012-01-01
  foo: |
    foo text
    more foo text

在我看来,您还想按顺序排列物品。您可以为此使用 yaml 列表:

catalog:
  - id: item 1
    overview: |
      overview text
      more overview text
    available_to: 2012-01-01
    foo: |
      foo text
      more foo text
    ...
  - id: item2
    overview: <similar to above>

我希望这会有所帮助!

【讨论】:

  • 谢谢,这也帮助我解决了如何在 YAML 前端添加引号字符的问题!
  • FWIW,YAML 支持 very many 不同的多行字符串格式。在许多情况下,&gt;| 更好,因为它不会在每行的末尾插入换行符。
  • @Philll_t 您将在输出中添加markdownify filter{{ foo | mardownify }}。我发现为了实现换行,还需要在frontmatter中添加额外的换行。 here 是如何工作的
猜你喜欢
  • 2015-11-09
  • 1970-01-01
  • 2017-06-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2021-07-11
  • 1970-01-01
  • 2012-09-27
相关资源
最近更新 更多