YAML 多行符号在 Jekyll 数据文件中不起作用
YAML multi-line signifier not working in Jekyll data file
根据 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
:
显然在那里,所以我不知道是什么导致它失败。有人遇到过这个吗?
我试过将所有行放在双引号和单引号中。我试过完全删除引号。我试过使用 >-
而不是 >
但它们都产生相同的错误。
当它怀疑...
缩进!
- 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.
>
引入的是 folded style block scalar,如规范中所示,它类似于文字样式标量,因此您可以重写其描述以匹配折叠样式:
Inside folded scalars, all (indented) characters are considered to be content, including white space characters. Note that all line break characters are normalized.
明显缺少的是缩进,它确定哪些行属于键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.
根据 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
:
显然在那里,所以我不知道是什么导致它失败。有人遇到过这个吗?
我试过将所有行放在双引号和单引号中。我试过完全删除引号。我试过使用 >-
而不是 >
但它们都产生相同的错误。
当它怀疑... 缩进!
- 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.
>
引入的是 folded style block scalar,如规范中所示,它类似于文字样式标量,因此您可以重写其描述以匹配折叠样式:
Inside folded scalars, all (indented) characters are considered to be content, including white space characters. Note that all line break characters are normalized.
明显缺少的是缩进,它确定哪些行属于键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.