web-dev-qa-db-fra.com

Jekyll / Liquid - comment ajouter de gros blocs de texte à la matière YAML?

J'essaie d'implémenter un catalogue de services dans Jekyll, dans lequel chacune des 20 ou 30 pages contiendra un tableau 7x2. La colonne de gauche contiendra des étiquettes, par ex. Aperçu, Disponible à, etc., tandis que la colonne de droite contiendra entre une ligne et plusieurs paragraphes de texte. J'espérais caractériser la colonne de droite avec des variables Liquid, par ex. {aperçu}, {availableTo}

J'ai remarqué que le YAML semble être très pointilleux sur les sauts de ligne, et en conséquence j'ai dû saisir ces paragraphes et leur balisage sur une seule ligne qui peut durer plusieurs largeurs d'écran. C'est un problème car c'est ennuyeux, et aussi parce que j'aimerais que ces fronts soient modifiables par des utilisateurs techniques mais non webdev. Existe-t-il un moyen de faire tolérer les cassures au sujet?

Sinon, existe-t-il un moyen de remplir ce tableau avec la section {content}, sans avoir à recoder le tableau à chaque fois?

52
patrickjmc

Syntaxe Yaml pour les chaînes multi-lignes est-ce celle-ci :

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

Notez que la première ligne doit être un espace suivi du | caractère et une nouvelle ligne. Ensuite, vous devez indenter le texte d'un niveau de plus que son parent.

Par conséquent, vous pouvez créer un élément de cette façon:

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

Il me semble que vous souhaitez également ranger vos articles dans l'ordre. Vous pouvez utiliser une liste yaml pour cela:

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>

J'espère que ça aide!

81
kikito