--- date: 2020-01-02T16:02:59+01:00 description: "Utiliser les différentes versions d'Hugo fournies par le projet sur OpenBSD stable" draft: false lastmod: 2020-02-25T00:30:59+01:00 tags: ["Hugo", "OpenBSD"] title: "Hugo : Utilisation du binaire fourni par le projet (OpenBSD)" translationKey: "hugo-openbsd" --- ## Description Utiliser Hugo sous OpenBSD est possible, sans soucis. Il existe en tant que paquet tiers, installable par le gestionnaire de paquets :
`# pkg_add hugo` * version d'Hugo : **0.53** : `Hugo Static Site Generator v0.53 openbsd/amd64 BuildDate: unknown` * OpenBSD : **6.6** * Architecture : **amd64** Bon, maintenant soyons réaliste, cette version date d'un an et a son lot de bogues. ## Utilisation Quoiqu'il en soit le projet Hugo semble fournir pour chaque nouvelle version des archives tar.gz qu'il suffit de télécharger et décompresser ; il y a trois fichiers généralement dedans, le fichier `LICENSE`, `README.md` et le binaire `hugo`. Les archives sont à destination des architectures 32 bits *(donc i386)*, 64 bits *(donc amd64)*, et ARM. Pour autant que dans votre variable d'environnement `PATH` vous ayez inclu `~/bin/`, il suffit de créer un lien symbolique dedans pour pouvoir utiliser ce nouveau binaire. Le propos de cet article est de "remonter" les différents écueils liés à ces binaires officiels, qui parfois générent des changements dans la configuration de Hugo, voire des dysfonctionnements. La dernière version fonctionnelle est : la **0.59.1**. ## Changements importants ### v0.54.0 * version : `Hugo Static Site Generator v0.54.0-B1A82C61 openbsd/amd64 BuildDate: 2019-02-01T09:41:10Z` Malheureusement, un simple `hugo server` ne fonctionne pas ! L'erreur restituée : `Error: Error building site: EOF` Au suivant ! ### v0.55.0 * version : `Hugo Static Site Generator v0.55.0-4333CC77 openbsd/amd64 BuildDate: 2019-04-08T16:41:18Z` {{< note warning >}}ATTENTION : cette version apporte des changements dans le fonctionnement des {{< anchor shortcodes shortcodes >}}, dans la {{< anchor taxonomie taxonomy >}} *(les tags, entres autres)*, … {{< /note >}} ### v0.6x Depuis la version 0.60.0, il y a un changement du "moteur" par défaut, qui est le **goldmark**. Cela implique de modifier le fichier de configuration pour ajouter ce qui suit, pour le format toml : `[markup.goldmark.renderer]`
`unsafe = true` Il y a un [bogue](https://github.com/gohugoio/hugo/issues/6553) dans la restitution du code HTML au sein des shortcodes. ## Dépréciations ### Page.Hugo is deprecated Le message suivant `Page.Hugo is deprecated and will be removed in a future release. Use the global hugo function.` informe simplement que la variable `.Hugo` est obsolète, dépréciée ; il est recommandé de la remplacer par la fonction globale `hugo`. Donc, parcourez tous vos fichiers `_default`, `partials`, voire `shortcodes` et remplacez ! Voir la page {{< gohugo n="hugo" s="variables" >}} ### Page's .RSSLink is deprecated Le message suivant `Page's .RSSLink is deprecated and will be removed in a future release. Use the Output Format's link` informe que la variable `.RSSLink` est osbolète et dépréciée. Il est recommandé d'utiliser le formatage de sortie , tel que : `{{`` with .OutputFormats.Get "RSS" }}{{ .RelPermalink }}{{ end }}` Voir la page {{< gohugo n="output-formats" s="templates" >}} ### Page's .URL is deprecated Le message suivant `Page's .URL is deprecated and will be removed in a future release. Use .Permalink or .RelPermalink.` explique en fait que la variable `.URL` ne doit plus être utilisée dans le corps d'une page. Donc, parcourez tous vos fichiers `_default`, `partials`, voire `shortcodes` et remplacez la variable `.URL` au minimum par `.Permalink`. {{< note info >}} Ne pas confondre avec la présence de la variable `.URL` qui est toujours permise dans le contexte des menus !
*(cf: {{< gohugo s="variables" n="menus" a="menu-entry-variables" >}})* {{< /note >}} ## Recommandations ### Shortcodes Il est donc recommandé de ne plus utiliser la syntaxe `{{``% shortcode %}}` mais de lui préférer la syntaxe `{{``< shortcode >}}` et d'utiliser la fonction `markdownify`. Voir la page : {{< gohugo n="markdownify" s="functions" >}}. ### Taxonomy Les nœuds de taxonomies ont un nouvel accesseur nommé `.Page` qui simplifie l'usage aux différentes variables, telle que `.Titre`. Au lieu d'utiliser l'ensemble suivant `{{ range .Data.Terms.Alphabetical }}`, utilisez plutôt `{{ range .Site.Taxonomies.tags }}`. ----