Jekyll/Liquid - 如何将大块文本添加到 YAML 前端?

Posted

技术标签:

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

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

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

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

【问题讨论】:

In YAML, how do I break a string over multiple lines?的可能重复 【参考方案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 是如何工作的

以上是关于Jekyll/Liquid - 如何将大块文本添加到 YAML 前端?的主要内容,如果未能解决你的问题,请参考以下文章

带有 Jekyll 和 Liquid 的排序导航菜单

html 条形图Jekyll LIquid for JSON

在 Jekyll/Liquid 和 pygments 的 html 问题中突出显示

检查带有/ Jekyll Liquid 的页面上是不是存在带有/ class x 的 div

生成 Jekyll Liquid 内容而不包含它(仅来自 JQuery 加载函数)

vim - 如何在不计算行数的情况下删除一大块文本?