Pattern Processor

VenC utilise un moteur de reconnaissance de motif permettant une mise en page facilitée et automatisée, notamment quand vous souhaitez réaliser votre propre design pour votre site.

Un motif est en fait une fonction pouvant prendre des paramètres. L'objectif est de remplacer un motif par une chaîne de caractères formatée. Typiquement, les motifs permettent d'accéder aux données du blog ou de faire de la mise en page spécifique pour faire, par exemple, un menu déroulant ou une barre de navigation.

Les motifs pouvant être reconnus dépendent du contexte dans lequel ils sont trouvés.

Les motifs sont interprétté de la façon suivante dans VenC

  • Chaque motifs commence par '.:'
  • Chaque motifs se termine par ':.'
  • Le ou les séparateurs d'arguments à l'intérieur d'un motif sont représentés par '::'.

Feuille de référence

Ce chapitre comporte un tableau récapitulant l'ensemble des patterns reconnus par VenC, ainsi que leurs arguments.

Si vous souhaitez créer ou modifier un thème existant, c'est le bon endroit pour étudier les différentes possibilités qui s'offrent à vous.

  • La colone des arguments, indique le nom des paramètres qu'il est possible (et souvent obligatoire) de spécifier à la fonction.

  • La colonne des variables contextuelles indique le nom des variables qu'il est possible d'utiliser à l'intérieur d'un ou plusieurs arguments_.

PatternArgumentsVariables contextuelles
Audiosource, extensions
CodeHighlightlanguage, line_numbers, input_code
CodeHighlightIncludelanguage, line_numbers, input_code_file
DisableMarkupcontent
Escapecontent, EndEscape
ForBlogArchivesstring, separatorvalue, path, count, weight
ForEntryAuthorsstring, separatorvalue
ForEntryMetadatavariable_name, string, separatorvalue
ForEntryTagsstring, separatorvalue
ForPageslength, string, separatorentry_id, entry_title, page_number, path
GetAuthorDescription
GetAuthorEmail
GetAuthorName
GetBlogLanguage
GetBlogLicense
GetBlogMetadatametadata_name
GetBlogMetadataIfExistsmetadata_name, string, string2value
GetBlogMetadataIfNotNullmetadata_name, string, string2value
GetBlogName
GetBlogKeywords
GetBlogDescription
GetBlogURL
GetChaptersopen_node, open_branch, close_branch, clode_nodeindex, level, title, path
GetChapterAttributeByIndexattribute, index
GetEmbedContentcontent_url
GetEntryAttributeByIDattribute, identifier
GetEntryContent
GetEntryDate
GetEntryDateURL
GetEntryDay
GetEntryHour
GetEntryID
GetEntryMetadatametadata_name
GetEntryMetadataIfExistsmetadata_name,string,string2value
GetEntryMetadataIfNotNullmetadata_name, string, stringvalue
GetEntryMinute
GetEntryMonth
GetEntryPreview
GetEntryTitle
GetEntryURL
GetEntryYear
GetGenerationTimestampdate_format
GetJSON-LD
GetNextPagestringentry_id, entry_title, page_number, path
GetPreviousPagestringentry_id, entry_title, page_number, path
GetRandomNumbermin, max, precision
GetRelativeLocation
GetRelativeOrigin
GetRootPage
GetStyleSheets
GetThreadNamestring1, string2value
GetVenCVersion
IfAtomEnabledstring1, string2
IfCategoriesstring1, string2
IfChaptersstring1, string2
IfFeedsEnabledstring1, string2
IfInArchivestring1, string2
IfInCategoriesstring1, string2
IfInEntryIDid, string1, string2
IfInFeedstring1, string2
IfInfiniteScrollEnabledstring1, string2
IfInFirstPagestring1, string2
IfInMainThreadstring1, string2
IfInLastPagestring1, string2
IfInThreadstring1, string2
IfInThreadAndHasFeedsstring1, string2
IfPagesstring1, string2
IfRSSEnabledstring1, string2
IncludeFileescape,filename,arg1, arg2, ...
Latex2MathMLlatex_code
LeavesForBlogCategoriesstring, separatorvalue, path, branch
LeavesForEntryCategoriesstring, separatorvalue, path, branch
PreviewIfInThreadElseContent
SetColorinput_text, color
SetStyletag_id, tag_class, content
Tableitem1, item2, ...
TreeForBlogCategoriesopen_node, open_branch, close_branch, clode_nodevalue, path, count, weight
TreeForEntryCategoriesopen_node, open_branch, close_branch, clode_nodevalue, path, count, weight
Videosource, extensions, poster

Motifs de type Accesseur

Il existe plusieurs type de motifs que VenC reconnaît. Le premier d'entre eux est le type accesseur. Il permet de récupérer le contenu d'une variable dont la disponibilité dépend du contexte.

Accesseur de publications

Les accesseurs de publications ne sont disponibles que pendant le traitement d'une publication, donc à l'intérieur des fichiers entry.html, rssEntry.xml et atomEntry.xml et de la publication elle-même.

Il est aussi possible d'utiliser ceux-là dans des templates. Pour en savoir plus sur les templates, rendez vous ici

.:GetEntryContent:.

Ce pattern ne peut pas être utilisé dans un template.

Ce pattern renvoie le contenu complet de la publication courante.

.:GetEntryPreview:.

Ce pattern ne peut pas être utilisé dans un template.

Ce pattern renvoie le résumé de la publication courante.

.:GetEntryID:.

Retourne l'identifiant unique de la publication.

.:GetEntryTitle:.

Retourne le nom de la publication.

.:GetEntryMonth:.

Retourne le mois de création de la publication.

.:GetEntryYear:.

Retourne l'année de création de la publication.

.:GetEntryDay:.

Retourne le jour de création de la publication.

. :GetEntryHour:.

Retourne l'heure de création de la publication.

.:GetEntryMinute:.

Retourne la minute de création de la publication.

.:GetEntryDate[::format]:.

Retourne la date de la publication formatée comme définit dans le fichier de configuration par le champ date_format.

Il est possible d'utiliser un autre format de date à l'aide de l'argument optionnel format. Pour en savoir plus sur ce format, rendez vous ici.

.:GetEntryDateURL:.

Retourne le liens vers le groupe d'archive dans lequel se trouve la publication.

.:GetEntryURL:.

Retourne l'URL de la publication si VenC est configuré pour générer une page par publication. Sinon, le motif est ignoré et supprimé.

.:ForEntryAuthors::string::separator:.

Retourne la liste des auteurs de la publication.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant le nom de l'auteur courant.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:ForEntryTags::string::separator:.

Retourne la liste des mots-clefs de la publication.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant le mot-clef courant.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:ForEntryMetadata::variable_name::string::separator:.

Il est possible de définir des métadonnées sous la forme de listes.

Le premier argument est une chaîne de caractères à formater avec la variable contextuelle {value} contenant l'élément courant de la liste.

Le second paramètre est une chaîne de caractères servant de séparateur.

.:GetEntryMetadata::metadata_name:.

Il est possible de définir ses propres champs dans les métadonnées de la publication ou du template.

Par exemple, si on définie le champ suivant :

free_hardware : Arduino Mega

Pour accéder à celui-ci, on utilisera le motif GetEntryMetadata de la façon suivante :

.:GetEntryMetadata::free_hardware:.

Si la métadonnée ainsi référencée n'existe pas, VenC générera une erreur et vous indiquera où en est l'origine.

.:GetEntryMetadataIfExists::metadata_name[::string][::string2]:.

De façon similaire, il est possible d'essayer d'accéder à une métadonnée, sans garantie que celle-ci existe. Si la métadonnée existe, il est possible alors de formater du texte pour l'y inclure.

Il est possible d'utiliser des variables contextuelles propre à la fonction pour formater le texte :

  • {value} : la valeur de la métadonnée qu'on référence.

Les arguments de ce pattern sont au nombre de trois :

  • metadata_name : le nom de la métadonnée désirée.
  • string : le texte formaté retourné si la condition est remplie. Optionnel. Si cet argument n'est pas présent, la fonction renvoie la valeur de la métadonnée sans formatage.
  • string2 : le texte non formaté retourné si la condition n'est pas rempli. Si cet argument n'est pas présent, le pattern est ignoré.

.:GetEntryMetadataIfNotNull::metadata_name[::string][::string2]:.

Identique à GetEntryMetadataIfExists, mais la métadonnée spécifié ne doit pas être vide.

<div id="entry.:GetEntryID:." .:GetMetadataIfExists::alternate_style::class="{value}":. >

Si la variable référencée n'est pas définie, VenC ignore le motif et le supprime.

Si le second argument n'est pas définie, l'accesseur renvoie directement la variable référencée, si elle existe.

.:LeavesForEntryCategories::string::separator:.

Les catégories sont organisées sous la forme d'un arbre. Il est possible de ne récupérer que les "feuilles" de cet arbres, c'est-à-dire les catégories qui n'ont pas de sous-catégories.

Les arguments du motif sont les suivants :

  • string : la chaîne de caractèress à formater avec des variables contextuelles.
  • separator : la chaîne de caractères qui sert de séparateur.

LeavesForEntryCategories possède les variables contextuelles suivante :

  • {value} : contient le nom de la catégorie courante.
  • {path} : contient le chemin relatif de la catégorie courante.
  • {branch} : contient la branche complète de la catégorie, de la racine de l'arborescence jusqu'à la catégorie courante.

Par exemple, si la publication courante se trouve dans les catégories suivantes :

categories: 'moo, foo > bar, boo > loo > poo'

Alors le motif :

.:LeavesForEntryCategories::{value}::,:.

Retournera :

moo,bar,poo

Ce motif est ignoré et supprimé si la génération des catégories est désactivée dans le fichier de configuration principal.

.:TreeForEntryCategories::open_node::open_branch::close_branch::close_node:.

Les catégories de la publication sont organisées sous la forme d'un arbre. Il est possible de récupérer l'arbre entier afin, typiquement, de générer un menu ou une liste de catégories et de sous-catégories.

Les arguments du motif sont les suivantes :

  • open_node : contient la chaîne de caractères d'ouverture pour la catégorie parente.
  • open_branch : contient la chaîne de caractères d'ouverture de la catégorie courante.
  • close_branch : contient la chaîne de caractères de fermeture de la catégorie courante.
  • close_node : contient la chaîne de caractères de fermeture de la catégorie parente.

Les variables contextuelles de ce motif sont les suivantes :

  • {value} : le nom de la catégorie courante.
  • {path} : le chemin relatif de la catégorie courante.
  • {count} : le nombre de publications dans la catégorie courante.
  • {weight} : le nombre de publications dans la catégorie courante divisé par le nombre maximal de publications par catégorie.

Par exemple, pour créer un menu déroulant on peut utiliser le motif comme ci-dessous :

.:Chapters::
    <ul class="chapter-level{level}">::
    <li>{index}. <a href="{path}">{title}</a>::
    </li>::
    </ul>
:.

Si la publication était incluse dans les catégories suivantes :

categories: 'Material > Metal > Copper, Material Metal > Steel, Science'

Alors le motif générerait quelque chose comme le code HTML suivant :

<ul>
    <li>
        <a href="../Material/" title="1 publications">Material</a>
        <ul>
            <li>
                <a href="../Material/Metal/" title="1 publications">Metal</a>
                <ul>
                    <li><a href="../Material/Metal/Copper/" title="1 publications">Copper</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Material-Metal/" title="1 publications">Material Metal</a>
        <ul>
            <li>
                <a href="../Material-Metal/Steel/" title="1 publications">Steel</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Science/" title="1 publications">Science</a>
    </li>
</ul>

À la fin de chaque branche, si la catégorie courante possède une ou plusieurs catégorie filles, alors les arguments open_node et close_node sont ajoutés et une nouvelle liste de sous-catégories est générée entre ces deux arguments, en utilisant les arguments open_branch et close_branch.

Ce motif est ignoré et supprimé si la génération des catégories est désactivé dans le fichier de configuration principal.

Accesseurs globaux

Ces motifs sont disponibles quelque soit le contexte et leurs valeurs sont définis dans blog_configuration.yaml.

.:GetAuthorName:.

Retourne le nom de l'auteur du blog.

.:GetBlogName:.

Retourne le titre du blog.

.:GetBlogDescription:.

Retourne la description du blog.

.:GetBlogKeywords:.

Retourne les mots-clefs décrivant le blog.

.:GetAuthorDescription:.

Retourne la description de l'auteur du blog.

.:GetBlogLicense:.

Retourne la licence appliquée au contenu du blog.

.:GetBlogURL:.

Retourne l'URL du blog.

.:GetBlogLanguage:.

Retourne la langue du blog.

.:GetAuthorEmail:.

Retourne l'adresse email de l'auteur du blog.

.:GetBlogMetadata::metadata_name:.

Vous pouvez également définir vos propres métadonnées en rajoutant des champs au fichier de configuration blog_configuration.yaml. Par exemple en rajoutant la ligne suivante dans le fichier de configuration :

Banner: 'maBanniere.jpg'

Vous pourrez ensuite récupérer la valeurs de Banner avec :

.:GetBlogMetadata::Banner:.

Comme pour GetEntryMetadata, si la métadonnée référencée n'existe pas, VenC générera une erreur et vous en indiquera l'origine.

.:GetBlogMetadataIfExists::metadata_name[::string][::string2]:.

De façon similaire, il est possible d'essayer d'accéder à une métadonnée, sans garantie que celle-ci existe. Si la métadonnée existe, il est possible alors de formater du texte pour y inclure celle-ci.

Le formatage du texte se fait en utilisant des variables contextuelles propre à la fonction :

  • {value} : la valeur de la métadonnée qu'on référence.

Les arguments de ce pattern sont au nombre de trois :

  • metadata_name : le nom de la métadonnée désirée.
  • string : le texte formaté retourné si la condition est remplie. Optionnel. Si cet argument n'est pas présent, la fonction renvoie la valeur de la métadonnée sans formatage.
  • string2 : le texte non formaté retourné si la condition n'est pas remplie. Si cet argument n'est pas présent, le pattern est ignoré.

.:GetBlogMetadataIfNotNull::metadata_name[::string][::string2]:.

Identique à GetBlogMetadataIfExists, mais la métadonnée spécifiée ne doit pas être vide.

.:GetBlogMetadataIfExists::mastodon::
    <a href="{value}" class="social-network-item">
        <img src="{relative_origin}mastodon.png" alt="Mastodon" title="Mastodon"/>
    </a>
:.

Dans cet example, on suppose que l'image de l'icône du réseau social se trouve à la racine du blog, on a donc besoin de préciser son chemin relatif avec la variable contextuelle {relative_origin}.

Si la variable référencée n'est pas définie VenC ignore le motif et le supprime.

Si le second argument n'est pas définit, l'accesseur renvoie directement la variable référencée si elle existe.

.:ForBlogArchives::string::separator:.

Ce motif permet de récupérer la listes des périodes archivées. Le format de la période de temps est défini dans le fichier de configuration principal par le champ archives_directory_name.

  • Le premier argument string contient le texte à formater pour chaque élément de la liste de période.
  • Le second argument separator contient le texte utilisé comme séparateur.

Les variables contextuelles de la fonction sont les suivantes :

  • {value} : la période courante, tel que défini par archives_directory_name dans le fichier de configuration principal du blog.
  • {path} : le chemin relatif la période archivée.
  • {count} : le nombre de publications dans la période courante.
  • {weight} : le nombre de publications dans la période courante divisé par le nombre maximal de publications par période.

Si la génération des archives est désactivée, le motif est ignoré et supprimé.

.:LeavesForBlogCategories::string::separator:.

Les catégories sont organisées sous la forme d'un arbre. Il est possible de ne récupérer que les "feuilles" de cet arbres, c'est-à-dire les catégories qui n'ont pas de sous-catégories.

Le motif fonctionne comme LeavesForEntryCategories mais construit l'arborescence des catégories en compilant toutes les catégories de toutes les publications.

Les arguments du motif sont les suivants :

  • string : la chaîne de caractères à formater avec des variables contextuelles.
  • separator : la chaîne de caractère qui sert de séparateur.

LeavesForBlogCategories possède les variables contextuelles suivante :

  • {value} : contient le nom de la catégorie courante.
  • {path} : contient le chemin relatif de la catégorie courante.
  • {branch} : contient la branche complète de la catégorie; de la racine de l'arborescence, jusqu'à la catégorie courante.

Par exemple, imaginons que l'arborescence des catégories du blog se présente de la façon suivante :

├─── Science 
│    ├─── Chemistry
│    └─── Physics
└─── Art
     ├─── Music
     └─── Painting

Alors :

.:LeavesForEntryCategories::{value}::,:.

Retournera :

Chemestry,Physic,Music,Painting

Ce motif est ignoré et supprimé si la génération des catégories est désactivée dans le fichier de configuration principal.

.:TreeForBlogCategories::open_node::open_branch::close_branch::close_node:.

Les catégories de la publication sont organisées sous la forme d'un arbre. Il est possible de récupérer l'arbre entier afin, typiquement, de générer un menu ou une liste de catégories et de sous-catégories.

Le motif fonctione comme TreeForEntryCategories mais construit l'arborescence des catégories en compilant toutes les catégories de toutes les publications.

Les arguments du motif sont :

  • open_node : contient la chaîne de caractère d'ouverture pour la catégorie parente.
  • open_branch : contient la chaîne de caractère d'ouverture de la catégorie courante.
  • close_branch : contient la chaîne de caractère de fermeture de la catégorie courante.
  • close_node : contient la chaîne de caractère de fermeture de la catégorie parente.

Les variables contextuelles de ce motif sont les suivantes :

  • {value} : le nom de la catégorie courante.
  • {path} : le chemin relatif de la catégorie courante.
  • {count} : le nombre de publication dans la catégorie courante.
  • {weight} : le nombre de publication dans la catégorie courante divisé par le nombre maximal de publication par catégorie.

Par exemple, pour créer un menu déroulant, on utilisera le motif comme ci-dessous :

.:TreeForBlogCategories::
    <ul>::
    <li><a href="{path}" title="{count} publications">{value}</a>::
    </li>::
    </ul>
:.

Si l'ensemble des catégories du blog formait l'arborescence suivante :

├─── Material
│    └─── Metal
│          ├─── Copper
│          └─── Steel
└─── Science

Alors le motif générera quelque chose comme le code HTML suivant :

<ul>
    <li>
        <a href="../Material/" title="1 publications">Material</a>
        <ul>
            <li>
                <a href="../Material/Metal/" title="1 publications">Metal</a>
                <ul>
                    <li><a href="../Material/Metal/Copper/" title="1 publications">Copper</a></li>
                </ul>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Material-Metal/" title="1 publications">Material Metal</a>
        <ul>
            <li>
                <a href="../Material-Metal/Steel/" title="1 publications">Steel</a>
            </li>
        </ul>
    </li>
    <li>
        <a href="../Science/" title="1 publications">Science</a>
    </li>
</ul>

À la fin de chaque branche, si la catégorie courante possède une ou plusieurs catégories filles, alors les arguments open_node et close_node sont ajoutés et une nouvelle liste de sous-catégories est générée entre ces deux arguments, en utilisant les arguments open_branch et close_branch.

Ce motif est ignoré et supprimé si la génération des catégories est désactivée dans le fichier de configuration principal.

.:GetChapters::open_node::open_branch::close_branch::close_node:.

Ce motif permet de récupérer l'arborescence des chapitres du blog. En effet, VenC permet d'organiser votre contenu comme le serait un livre ou un e-book. La présente documentation est d'ailleurs faite ainsi.

Le motif a les mêmes arguments que TreeForEntryCategories et TreeForBlogCategories :

  • open_node : contient la chaîne de caractère d'ouverture du chapitre parent.
  • open_branch : contient la chaîne de caractère d'ouverture du chapitre courant.
  • close_branch : contient la chaîne de caractère de fermeture du chapitre courant.
  • close_node : contient la chaîne de caractère de fermeture du chapitre parent.

Les variables contextuelles de la fonction sont les suivantes :

  • {index} : la valeur de la numérotation du chapitre courant. Par exemple '3.2', '4.2.1' ou bien '2'.
  • {level} : le niveau du chapitre courant. Par exemple un chapitre avec l'index '3.2' aurait le niveau 1. Un chapitre avec l'index '4.2.1' aurait le niveau 2 et un chapitre avec l'index '2' aurait le niveau 0.
  • {title} : le titre du chapitre courant.
  • {path} : le chemin relatif du chapitre courant.

Une utilisation typique du motif serait :

.:Chapters::
    <ul class="chapter-level{level}">::
    <li>{index}. <a href="{path}">{title}</a>::
    </li>::
    </ul>
:.

La fonction générera alors par exemple le code HTML ci-dessous :

<ul class="chapter-level0">
    <li>
        1. <a href="../Premier-Chapitre">Premier Chapitre</a>
    </li>
    <li>
        2. <a href="../Second-Chapitre">Second Chapitre</a>
    </li>
    <li>
        3. <a href="../Troisième-Chapitre">Troisième Chapitre</a>
        <ul class="chapter-level1">
            <li>
                3. <a href="../Premier-Sous-Chapitre-du-Troisième Chapitre">Premier Sous-Chapitre du Troisième Chapitre</a>
            </li>
        </ul>
</ul>

Si la génération des chapitres est désactivée dans le fichier de configuration principal, le motif est ignoré et supprimé.

.:GetThreadName[::string1][::string2]:.

Ce motif permet de récupérer le nom du fil de publication courant.

Par exemple, si la page courange est générée dans un fil de publication de type categorie et que ladite catégorie s'appel "Histoire de l'informatique", alors GetThreadName permet de récupérer cette valeur dans une chaîne de caractères formatée correspondant à l'argument string1. Si au contraire, le fil de publication n'a pas de nom alors c'est string2 qui est renvoyée.

  • string1 : premier argument du motif, c'est celui qui est renvoyé si le fil de publication a un nom. Pour accéder au nom du fil de publication dans l'argument, il faut utiliser la variable contextuelle {value}. Si c'est cet argument qui doit être utilisé par le motif et qu'il est manquant, le motif renvoie simplement le nom du fil de publication, sans formatage particuler.
  • string2 : second argument du motif, c'est celui qui est renvoyé si le fil de publication n'a pas de nom. Cet argument n'a pas de variable contextuelle. Si c'est cet argument qui doit être utilisé par le motif et qu'il est manquant, le motif est ignoré.

.:GetEntryAttributeByID::attribute::identifier:.

Ce motif permet de récupérer n'importe quelle métadonnée d'une publication, en renseignant l'identifiant de la publication et le nom de la métadonnée désirée.

  • attribute : le nom de la métadonnée de la publication.
  • identifier : un nombre entier identifiant la publication ciblée.

Ce pattern permet de récupérer, entre autres métadonnées définis dans le header YAML de la publication, l'url de celle-ci. Par exemple :

.:GetEntryAttributeByID::url::1337:.

Renverra le permalien relatif de la publication dont l'identifiant est 1337.

.:GetChapterAttributeByIndex::attribute::index:.

Ce motif permet de récupérer n'importe quelle métadonnée d'un chapitre en renseignant son index.

  • attribute : nom de la métadonnée du chapitre.
  • index : index du chapitre dont on veut récupérer la métadonnée.

Typiquement ce pattern sert à récupérer le titre du chapitre, ou son chemin. Par exemple :

.:GetChapterAttributeByIndex::path::1.2.3:.

Renverra le permalien relatif du chapitre 1.2.3.

.:GetChapterAttributeByIndex::title::4.2:.

Renverra le permalien relatif du chapitre 4.2.

Motifs de mise en page

Il s'agit de motifs qui intéragissent le plus souvent directement avec le système de pagination et les chemins manipulés par VenC. Il sont conçus spécifiquement pour vous aider à la mise en page et peuvent par exemple générer du code HTML ou formater du texte.

Motifs conditionnels

Ce type de motifs s'exécutent sous condition. Ils permettent une mise en page plus fine et spécifique en renvoyant l'un ou l'autre argument selon que la condition du test est remplie ou non.

.:IfCategories::string1[::string2]:.

La fonction teste si des catégories existent et si la génération des pages de celles-ci est bien activée dans le fichier de configuration principal.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfChapters::string1[::string2]:.

La fonction teste si des chapitres existent et si la génération des pages de ceux-là est bien activée dans le fichier de configuration principal.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInThread::string1[::string2]:.

La fonction teste si la page courante est généréee dans le contexte d'un fil de publications (catégories, archives de chapitres, ou fil principal).

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInMainThread::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil de publication principal.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInArchives::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil des archives.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInCategories::string1[::string2]:.

La fonction teste si la page courante est générée dans le fil des catégories.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInFirstPage::string1[::string2]:.

La fonction teste si le numéro de page courant correspond à la première page du fil de publication courant. Si la page est générée dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInLastPage::string1[::string2]:.

La fonction teste si le numéro de page courant correspond à la dernière page du fil de publication courant. Si la page est généré dans le contexte d'une page individuelle de publication ou d'un chapitre, le test échoue.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInEntryID::id::string1[::string2]:.

La fonction teste si l'identifiant de la publication correspond à celui spécifié en argument.

  • id : un nombre entier différent de 0 identifiant une publication.
  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfPages::string1[::string2]:.

La fonction teste si le fil de publication courant à plus d'une page.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition est fausse. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

IfFeedsEnabled::string1[::string2]:.

La fonction teste si VenC est configuré pour générer un flux RSS et/ou un flux Atom.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

IfRSSEnabled::string1[::string2]:.

La fonction teste si VenC est configuré pour généré un flux RSS.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

IfAtomEnabled::string1[::string2]:.

La fonction teste si VenC est configuré pour généré un flux Atom.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInThreadAndHasFeeds::string1[::string2]:.

La fonction teste si le fil de publication courant peut produire un flux Atom et/ou RSS. Seul les categories et le fil principal valident la condition.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInFeed::string1[::string2]:.

Certains éléments contenus dans une publication ne peuvent pas être présent dans le flux RSS/Atom sous peine que celui-ci ne soit pas valide et ne s'affiche pas correctement dans les lecteurs de flux RSS/Atom.

Vous pouvez utiliser IfInFeed pour remplacer un certain type de contenus par un autre, qui lui serait valide dans un flux RSS/Atom.

En outre, la fonction teste si le fil de publication courant est un flux RSS ou Atom.

  • string1 : texte retourné si la condition est remplie.
  • string2 : texte retourné si la condition n'est pas remplie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:IfInfiniteScrollEnabled::string1[::string2]:.

Permet de tester si la variable disable_infinite_scroll est définie dans le fichier de configuration principal et, si c'est le cas, quelle en est la valeur booléenne.

  • string_1 : texte retourné si la variable testée vaut True.
  • string_2 : texte retourné si la variable testée vaut False ou si elle n'est pas définie. Si le second argument est absent, le motif est ignoré et supprimé.

Ce motif n'a pas de variable contextuelle.

.:PreviewIfInThreadElseContent:.

Ce pattern ne peut être utilisé que dans le chunk entry.html.

Il renvoie le résumé de la publication courante si VenC génère la page dans un fil de publication. Sinon, VenC renvoie le contenu complet de la publication courante.

Générateurs de chemins

.:ForPages::length::string::separator:.

Cet motif permet de générer une liste de liens de pagination.

  • length : définit la longueur de la liste.
  • string : le texte à formater, contenant les valeurs des variables contextuelles utilisées.
  • separator : le texte servant de séparateur.

Ce motif possède les variables contextuelles suivantes :

  • entry_id : si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page courante. Sinon, la variable est ignorée.
  • entry_title : si le contexte le permet, cette variable contient le titre de la publication associée à la page courante. Sinon, la variable est ignorée.
  • page_number : si le contexte le permet, cette variable contient le numéro de la page courante. Sinon, la variable est ignorée.
  • path : contient le chemin relatif de la page courante.

.:GetNextPage::string:.

Permet de récupérer des informations sur la prochaine page, si elle existe.

  • string : le texte à formater, contenant les valeurs des variables contextuelles utilisées.

Ce motif possède les variables contextuelles suivantes :

  • entry_id : si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page suivante. Sinon, la variable est ignorée.
  • entry_title : si le contexte le permet, cette variable contient le titre de la publication associée à la page suivante. Sinon, la variable est ignorée.
  • page_number : si le contexte le permet, cette variable contient le numéro de la page suivante. Sinon, la variable est ignorée.
  • path : contient le chemin relatif de la page suivante, si elle existe.

.:GetPreviousPage::string:.

Permet de récupérer des informations sur la page précédente, si elle existe.

  • string : le texte à formater, contenant les valeurs des variables contextuelles utilisées.

Ce motif possède les variables contextuelles suivantes :

  • entry_id : si le contexte le permet, cette variable contient l'identifiant de la publication associée à la page précédente. Sinon, la variable est ignorée.
  • entry_title : si le contexte le permet, cette variable contient le titre de la publication associée à la page précédente. Sinon, la variable est ignorée.
  • page_number : si le contexte le permet, cette variable contient le numéro de la page précédente. Sinon, la variable est ignorée.
  • path : contient le chemin relatif de la page précédente, si elle existe.

.:GetRelativeLocation:.

Ce motif renvoie le chemin depuis la racine du blog vers le répertoire courant.

Par exemple, si la page courante qui est générée se trouve dans le répertoire :

blog/Categories/Cinema/Science-Fiction

Alors le motif renverra :

/Categories/Cinema/Science-Fiction

.:GetRelativeOrigin:.

Ce motif renvoie le chemin relatif de la racine du blog.

Par exemple, si la page courante qui est générée se trouve dans le répertoire :

blog/Categories/Cinema/Science-Fiction :

Alors le motif renverra :

../../../

.:GetRootPage:.

Ce motif renvoie le chemin relatif vers la page principal du blog qui correspond généralement au fichier index.html et qui devrait se trouver à la racine de votre site.

Générateurs de code HTML

.:CodeHightlight::language::line_numbers::input_code:.

VenC permet de formater du code source pour qu'il soit plus lisible et agréable à lire dans vos articles. Cette fonctionnalité dépend de la librairie tierce Pygments.

Ce motif prend trois arguments :

  • input_code : le code source que vous souhaitez formater.
  • language : indique le langage du texte d'entrée. La liste des langages supportés par Pygments est disponible ici. Si vous ne souhaitez pas coloriser le texte d'entrée, utilisez la valeur "Text".
  • line_numbers: il s'agit d'un booléen indiquant à VenC si vous souhaitez générer le numéro des lignes dans le rendu.

Par exemple, l'utilisation ci-dessous du motif :

.:CodeHighlight::C::False::
#include <stdio.h>

int main(int argc, char ** argv) {
    printf("Hello VenC user!\n");
    return 0;
}
:.

Générerait le code HTML suivant :

<div class="__VENC_PYGMENTIZE_WRAPPER__">
    <div class="venc_source_C">
        <pre>
            <span></span>
            <span class="cp">#include</span>
            <span class="cpf">&lt;stdio.h&gt;</span>
            <span class="cp"></span>
            <span class="kt">int</span>
            <span class="nf">main</span>
            <span class="p">(</span>
            <span class="kt">int</span>
            <span class="n">argc</span>
            <span class="p">,</span>
            <span class="kt">char</span>
            <span class="o">**</span>
            <span class="n">argv</span>
            <span class="p">)</span> 
            <span class="p">{</span>
            <span class="n">printf</span>
            <span class="p">(</span>
            <span class="s">&quot;Hello VenC user!</span>
            <span class="se">\n</span>
            <span class="s">&quot;</span>
            <span class="p">);</span>
            <span class="k">return</span>
            <span class="mi">0</span>
            <span class="p">;</span>
            <span class="p">}</span>
        </pre>
    </div>
</div>

Le style CSS du code source ainsi formaté est généré automatiquement par VenC dans un fichier et est placé dans le répertoire "extra" de votre projet. Ces fichiers doivent être explicitement inclus dans votre page à l'aide du motif GetStyleSheets, détaillé plus bas dans ce chapitre.

Dans l'exemple précédent, le fichier CSS créé serait le suivant :

venc_source_C.css

Pour adapter le style du formatage à votre mise en page, vous pouvez définir un style appliqué aux éléments enfants de la balise.

<div class="__VENC_PYGMENTIZE_WRAPPER__"></div>

Par exemple pour la documentation que vous êtes en train de lire, le style CSS suivant est appliqué :

.__VENC_PYGMENTIZE_WRAPPER__ > div
	{background-color: rgba(0,0,0,0.5);
	color: #FFF;
	font-size: 0.8em;
	padding:5px;
	border-bottom: 1px solid rgba(255,255,255,0.25);
	border-radius: 5px;}
    
.__VENC_PYGMENTIZE_WRAPPER__ > div
	{font-size: 1em;
	margin-left: 15px;
	margin-right: 15px;}

.__VENC_PYGMENTIZE_WRAPPER__ > div pre
	{overflow: hidden;
	margin-top: 0px;
	margin-left: 15px;
	margin-right: 15px;
	margin-bottom: 0px;}

Il est important que le style ainsi définit soit inclut dans header.html APRÈS utilisation du motifs GetStyleSheets.

.:CodeHightlightInclude::language::line_numbers::input_code_file:.

Ce motif fonctionne exactement comme le précédent motif CodeHighlight, à la différence que le dernier argument ne contient pas de code source mais le nom de fichier dans lequel se trouve celui-ci. Ce fichier source doit être placé dans le répertoire includes de votre projet.

Ce motif est donc à préférer au précédent quand le code source est très long, et que vous ne souhaitez pas "polluer" votre publication avec du code.

Notons que tout ce qui se trouve à l'intérieur du fichier ainsi inclut n'est pas traité par le moteur de motifs de VenC.

.:GetStyleSheets:.

Comme on l'a vu précédement, VenC peut générer des feuilles de style CSS. Ces fichiers peuvent être inclus dans votre thème avec le motif GetStyleSheets.

Par exemple, pour la documentation que vous êtes en train de lire, l'utilisation de ce motif produirait le code suivant :

<link rel="stylesheet" href="../venc_source_Text.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_html.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_HTML.css" type="text/css" />
<link rel="stylesheet" href="../venc_source_CSS.css" type="text/css" />

.:Latex2MathML::latex_code:.

Ce motif vous permet de générer du code MathML converti depuis le très populaire langage LaTeX. Ainsi, vous pouvez facilement inclure dans votre publication des formules mathématiques.

Cette fonctionnalité dépend d'une librairie tierce, indépendante de VenC. En cas de problème ou de difficulté vous pourriez vouloir signaler un bug sur la page du projet latex2mathml.

Le seul argument du motif est :

  • latex_code : le code source LaTeX de la formule que vous souhaitez intégrer.

Par exemple :

.:Latex2MathML:: \overline{z^{n+1}} = {\overline{z}}^{n+1}:.

Produirait le code suivant :

<math display="inline" xmlns="http://www.w3.org/1998/Math/MathML">
    <mrow>
        <mover>
            <mrow>
                <msup>
                    <mi>z</mi>
                    <mrow>
                        <mi>n</mi>
                        <mo>&#x0002B;</mo>
                        <mn>1</mn>
                    </mrow>
                </msup>
            </mrow>
            <mo stretchy="true">&#x000AF;</mo>
        </mover>
        <mo>&#x0003D;</mo>
        <msup>
            <mrow>
                <mover>
                    <mrow>
                        <mi>z</mi>
                    </mrow>
                    <mo stretchy="true">&#x000AF;</mo>
                </mover>
            </mrow>
            <mrow>
                <mi>n</mi>
                <mo>&#x0002B;</mo>
                <mn>1</mn>
            </mrow>
        </msup>
    </mrow>
</math>

.:SetColor::input_text::color:.

Ce motif permet de formater du texte avec la couleur de son choix et prend deux arguments :

  • input_text : le texte à formater. Peut contenir d'autres motifs.
  • color : la couleur désirée telle que spécifiée par CSS.

Par exemple

.:SetColor::Texte de couleur rouge::red:.

Produira le code HTML suivant :

<span class="__VENC_TEXT_COLOR__" style="color: red;">Texte de couleur rouge</span>

On remarque que la balise <span> a pour class __VENC_TEXT_COLOR__ ce qui permet plus de contrôle lors de la mise en page de votre blog.

.:SetStyle::tag_id::tag_class::content:.

Ce motif permet d'assigner un id et une class CSS à une paire de balises span ajoutée par VenC pour encapsuler le texte passé en paramètre.

Ce motif prend donc trois paramètres :

  • tag_id : le nom de l'id CSS à assigner au texte.
  • tag_class : le nom de la classe CSS à assigner au texte.
  • content : le texte auquel vous souhaitez appliquer un style CSS.

Par exemple :

.:SetStyle::mon_id::ma_class::Un texte quelconque à formater. :.

Produirait :

<span id="ma_class" class="ma_class">Un texte quelconque à formater.</span>

.:Table[::item1][::item2][...]:.

Ce motif permet d'organiser du contenu dans un tableau. Le motif a un nombre illimité d'arguments. Chaque argument correspond au contenu d'une cellule.

Quand VenC détect qu'un argument est égal à la valeur NewLine, une nouvelle ligne est insérée, puis VenC poursuit l'ajout des cellules du tableau pour chaque argument.

Par exemple, pour créer un tableau de quatre cellules et deux lignes :

.:Table:: VenC version: :: .:GetVenCVersion:.                   ::
NewLine:: Date          :: .:GetGenerationTimestamp::%d-%m-%Y:. :.

Ce qui produira le code suivant :

<div class="__VENC_TABLE__">
    <table>
        <tr>
            <td>VenC version:</td>
            <td>2.0.0</td>
        </tr>
        <tr>
            <td>Date</td>
            <td>11-06-2020</td>
        </tr>
    </table>
</div>

Comme on le voit, il est possible d'utiliser des motifs VenC à l'intérieur du motif Table. Remarquons également que pour chaque cellule, les caractères blancs au début et à la fin de l'argument correspondant sont effacés.

Motifs divers

.:GetRandomNumber::min::max::precision:.

Génère un nombre aléatoire compris entre min et max avec une précision décimale définit par precision.

Par exemple, pour générer un nombre décimal compris entre zéro inclus et dix, avec au plus quatre chiffres après la virgule nous pouvons utiliser :

.:GetRandomNumber::0::10::4:.

Pour générer un nombre entier compris entre zero inclus et cent nous pouvons utiliser :

.:GetRandomNumber::0::100::0:.

Enfin pour générer un nombre décimal, par exemple entre 12.25 inclus et 12.5, avec au plus 5 chiffres après la virgules, nous pouvons utiliser :

.:GetRandomNumber::12.25::12.5::5:.

.:GetGenerationTimestamp::date_format:.

Ce motif renvoie la date formatée à laquelle la page courante a été générée.

Le seul paramètre de ce motif est :

  • date_format : La chaîne de caractères permettant de formater la date courante. Le format utilisé est le même que celui utilisé par Python. La documentation est disponible ici.

.:GetVenCVersion:.

Ce motif retourne la version de VenC avec laquelle la page courante est générée et il ne prend pas de paramètre.

.:IncludeFile::escape::filename[::arg1][::arg2][...]:.

Ce motif permet d'inclure le contenu d'un fichier dans la publication courante. Celui-ci ne doit comporter que des caractères imprimables.

Ce motif prend au minimum deux arguments :

  • escape : indique à VenC s'il doit chercher des motifs à interpréter dans le fichier à inclure. Si escape vaut "true", VenC ignore les motifs dans le fichier. Cette variable n'est pas sensible à la casse.
  • filename : le chemin du fichier à inclure dans la page. Celui-ci doit se trouver dans le répertoire includes de votre projet.
  • arg1, arg2, ... : ces paramètres sont optionnels. Il vous permettent de formater l'intérieur du fichier à inclure en remplaçant des variables numérotés (venc_arg_1, venc_arg_2, venc_arg_n) qui s'y trouverait par la valeur de chacun des paramètres correspondant.

Un premier exemple

Avec un fichier contenant plein de trucs longs et compliqués que nous appellerons :

plein-de-truc-longs-et-compliqués.txt

Et qui se trouverait dans le répertoire includes de votre projet. Nous utiliserions alors le motif comme suit :

.:IncludeFile::True::plein-de-truc-longs-et-compliqués.txt:.

Notons que tout ce qui se trouve à l'intérieur du fichier ainsi inclus n'est pas traité par les interpréteurs de langage balisé Markdown et reStructuredText. Comme le premier argument, escape vaut "True", les motifs VenC sont également ignorés.

Un second exemple

Nous utiliserons les paramètres optionnels pour formater le contenu du fichier à inclure.

Soit le fichier :

liste_de_choses_à_faire.txt

Qui contiendrait :

Voilà les choses qu'il faut que je fasse avant de mourrir
 - {venc_arg_1}
 - {venc_arg_2}
 - {venc_arg_3}
 - {venc_arg_4}

En utilisant le motif IncludeFile comme suit :

.:IncludeFile::True::liste_de_choses_à_faire.txt::
Libérer la Corée du Nord::
Terraformer la lune::
Découvrir la matière exotique et commercialiser les trous de ver pour le voyage interstellaire::
Nourrir Tacos, mon chien.
:.

Nous obtiendrions :

Voilà les choses qu'il faut que je fasse avant de mourrir
 - Libérer la Corée du Nord
 - Terraformer la lune
 - Découvrir la matière exotique et commercialiser les trous de ver pour le voyage interstellaire
 - Nourrir Tacos, mon chien

La portion de texte ci-dessus serait incluse telle quelle dans la page générée par VenC. Là encore, ni les motifs VenC, ni le langage de balisage courant ne sont interprétés.

.:DisableMarkup::content:.

Ce motif permet de désactiver l'interpréteur de langage de balisage pour le texte passé en paramètre. Attention cependant, VenC reconnaît toujours ses propres motifs (ils sont documentés dans le chapitre 5 de ce manuel).

Ce motif ne prend qu'un seul paramètre.

  • content : le texte pour lequel on veut désactiver l'interpréteur de langage de balisage.

.:Escape::content::EndEscape:.

Ce motif est traité un peu différemment des autres. Il permet d'ignorer les motifs contenus à l'intérieur du texte de l'unique argument content.

Ce motif ne peut pas s'échapper lui-même. Pour ignorer ce motif, il doit être inclus dans un fichier avec le pattern IncludeFile dont l'argument escape doit être fixé à True.

.:GetJSON-LD:.

Retourne le document JSON-LD, s'il existe, associé à la première page du fil de publication courant.

Par exemple, si l'on est sur la première page d'une catégorie quelconque, le motif renvoie :

<script type="application/ld+json" src="categories.jsonld"></script>

Contenu multimédia

.:GetEmbedContent::content_URL:.

Ce motif permet de récupérer du contenu embarqué via le protocole oEmbed. Typiquement, cela vous permet d'importer un lecteur Youtube ou SoundCloud dans votre publication.

Le seul argument de ce motif est :

  • content_URL : il s'agit de l'URL de la ressource embarquée que vous voulez inclure.

Par exemple, l'utilisation du motif comme ci-dessous :

.:GetEmbedContent::https://www.youtube.com/watch?v=y8Kyi0WNg40:.

Produit le code suivant :

<iframe
    width="459"
    height="344"
    src="https://www.youtube.com/embed/y8Kyi0WNg40?feature=oembed"
    frameborder="0"
    allow="
        accelerometer;
        autoplay;
        encrypted-media;
        gyroscope;
        picture-in-picture
    "
    allowfullscreen
>
</iframe>

Pour fonctionner ce motif utilise une liste de providers disponibles ici et inclus avec VenC.

L'utilisation de ce motif génère des données misent en cache dans le répertoire de votre projet.

.:Audio::source::extensions:.

Ce motif permet d'inclure un fichier vidéo dans la page. Pour ce faire, le fichier video.html faisant partie du thème est formaté avec les paramètres passés au motif VenC.

  • source : il s'agit de l'URL ou du chemin du fichier audio. Il peut s'agir d'un chemin absolu ou relatif. S'il s'agit d'un chemin relatif, vous pouvez utiliser .:GetRelativeOrigin:.. Attention, l'URL ou le chemin passé en paramètre ne doit pas contenir l'extension du fichier.
  • extensions : pour assurer la compatibilité de votre contenu avec les différents navigateurs du marché ,il est recommandé d'avoir plusieurs sources du même fichier audio en différents formats. Ce paramètre est donc une liste des extensions disponibles. Les éléments de la liste sont séparés par une virgule.

Variable contextuelle:

Exemple d'utilisation

.:Audio::http://www.nyan.cat/music/original::mp3,ogg:.

On voit ici que le fichier audio est disponible en deux formats :

  • mp3
  • ogg

Il y a donc deux fichiers :

  • original.mp3
  • original.ogg

Se trouvant à l'adresse :

http://www.nyan.cat/music/

Finalement on obtient le résultat suivant :

.:Video::source::extensions[::poster]:.

Ce motif fonctionne comme Audio, il possède cependant un argument supplémentaire pour ajouter une vignette à la vidéo.

  • source : il s'agit de l'URL ou du chemin de la vidéo. Il peut s'agir d'un chemin absolu ou relatif. S'il s'agit d'un chemin relatif, vous pouvez utiliser .:GetRelativeOrigin:.. Attention, l'URL ou le chemin passé en paramètre ne doit pas contenir l'extension du fichier.
  • extensions : pour assurer la compatibilité de votre contenu avec les différents navigateurs du marché, il est recommandé d'avoir plusieurs sources de la même vidéo en différents formats. Ce paramètre est donc une liste des extensions disponibles pour votre vidéo. Les éléments de la liste sont séparés par une virgule.
  • poster : il est possible d'avoir une image de fond, en remplacement de la vidéo quand celle-ci n'est pas encore lancée. Ce paramètre contient donc l'URL ou le chemin relatif (vous pouvez également utiliser .:GetRelativeOrigin:.) ou absolu de ladite image.

Exemple d'utilisation

.:Video::
https://www.w3schools.com/html/mov_bbb::
mp4,ogg::
.:GetRelativeOrigin:.bbb-poster.jpg:.

Finalement, on obtient le résultat suivant :