Archétypes
C’est quoi les Archétypes ?
Les archétypes sont des fichiers de contenu dans le dossier archetypes de votre projet qui contiennent des front matter préconfigurés pour les types de contenu de votre site web. Les archétypes facilitent le maintient de métadonnées cohérentes sur le contenu de votre site Web et permettent aux auteurs de contenu de générer rapidement des instances d’un type de contenu via la commande hugo new.
Le générateur hugo new pour les archétypes suppose que votre répertoire de travail est le dossier de contenu à la racine de votre projet. Hugo est capable d’inférer l’archétype approprié en supposant le type de contenu à partir de la section de contenu passée à la commande CLI :
hugo new <section-contenu>/<nom-fichier.md>
Nous pouvons utiliser ce modèle pour créer un nouveau fichier .md dans la section posts :
hugo new posts/mon-premier-post.md
Lancer cette commande dans un nouveau site qui n’a pas d’archetypes par défaut ou d’archetypes personnalisés créera le fichier suivant :
+++
date = "2017-02-01T19:20:04-07:00"
title = "mon premier post"
draft = true
+++
Les champs auto-remplis valent la peine d’être examinés :
titleest généré à partir du nouveau nom de fichier du contenu (par ex. dans ce cas,mon-premier-postdevient"mon premier post")dateettitlesont les variables qui sont livrées avec Hugo et sont donc incluses dans tous les fichiers de contenu créés avec la CLI Hugo.Dateest générée dans le format RFC 3339 à l’aide de la fonctionnow()de Go, qui retourne l’heure actuelle.- La troisième variable,
draft = true, n’est pas hérité par vos archétypes par défaut ou personnalisés mais elle est incluse dans l’archetypedefault.mdautomatiquement construit par Hugo.
Trois variables par fichier de contenu ne suffisent souvent pas pour une gestion efficace du contenu de sites Web plus importants. Heureusement, Hugo fournit un mécanisme simple pour augmenter le nombre de variables à travers des archétypes personnalisés, ainsi que des archétypes par défaut pour conserver la création de contenu DRY.
Ordre de Recherche pour les Archétypes
Tout comme pour l’ordre de recherche pour les modèles dans votre dossier layouts, Hugo recherche un archétype de section ou un archétype spécifique-au-type, puis un archétype par défaut et enfin un archétype interne livré avec Hugo. Par exemple, Hugo recherchera un archétype pour content/posts/mon-premier-post.md dans l’ordre suivant :
archetypes/posts.mdarchetypes/default.mdthemes/<THEME>/archetypes/posts.mdthemes/<THEME>/archetypes/default.md(Auto-généré avechugo new site)
Choisissez votre Format Front Matter d’Archetype
Par défaut, les fichiers de contenu hugo new incluent le front matter au format TOML quel que soit le format utilisé dans archétypes/*.md.
Vous pouvez spécifier un format par défaut différent dans votre fichier de configuration de site en utilisant la directive metaDataFormat. Les valeurs possibles sont toml,yaml et json.
Archétypes par Défaut
Les archétypes par défaut sont pratiques si votre front matter de contenu reste cohérent à travers plusieurs sections de contenu.
Créer l’Archétype par Défaut
Lorsque vous créez un nouveau projet Hugo en utilisant hugo new site, vous remarquerez que Hugo a déjà échafaudé un fichier sur archetypes/default.md.
Les exemples suivants proviennent d’un site utilisant les tags et categories comme taxonomies. Si nous supposons que tous les fichiers de contenu nécessiteront ces deux valeurs-clés, nous pouvons créer un archétype default.md qui étend l’archétype de base de Hugo. Dans cet exemple, nous incluons “golang” et “hugo” comme tags et “développement web” en tant que catégorie.
+++
tags = ["golang", "hugo"]
categories = ["dévelopopement web"]
+++
Utiliser l’Archétype par Défaut
Avec un archetypes/default.md en place, nous pouvons utiliser la CLI pour créer un nouveau post dans la section de contenu posts :
$ hugo new posts/mon-nouveau-post.md
Hugo crée alors un nouveau fichier markdown file avec le front matter suivant :
+++
categories = ["développement web"]
date = "2017-02-01T19:20:04-07:00"
tags = ["golang", "hugo"]
title = "mon nouveau post"
+++
Nous voyons que les valeurs-clés title et date ont été ajoutées en plus des valeurs-clés tags et categories provenant de archetypes/default.md.
Personnaliser les Archétypes
Supposons que la section posts de votre site requiert un front matter plus sophistiqué que ce qui a été spécifié dans archetypes/default.md. Vous pouvez créer un archétype personnalisé pour vos posts sur archetypes/posts.md qui comprend l’ensemble complet du front matter à ajouter aux deux champs d’archétypes par défaut.
Créer un Archétype Personnalisé
+++
description = ""
tags = ""
categories = ""
+++
Utiliser un Archétype Personnalisé
Avec un archetypes/posts.md en place, vous pouvez utiliser la CLI Hugo pour créer une nouvelle publication avec votre front matter préconfiguré dans la section de contenu posts :
$ hugo new posts/post-from-custom.md
Cette fois, Hugo reconnaît notre archétype archetypes/posts.md personnalisé et l’utilise à la place de archetypes/default.md. Le fichier généré comprend maintenant la liste complète des paramètres du front matter, ainsi que les title et date de l’archétype de base :
+++
categories = ""
date = 2017-02-13T17:24:43-08:00
description = ""
tags = ""
title = "post from custom archetype"
+++
Docs Hugo sur l’Archétype Personnalisé
Pour un exemple d’archétypes en pratique, ce qui suit est l’archétype functions provenant de la documentation Hugo :
---
linktitle: ""
description: ""
godocref: ""
publishdate: ""
lastmod: ""
categories: [functions]
tags: []
ns: ""
signature: []
workson: []
hugoversion: ""
aliases: []
relatedfuncs: []
toc: false
deprecated: false
---