YAML多行指示符在Jekyll数据文件中不起作用

时间:2019-05-05 14:41:54

标签: string yaml jekyll

根据YAML语法,>符号应允许该值跨越多行:

- name: coming-soon
  teaser: >
  “Dolor eiusmod cupidatat duis qui consectetur. 
  Mollit nulla consectetur id excepteur do. 
  Anim ut dolor quis sit consequat. 
  Mollit laboris proident sunt incididunt mollit consequat officia. 
  Ad deserunt eu veniam qui eiusmod ex proident 
  pariatur tempor mollit laborum enim laboris elit.”

但这会导致Jekyll中出现以下错误:

could not find expected ':' while scanning a simple key at line 11 column 3

:很明显在那里,所以我不知道是什么导致它失败。有人遇到过吗?

我尝试将所有行都放在双引号和单引号中。我试着完全删除引号。我尝试使用>-代替>,但是它们都产生相同的错误。

2 个答案:

答案 0 :(得分:1)

>引入的是folded style block scalar,如规范中所示,它类似于文字样式标量,因此您可以重写其描述以匹配折叠样式:

  

在折叠的标量中,所有(缩进的)字符都被视为内容,包括空格字符。请注意,所有换行符都已标准化。

明显缺少的是缩进,该缩进确定键teaser的此值属于哪些行。如果有一个后续键,则必须再次与teaser对齐。但是您的整个折叠标量是对齐的,这使YAML解析器感到困惑。

我不确定您是否希望双引号成为值的一部分,如果使用,应该使用:

- name: coming-soon
  teaser: >
    “Dolor eiusmod cupidatat duis qui consectetur. 
    Mollit nulla consectetur id excepteur do. 
    Anim ut dolor quis sit consequat. 
    Mollit laboris proident sunt incididunt mollit consequat officia. 
    Ad deserunt eu veniam qui eiusmod ex proident 
    pariatur tempor mollit laborum enim laboris elit.”

(空格的数量并不重要,但是请确保每一行都是对齐的,否则必须在>之后指定缩进)。

如果双引号不是该值的一部分,则可以使用折叠标量:

- name: coming-soon
  teaser: >
    Dolor eiusmod cupidatat duis qui consectetur. 
    Mollit nulla consectetur id excepteur do. 
    Anim ut dolor quis sit consequat. 
    Mollit laboris proident sunt incididunt mollit consequat officia. 
    Ad deserunt eu veniam qui eiusmod ex proident 
    pariatur tempor mollit laborum enim laboris elit.

或者忽略折叠并使用多行纯标量:

- name: coming-soon
  teaser: Dolor eiusmod cupidatat duis qui consectetur. 
    Mollit nulla consectetur id excepteur do. 
    Anim ut dolor quis sit consequat. 
    Mollit laboris proident sunt incididunt mollit consequat officia. 
    Ad deserunt eu veniam qui eiusmod ex proident 
    pariatur tempor mollit laborum enim laboris elit.

答案 1 :(得分:-1)

如果有疑问... 缩进!

- name: coming-soon
  teaser: >
    Dolor eiusmod cupidatat duis qui consectetur. 
    Mollit nulla consectetur id excepteur do. 
    Anim ut dolor quis sit consequat. 
    Mollit laboris proident sunt incididunt mollit consequat officia. 
    Ad deserunt eu veniam qui eiusmod ex proident 
    pariatur tempor mollit laborum enim laboris elit.