4.5.1 Arguments d'un template

Les templates supportent la paramétrisation au moment de l'exécution de la commande --new-entry. C'est le cas par exemple du template oEmbed ou images. Quand un template est appelé sans ses arguments, la création de la publication échoue.

Avant d'utiliser un template, il faut donc connaître ses arguments à l'aide de la commande --template-arguments.

Les paramètres de template prennent la forme de placeholder Python, ceux qui sont utilisés avec la fonction format. Par exemple :

{moo} {foo} {bar}

Pour fonctionner il faut passer à VenC un troisième argument, au format JSON, qui portera les clés-valeurs nécessaires au template.

4.5.1.1 Premier cas pratique : oEmbed

Le template oEmbed se présente ainsi :

authors:
categories:
title: {venc_entry_title}
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
.:GetEmbedContent::{embed_content}:.

Dans ce template, on voit que l'on a deux placeholders :

Pour créer une publication avec le template oEmbed il faudrait donc utiliser la commande VenC --new-entry, comme ci-dessous :

venc --new-entry \
  "Des images stylées, comme l'histoire de France" \
  oEmbed \
  '{"embed_content":"https://www.youtube.com/watch?v=dQw4w9WgXcQ"}'

4.5.1.2 Second cas pratique : images

Le template images se présente ainsi :

authors:
categories:
title: {venc_entry_title}
images: {images}
---VENC-BEGIN-PREVIEW---
---VENC-END-PREVIEW---
.:ForEntryMetadata::images::<img src="{value}" title="" alt="{value}">:: :.

Dans ce template on voit que l'on a trois placeholders :

Comme la métadonnée d'origine dans l'entête YAML du template est appelée dans ForEntryMetadata, il faut que la variable images soit une liste. On doit donc utiliser la commande VenC --new-entry comme ci-dessous :

Pour plus de clarté l'exemple utilise une approche multiligne en Bash, comme expliqué ici.

JSON=$(cat <<-END
{
    "images" : [
        "https://i.kym-cdn.com/photos/images/newsfeed/000/247/207/813.gif",
        "https://i.kym-cdn.com/photos/images/newsfeed/001/390/627/208.jpg"
    ]
}
END
)
venc --new-entry \
"Des images stylées, comme l'histoire de France" \
images \
"$JSON"