56 votes

Jekyll/Liquid - comment ajouter de grands blocs de texte à la matière premiè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 exemple Overview, Available To, etc, tandis que la colonne de droite contiendra entre une ligne et plusieurs paragraphes de texte. J'espérais pouvoir caractériser la colonne de droite avec les variables Liquid, par exemple {overview}, {availableTo}.

J'ai remarqué que le YAML semble être très pointilleux sur les sauts de ligne, et par conséquent j'ai dû saisir ces paragraphes et leur balisage sur une ligne qui peut s'étendre sur plusieurs largeurs d'écran. C'est un problème parce que c'est ennuyeux, et aussi parce que j'aimerais que ces front-matters soient éditables par des utilisateurs techniques mais non webdev. Existe-t-il un moyen de faire en sorte que la première page tolère les coupures ?

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

91voto

kikito Points 23229

Syntaxe Yaml pour les chaînes de caractères de plusieurs lignes c'est celui-là :

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

Remarquez que la première ligne doit être un espace suivi de l'élément | et une nouvelle ligne. Vous devez ensuite indenter le texte d'un niveau de plus que son parent.

Par conséquent, vous pouvez créer un élément de cette manière :

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 classer vos éléments 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 cela vous aidera !

Prograide.com

Prograide est une communauté de développeurs qui cherche à élargir la connaissance de la programmation au-delà de l'anglais.
Pour cela nous avons les plus grands doutes résolus en français et vous pouvez aussi poser vos propres questions ou résoudre celles des autres.

Powered by:

X