J'ai trouvé un excellent exemple de création d'un objet à deux niveaux dans les métadonnées YAML. aquí . Par exemple, afin d'inclure plus d'un auteur
---
title: 'This is the title: it contains a colon'
author:
- name: Author One
affiliation: University of Somewhere
- name: Author Two
affiliation: University of Nowhere
---
Puis, en html template
$for(author)$
$if(author.name)$
$author.name$$if(author.affiliation)$ ($author.affiliation$)$endif$
$else$
$author$
$endif$
$endfor$
Est-il possible de créer un objet à trois niveaux dans YAML ? Par exemple, je veux avoir plus d'un auteur de la même institution. Par conséquent, ma logique est la suivante
---
title: 'This is the title: it contains a colon'
author:
- affiliation:
- name: Author One
email: fake@fake.com
- name: Author Two
email: fake2@fake.com
- affiliation:
- name: Author Three
email: fake3@fake.com
---
Mais ça ne marche pas. Est-il possible de le faire ? Je sais que cela semble n'avoir aucun sens, mais c'est nécessaire pour mon html. template
structure.
Merci pour votre aide !
UPDATE
J'ajoute également un chunk que j'ai créé en html template
.
$if(author)$
$for(author)$
<div class = "author-section">
<div>$author.affiliation$</div>
<div class = "authors">
$for(author.affiliation)$
<div class = "author">
<div class = "mid-col">
$author.affiliation.name$
</div>
<div class = "right-col">
<a>$author.affiliation.email$</a>
</div>
</div>
$endfor$
</div>
</div>
$endfor$
$endif$
Ensuite, tout fonctionne bien, sauf que $author.affiliation$
qui n'a pas de valeur dans mon YAML. Par conséquent, après le rendu, j'obtiens la chaîne "true" dans mon fichier .html final.
Cependant, lorsque j'ajoute un mot pour l'affirmation dans YAML, par ex.
author:
- affiliation: University of Somewhere
- name: Author One
email: fake@fake.com
Je reçois une erreur pendant le rendu
Error in yaml::yaml.load(string, ...) :
Scanner error: mapping values are not allowed in this context at line 9, column 19