Многострочный указатель YAML не работает в файле данных Jekyll - PullRequest
0 голосов
/ 05 мая 2019

В соответствии с синтаксисом 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 ]

1 голос
/ 05 мая 2019

То, что вводится >, представляет собой скаляр блока сложенных стилей , как указано в спецификации, оно похоже на скаляр скалярного стиля, поэтому вы можете переписать его описание в соответствии со сложенным стилем:

Внутри сложенных скаляров все (с отступом) символы считаются содержимым, включая символы пробела.Обратите внимание, что все символы разрыва строки нормализованы.

Чего явно не хватает, так это отступа , который определяет, какие строки принадлежат этому значению для ключа 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.
0 голосов
/ 05 мая 2019

Когда сомневаешься ... Отступ!

- 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.

...