{"id":49207,"date":"2021-11-10T14:17:03","date_gmt":"2021-11-10T13:17:03","guid":{"rendered":"https:\/\/kinsta.com\/fr\/?p=49207&#038;preview=true&#038;preview_id=49207"},"modified":"2023-10-13T12:14:40","modified_gmt":"2023-10-13T11:14:40","slug":"hugo-site-statique","status":"publish","type":"post","link":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/","title":{"rendered":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo"},"content":{"rendered":"<p>Hugo est un g\u00e9n\u00e9rateur de sites statiques (GSS) \u00e9crit en <a href=\"https:\/\/kinsta.com\/fr\/blog\/meilleur-langage-programmation-apprendre\/#go\">Go<\/a> (alias Golang), un langage de programmation compil\u00e9 tr\u00e8s performant souvent utilis\u00e9 pour d\u00e9velopper des applications et des services backend.<\/p>\n<p>Aujourd&rsquo;hui, Hugo est capable de g\u00e9n\u00e9rer la plupart des sites web en quelques secondes (&lt;1 ms par page). Cela explique pourquoi Hugo se pr\u00e9sente comme \u00ab le framework le plus rapide du monde pour la cr\u00e9ation de sites web \u00bb.<\/p>\n<p>Dans cet article, nous allons examiner l&rsquo;histoire d&rsquo;Hugo, ce qui le rend si rapide et comment vous pouvez commencer \u00e0 cr\u00e9er votre propre site statique Hugo.<\/p>\n<div><\/div><kinsta-auto-toc heading=\"Table of Contents\" exclude=\"last\" list-style=\"arrow\" selector=\"h2\" count-number=\"-1\"><\/kinsta-auto-toc>\n<h2>Qu&rsquo;est-ce que Hugo ? Et pourquoi est-il populaire ?<\/h2>\n<figure id=\"attachment_105526\" aria-describedby=\"caption-attachment-105526\" style=\"width: 1001px\" class=\"wp-caption alignnone\"><a href=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/10\/hugo.png\"><img loading=\"lazy\" decoding=\"async\" class=\"wp-image-105526 size-full\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/10\/hugo.png\" alt=\"La page d'accueil du site web d'Hugo.\" width=\"1001\" height=\"471\"><\/a><figcaption id=\"caption-attachment-105526\" class=\"wp-caption-text\">La page d&rsquo;accueil du site web d&rsquo;Hugo.<\/figcaption><\/figure>\n<p>Steve Francia a initialement d\u00e9velopp\u00e9 le <a href=\"https:\/\/gohugo.io\/\" target=\"_blank\" rel=\"noopener noreferrer\">g\u00e9n\u00e9rateur de sites statiques Hugo<\/a> en 2013, et Bj\u00f8rn Erik Pedersen a pris la rel\u00e8ve en tant que d\u00e9veloppeur principal du projet en 2015. Hugo est un projet open-source, ce qui signifie que son code peut \u00eatre consult\u00e9 et am\u00e9lior\u00e9 par tout le monde.<\/p>\n<p>En tant que g\u00e9n\u00e9rateur de sites statiques, Hugo prend des fichiers de contenu Markdown, les fait passer par des mod\u00e8les de th\u00e8mes et <a href=\"https:\/\/kinsta.com\/fr\/blog\/wordpress-vs-html-statique\/\">cr\u00e9e des fichiers HTML<\/a> que vous pouvez facilement d\u00e9ployer en ligne &#8211; et il fait tout cela extr\u00eamement rapidement.<\/p>\n<p>En 2021, il existe des dizaines, voire des centaines, de g\u00e9n\u00e9rateurs statiques. <a href=\"https:\/\/kinsta.com\/fr\/blog\/generateurs-de-sites-statiques\/\">Chaque g\u00e9n\u00e9rateur de site statique a son attrait<\/a>. <a href=\"https:\/\/kinsta.com\/fr\/blog\/site-statique-jekyll\/\">Jekyll<\/a> est populaire parmi les d\u00e9veloppeurs Ruby, et bien qu&rsquo;il ne soit pas aussi rapide que d&rsquo;autres options, c&rsquo;est l&rsquo;un des premiers g\u00e9n\u00e9rateurs de sites statiques \u00e0 avoir \u00e9t\u00e9 largement adopt\u00e9. <a href=\"https:\/\/kinsta.com\/fr\/blog\/gatsby-wordpress\/\">Gatsby<\/a> est un autre GSS populaire qui convient bien au d\u00e9veloppement de sites \u00e0 d\u00e9ploiement statique dont les fonctionnalit\u00e9s sont dynamiques.<\/p>\n<p>Alors, avec tant de GSS sur le march\u00e9, qu&rsquo;est-ce qui fait qu&rsquo;Hugo se d\u00e9marque ?<\/p>\n\n<h3>Hugo est rapide<\/h3>\n<p>En termes de performances brutes, Hugo est le meilleur g\u00e9n\u00e9rateur de sites statiques au monde. Compar\u00e9 \u00e0 Jekyll, Forestry a montr\u00e9 qu&rsquo;Hugo est <a href=\"https:\/\/forestry.io\/blog\/hugo-and-jekyll-compared\/\" target=\"_blank\" rel=\"noopener noreferrer\">35 fois plus rapide<\/a>. De m\u00eame, Hugo peut rendre un site de 10.000 pages en 10 secondes, une t\u00e2che qui prendrait plus d&rsquo;une demi-heure \u00e0 Gatsby. Non seulement Hugo est le SSG le plus rapide en termes de temps de construction, mais il est aussi rapide \u00e0 installer.<\/p>\n<p>Hugo est livr\u00e9 sous la forme d&rsquo;un ex\u00e9cutable autonome, contrairement \u00e0 Jekyll, Gatsby et d&rsquo;autres GSS qui n\u00e9cessitent l&rsquo;installation de d\u00e9pendances avec un gestionnaire de paquets. Cela signifie que vous pouvez t\u00e9l\u00e9charger et utiliser Hugo imm\u00e9diatement sans avoir \u00e0 vous soucier des d\u00e9pendances logicielles.<\/p>\n<h3>La cr\u00e9ation de mod\u00e8les est facile avec Hugo<\/h3>\n<p>Dans le jargon des SSG, le \u00ab templating\u00bb fait r\u00e9f\u00e9rence au processus d&rsquo;ajout de textes indicatifs pour l&rsquo;insertion de contenu dynamique dans une page HTML. Pour acc\u00e9der au titre d&rsquo;une page, vous pouvez utiliser la variable <code>{{ .Title }}<\/code>. Ainsi, dans un mod\u00e8le HTML Hugo, il est courant de voir la variable <code>{{ .Title }}<\/code> envelopp\u00e9e dans des balises H1 comme ceci :<\/p>\n<pre><code class=\"language-md\">&lt;h1&gt;{{ .Title }}&lt;\/h1&gt;<\/code><\/pre>\n<p>Au moment de la construction, Hugo r\u00e9cup\u00e8re automatiquement le titre dans un fichier de contenu et l&rsquo;ins\u00e8re entre les deux balises <code>&lt;h1&gt;<\/code>. Hugo dispose d&rsquo;une vari\u00e9t\u00e9 de variables de mod\u00e9lisation int\u00e9gr\u00e9es, et vous pouvez m\u00eame \u00e9crire des fonctions personnalis\u00e9es pour traiter les donn\u00e9es au moment de la construction. Pour la cr\u00e9ation de mod\u00e8les, Hugo utilise les biblioth\u00e8ques int\u00e9gr\u00e9es <code>html\/template<\/code> et <code>text\/template<\/code> de Go. Cela permet de r\u00e9duire l&rsquo;engorgement des applications car Hugo n&rsquo;a pas besoin d&rsquo;installer des biblioth\u00e8ques tierces pour la cr\u00e9ation de mod\u00e8les.<\/p>\n<h2>Comment installer Hugo<\/h2>\n<p>Hugo est livr\u00e9 sous la forme d&rsquo;un ex\u00e9cutable compil\u00e9, ce qui signifie que vous n&rsquo;aurez pas \u00e0 t\u00e9l\u00e9charger et \u00e0 g\u00e9rer de nombreuses d\u00e9pendances juste pour commencer. Il est disponible pour macOS, Windows et Linux.<\/p>\n<aside role=\"note\" class=\"wp-block-kinsta-notice is-style-important\">\n            <h3>Important<\/h3>\n        <p>Les instructions d&rsquo;installation ci-dessous n\u00e9cessitent un gestionnaire de paquets, qui t\u00e9l\u00e9chargera l&rsquo;ex\u00e9cutable Hugo pour vous. Si vous pr\u00e9f\u00e9rez construire Hugo \u00e0 partir de ses sources, consultez la <a href=\"https:\/\/gohugo.io\/getting-started\/installing\/#source\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle d&rsquo;Hugo<\/a>.<\/p>\n<\/aside>\n\n<h3>Comment installer Hugo sur macOS et Linux<\/h3>\n<p>La m\u00e9thode d&rsquo;installation recommand\u00e9e pour macOS et Linux n\u00e9cessite Homebrew, un gestionnaire de paquets pour l&rsquo;installation et la mise \u00e0 jour d&rsquo;applications. Si vous n&rsquo;avez pas encore install\u00e9 Homebrew, vous pouvez l&rsquo;installer en ex\u00e9cutant la commande ci-dessous dans <a href=\"https:\/\/kinsta.com\/fr\/blog\/commandes-ssh\/\">Terminal<\/a>:<\/p>\n<pre><code class=\"language-bash\">\/bin\/bash -c \"$(curl -fsSL <a href=\"https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh\">https:\/\/raw.githubusercontent.com\/Homebrew\/install\/HEAD\/install.sh<\/a>)\"<\/code><\/pre>\n<p>Une fois que Homebrew a \u00e9t\u00e9 install\u00e9, ex\u00e9cutez la commande ci-dessous pour installer Hugo :<\/p>\n<pre><code class=\"language-bash\">brew install hugo<\/code><\/pre>\n<h3>Comment installer Hugo sur Windows<\/h3>\n<p>Pour les utilisateurs de Windows, Hugo peut \u00eatre install\u00e9 \u00e0 l&rsquo;aide des gestionnaires de paquets Chocolatey ou Scoop. Comme les instructions d&rsquo;installation de Chocolatey et Scoop sont un peu plus complexes que celles d&rsquo;Homebrew, nous vous recommandons de vous r\u00e9f\u00e9rer \u00e0 leurs pages de documentation officielles <a href=\"https:\/\/chocolatey.org\/install\" target=\"_blank\" rel=\"noopener noreferrer\">ici<\/a> et <a href=\"https:\/\/scoop.sh\/\" target=\"_blank\" rel=\"noopener noreferrer\">ici<\/a>.<\/p>\n<p>Apr\u00e8s avoir install\u00e9 Chocolatey ou Scoop, vous pouvez installer Hugo \u00e0 l&rsquo;aide de l&rsquo;une des commandes suivantes (en fonction de votre gestionnaire de paquets) :<\/p>\n<pre><code class=\"language-bash\">choco install hugo-extended -confirm<\/code><\/pre>\n<pre><code class=\"language-bash\">scoop install hugo-extended<\/code><\/pre>\n<h3>Comment v\u00e9rifier que Hugo est correctement install\u00e9<\/h3>\n<p>Pour v\u00e9rifier que Hugo a \u00e9t\u00e9 correctement install\u00e9, ex\u00e9cutez la commande suivante :<\/p>\n<pre><code class=\"language-bash\">hugo version<\/code><\/pre>\n<p>Cette commande de Terminal devrait afficher des informations concernant la version actuellement install\u00e9e de Hugo comme ci-dessous :<\/p>\n<pre><code class=\"language-bash\">hugo v0.85.0+extended darwin\/arm64 BuildDate=unknown<\/code><\/pre>\n<h2>Commandes et configuration d&rsquo;Hugo<\/h2>\n<p>Avant de nous plonger dans la cr\u00e9ation d&rsquo;un site statique avec Hugo, familiarisons-nous avec ses diff\u00e9rentes commandes <a href=\"https:\/\/kinsta.com\/fr\/blog\/wp-cli\/\">CLI<\/a> et les param\u00e8tres du fichier de configuration.<\/p>\n<h3>Commandes CLI d&rsquo;Hugo<\/h3>\n<ul>\n<li><code>hugo check<\/code> &#8211; ex\u00e9cute divers contr\u00f4les de v\u00e9rification<\/li>\n<li><code>hugo config<\/code> &#8211; affiche la configuration d&rsquo;un site Hugo<\/li>\n<li><code>hugo convert<\/code> &#8211; convertit le contenu en diff\u00e9rents formats<\/li>\n<li><code>hugo deploy<\/code> &#8211; d\u00e9ploie votre site vers un fournisseur de cloud computing<\/li>\n<li><code>hugo env<\/code> &#8211; affiche les informations sur la version et l&rsquo;environnement d&rsquo;Hugo<\/li>\n<li><code>hugo gen<\/code> &#8211; donne acc\u00e8s \u00e0 divers g\u00e9n\u00e9rateurs<\/li>\n<li><code>hugo help<\/code> &#8211; affiche des informations sur une commande<\/li>\n<li><code>hugo import<\/code> &#8211; vous permet d&rsquo;importer un site depuis un autre emplacement<\/li>\n<li><code>hugo list<\/code> &#8211; affiche une liste de divers types de contenu<\/li>\n<li><code>hugo mod<\/code> &#8211; permet d&rsquo;acc\u00e9der \u00e0 divers modules d&rsquo;aide<\/li>\n<li><code>hugo new<\/code> &#8211; vous permet de cr\u00e9er du nouveau contenu pour votre site<\/li>\n<li><code>hugo server<\/code> &#8211; d\u00e9marre un serveur de d\u00e9veloppement local<\/li>\n<li><code>hugo version<\/code> &#8211; affiche la version actuelle de Hugo<\/li>\n<\/ul>\n<p>La CLI d&rsquo;Hugo dispose \u00e9galement d&rsquo;une vari\u00e9t\u00e9 de drapeaux permettant de sp\u00e9cifier des options suppl\u00e9mentaires pour certaines commandes. Pour afficher une liste compl\u00e8te des drapeaux Hugo (il y en a beaucoup), nous vousz recommandons d&rsquo;utiliser la commande <code>hugo help<\/code> pour afficher une liste de tous les drapeaux disponibles.<\/p>\n<h3>Le fichier de configuration d&rsquo;Hugo<\/h3>\n<p>Le fichier de configuration d&rsquo;Hugo prend en charge trois formats : YAML, TOML et JSON. De m\u00eame, le fichier de configuration d&rsquo;Hugo est <strong>config.yml<\/strong>, <strong>config.toml<\/strong> ou <strong>config.json<\/strong>, et vous pouvez le trouver dans le r\u00e9pertoire racine d&rsquo;un projet Hugo.<\/p>\n<figure style=\"width: 1500px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/hugo-configuration-file.jpg\" alt=\"Fichier de configuration Hugo.\" width=\"1500\" height=\"677\"><figcaption class=\"wp-caption-text\">Fichier de configuration Hugo.<\/figcaption><\/figure>\n<p>Voici \u00e0 quoi ressemble un fichier de configuration Hugo typique au format YAML :<\/p>\n<pre><code class=\"language-md\">DefaultContentLanguage: en\ntheme:\n- kinsta-static-site\ncontentdir: content\nlayoutdir: layouts\npublishdir: public\npaginate: 5\ntitle: Kinsta Static Site\ndescription: \"This is a static site generated with Hugo!\"\npermalinks:\npost: :slug\/\npage: :slug\/\ntags: \"tag\/:slug\/\"\nauthor: \"author\/:slug\/\"<\/code><\/pre>\n<p>Si vous avez d\u00e9j\u00e0 utilis\u00e9 <a href=\"https:\/\/kinsta.com\/fr\/blog\/logiciel-cms\/\">WordPress ou un autre CMS<\/a>, certaines des options de configuration peuvent vous sembler famili\u00e8res. Par exemple, <code>kinsta-static-site<\/code> est le nom du th\u00e8me du site, <code>Kinsta Static Site<\/code> est le m\u00e9ta titre SEO, et <code>paginate<\/code> (le nombre d&rsquo;articles par page) est <code>5<\/code>.<\/p>\n<p>Hugo dispose de dizaines d&rsquo;options de configuration, que vous pouvez toutes explorer dans la <a href=\"https:\/\/gohugo.io\/getting-started\/configuration\/\" target=\"_blank\" rel=\"noopener noreferrer\">documentation officielle d&rsquo;Hugo<\/a>. Si vous devez apporter un changement de configuration globale pendant le d\u00e9veloppement d&rsquo;un site Hugo, il y a de fortes chances que vous deviez modifier ce fichier de configuration.<\/p>\n<h2>Comment cr\u00e9er un site Hugo<\/h2>\n<p>Maintenant que nous avons vu comment installer et utiliser le CLI Hugo et les bases du fichier de configuration Hugo, cr\u00e9ons un nouveau site Hugo.<\/p>\n<p>Pour cr\u00e9er un site Hugo, utilisez la commande ci-dessous (n&rsquo;h\u00e9sitez pas \u00e0 remplacer <strong>my-hugo-site<\/strong> par autre chose si vous le souhaitez) :<\/p>\n<pre><code class=\"language-bash\">hugo new site my-hugo-site<\/code><\/pre>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/hugo-new-site-command.jpg\" alt=\"Cr\u00e9er un nouveau site Hugo.\" width=\"2048\" height=\"1450\"><figcaption class=\"wp-caption-text\">Cr\u00e9er un nouveau site Hugo.<\/figcaption><\/figure>\n<p>Ensuite, rendez-vous dans le r\u00e9pertoire du site, et vous devriez voir les fichiers et r\u00e9pertoires suivants : fichier <strong>config.toml<\/strong>, r\u00e9pertoires <strong>archetypes<\/strong>, <strong>contenu<\/strong>, <strong>layouts<\/strong>, <strong>themes<\/strong>,\u00a0 <strong>data<\/strong> et <strong>static<\/strong>. Passons rapidement en revue les caract\u00e9ristiques de chacun de ces fichiers et r\u00e9pertoires.<\/p>\n<h3>Fichier config.toml d&rsquo;Hugo<\/h3>\n<p>Comme nous l&rsquo;avons soulign\u00e9 plus haut, le principal fichier de configuration d&rsquo;Hugo contient les param\u00e8tres globaux de votre site.<\/p>\n<h3>R\u00e9pertoire Archetypes d&rsquo;Hugo<\/h3>\n<p>Le r\u00e9pertoire <strong>archetypes<\/strong> est l&rsquo;endroit o\u00f9 vous stockez les mod\u00e8les de contenu format\u00e9s en Markdown. Les arch\u00e9types sont particuli\u00e8rement utiles si votre site a plusieurs formats de contenu. Avec les arch\u00e9types Hugo, vous pouvez cr\u00e9er un mod\u00e8le pour chaque type de contenu de votre site. Cela vous permet de pr\u00e9-remplir les fichiers Markdown g\u00e9n\u00e9r\u00e9s avec tous les param\u00e8tres de configuration n\u00e9cessaires.<\/p>\n<p>Par exemple, si vous avez un type de contenu <a href=\"https:\/\/kinsta.com\/fr\/blog\/fonctionnement-podcast\/\">podcast<\/a> pour afficher vos \u00e9pisodes de podcast, vous pouvez cr\u00e9er un nouvel arch\u00e9type dans <code>archetypes\/podcast.md<\/code> avec le contenu ci-dessous :<\/p>\n<pre><code class=\"language-md\">---\ntitle: \"{{ replace .Name \"-\" \" \" | title }}\"\ndate: {{ .Date }}\ndescription: \"\"\nseason:\nepisode:\ndraft: true\n---<\/code><\/pre>\n<p>Avec cet arch\u00e9type podcast, vous pouvez ensuite utiliser la commande ci-dessous pour cr\u00e9er un nouvel article :<\/p>\n<pre><code class=\"language-bash\">hugo new podcast\/s1e6_interview-with-kinsta-ceo.md<\/code><\/pre>\n<p>Maintenant, si vous ouvrez l&rsquo;article nouvellement cr\u00e9\u00e9, vous devriez voir ceci :<\/p>\n<pre><code class=\"language-md\">---\ntitle: \"Interview with Kinsta CEO\"\ndate: 2021-05-20T13:00:00+09:00\ndescription: \"\"\nSeason: 1\nepisode: 6\ndraft: true\n---<\/code><\/pre>\n<p>Sans arch\u00e9types, vous devrez sp\u00e9cifier manuellement les param\u00e8tres de l&rsquo;avant-propos pour chaque nouvel article que vous cr\u00e9ez. Si les arch\u00e9types peuvent sembler complexes et inutiles au d\u00e9but, ils peuvent finir par vous faire gagner beaucoup de temps \u00e0 long terme.<\/p>\n<h3>Le r\u00e9pertoire de Content d&rsquo;Hugo<\/h3>\n<p>Le r\u00e9pertoire <strong>content<\/strong> est l&rsquo;endroit o\u00f9 se trouve le contenu r\u00e9el de votre article. Hugo prend en charge les <a href=\"https:\/\/kinsta.com\/fr\/blog\/editeurs-markdown\/\">formats Markdown et HTML<\/a>, Markdown \u00e9tant l&rsquo;option la plus populaire en raison de sa facilit\u00e9 d&rsquo;utilisation. En plus d&rsquo;\u00eatre l&rsquo;espace de stockage g\u00e9n\u00e9ral des articles, vous pouvez utiliser le r\u00e9pertoire <strong>content<\/strong> pour organiser davantage le contenu des articles.<\/p>\n<p>Hugo traite chaque r\u00e9pertoire de premier niveau du dossier <strong>content<\/strong> comme une section de contenu. Les sections de contenu dans Hugo sont similaires aux <a href=\"https:\/\/kinsta.com\/fr\/blog\/types-publications-personnalises-wordpress\/\">types de pupblications personnalis\u00e9s dans WordPress<\/a>. Par exemple, si votre site a des articles, des pages et des podcasts, votre r\u00e9pertoire de content aura des r\u00e9pertoires <strong>d&rsquo;articles<\/strong>, de <strong>pages<\/strong> et de <strong>podcasts<\/strong> o\u00f9 se trouvent les fichiers de contenu pour ces diff\u00e9rents types d&rsquo;articles.<\/p>\n<h3>Le r\u00e9pertoire Layouts d&rsquo;Hugo<\/h3>\n<p>Le r\u00e9pertoire <strong>layouts<\/strong> contient des fichiers HTML qui d\u00e9finissent la structure de votre site. Dans certains cas, vous pouvez voir un site Hugo sans r\u00e9pertoire <strong>layouts<\/strong> car il n&rsquo;est pas n\u00e9cessaire qu&rsquo;il se trouve dans le r\u00e9pertoire racine du projet et peut se trouver dans un r\u00e9pertoire de th\u00e8me.<\/p>\n<p>\u00c0 l&rsquo;instar des th\u00e8mes WordPress qui utilisent PHP pour la cr\u00e9ation de mod\u00e8les, les mod\u00e8les Hugo se composent d&rsquo;un HTML de base et d&rsquo;une cr\u00e9ation de mod\u00e8les dynamiques suppl\u00e9mentaires aliment\u00e9e par les biblioth\u00e8ques int\u00e9gr\u00e9es de Golang <code>html\/template<\/code> et <code>text\/template<\/code>. Les diff\u00e9rents fichiers de mod\u00e8les HTML n\u00e9cessaires pour g\u00e9n\u00e9rer le balisage HTML de votre site se trouvent dans le r\u00e9pertoire <strong>layouts<\/strong>.<\/p>\n<h3>Le r\u00e9pertoire Themes d&rsquo;Hugo<\/h3>\n<p>Pour les sites qui pr\u00e9f\u00e8rent un moyen plus autonome de stocker les fichiers de mod\u00e8les et les ressources, Hugo prend en charge un r\u00e9pertoire <strong>themes<\/strong>. Les th\u00e8mes Hugo sont similaires aux <a href=\"https:\/\/kinsta.com\/fr\/blog\/qu-est-ce-qu-un-theme-wordpress\/\">th\u00e8mes WordPress<\/a>: ils sont stock\u00e9s dans un r\u00e9pertoire themes et contiennent tous les mod\u00e8les n\u00e9cessaires au fonctionnement d&rsquo;un th\u00e8me.<\/p>\n<p>Bien que certains utilisateurs d&rsquo;Hugo pr\u00e9f\u00e8rent conserver les fichiers li\u00e9s aux th\u00e8mes dans le r\u00e9pertoire racine du projet, le stockage de ces fichiers dans le dossier <strong>themes<\/strong> permet une gestion et un partage plus faciles.<\/p>\n<h3>Le r\u00e9pertoire Data d&rsquo;Hugo<\/h3>\n<p>Le r\u00e9pertoire <strong>data<\/strong> d&rsquo;Hugo est l&rsquo;endroit o\u00f9 vous pouvez stocker des donn\u00e9es suppl\u00e9mentaires (au format JSON, YAML ou TOML) qui sont n\u00e9cessaires pour g\u00e9n\u00e9rer les pages de votre site. Les fichiers de donn\u00e9es sont avantageux pour les ensembles de donn\u00e9es plus importants qui peuvent \u00eatre encombrants \u00e0 stocker directement dans un fichier de contenu ou de mod\u00e8le.<\/p>\n<p>Par exemple, si vous vouliez cr\u00e9er une liste des taux d&rsquo;inflation en dollars am\u00e9ricains de 1960 \u00e0 2020, il faudrait environ 80 lignes pour repr\u00e9senter les donn\u00e9es (une ligne pour chaque ann\u00e9e). Au lieu de placer ces donn\u00e9es directement dans un fichier de contenu ou de mod\u00e8le, vous pouvez les cr\u00e9er dans le r\u00e9pertoire <strong>data<\/strong> et les remplir avec les informations n\u00e9cessaires.<\/p>\n<h3>Le r\u00e9pertoire Static d&rsquo;Hugo<\/h3>\n<p>Le r\u00e9pertoire <strong>static<\/strong> d&rsquo;Hugo est l&rsquo;endroit o\u00f9 vous stockez les ressources statiques qui ne n\u00e9cessitent aucun traitement suppl\u00e9mentaire. Le r\u00e9pertoire <strong>static<\/strong> est g\u00e9n\u00e9ralement l&rsquo;endroit o\u00f9 les utilisateurs d&rsquo;Hugo stockent des images, des <a href=\"https:\/\/kinsta.com\/fr\/blog\/polices-caracteres-web-safe\/\">polices<\/a>, des fichiers de v\u00e9rification DNS, et plus encore. Lorsqu&rsquo;un site Hugo est g\u00e9n\u00e9r\u00e9 et enregistr\u00e9 dans un r\u00e9pertoire pour un d\u00e9ploiement facile, tous les fichiers du r\u00e9pertoire <strong>static<\/strong> sont copi\u00e9s tels quels.<\/p>\n<p>Si vous vous demandez pourquoi nous n&rsquo;avons pas mentionn\u00e9 les fichiers JavaScript ou CSS, c&rsquo;est parce qu&rsquo;ils sont souvent trait\u00e9s dynamiquement via des pipelines pendant le d\u00e9veloppement du site. Dans Hugo, les fichiers JavaScript et CSS sont g\u00e9n\u00e9ralement stock\u00e9s dans le r\u00e9pertoire <strong>theme<\/strong> car ils n\u00e9cessitent un traitement suppl\u00e9mentaire.<\/p>\n<h2>Comment ajouter un th\u00e8me \u00e0 un site Hugo<\/h2>\n<p>T\u00e9l\u00e9charger et installer un th\u00e8me pr\u00e9-construit est un excellent moyen de commencer \u00e0 utiliser Hugo. Les th\u00e8mes Hugo sont de toutes formes et de toutes tailles, et beaucoup d&rsquo;entre eux sont disponibles gratuitement sur le d\u00e9p\u00f4t officiel de th\u00e8mes Hugo. Allons-y et installons le <a href=\"https:\/\/themes.gohugo.io\/themes\/hyde\/\" target=\"_blank\" rel=\"noopener noreferrer\">th\u00e8<\/a><a href=\"https:\/\/themes.gohugo.io\/themes\/hyde\/\">me populaire H<\/a><a href=\"https:\/\/themes.gohugo.io\/themes\/hyde\/\" target=\"_blank\" rel=\"noopener noreferrer\">yde<\/a> sur notre site Hugo.<\/p>\n<p>Tout d&rsquo;abord, rendez-vous dans le r\u00e9pertoire du th\u00e8me de votre projet dans Terminal :<\/p>\n<pre><code class=\"language-bash\">cd &lt;hugo-project-directory&gt;\/themes\/<\/code><\/pre>\n<p>Ensuite, utilisez Git pour cloner le th\u00e8me Hyde dans le r\u00e9pertoire <strong>themes<\/strong> de votre projet.<\/p>\n<pre><code class=\"language-bash\">git clone https:\/\/github.com\/spf13\/hyde.git<\/code><\/pre>\n<p>Ensuite, ajoutez la ligne suivante \u00e0 votre fichier <strong>config.toml<\/strong> pour activer le th\u00e8me Hyde :<\/p>\n<pre><code class=\"language-md\">theme = \"hyde\"<\/code><\/pre>\n<p>\u00c0 ce stade, le th\u00e8me Hyde est install\u00e9 et configur\u00e9. L&rsquo;\u00e9tape suivante consiste \u00e0 d\u00e9marrer le serveur web de d\u00e9veloppement int\u00e9gr\u00e9 de Hugo pour visualiser le site dans votre navigateur.<\/p>\n<h2>Comment pr\u00e9visualiser un site Hugo<\/h2>\n<p>Hugo est livr\u00e9 avec un serveur web int\u00e9gr\u00e9 \u00e0 des fins de d\u00e9veloppement, ce qui signifie que vous n&rsquo;avez pas besoin d&rsquo;installer un <a href=\"https:\/\/kinsta.com\/fr\/blog\/nginx-vs-apache\/\">serveur web tiers comme Nginx ou Apache<\/a> juste pour <a href=\"https:\/\/kinsta.com\/fr\/blog\/installer-wordpress-localement\/\">visualiser localement votre site<\/a>.<\/p>\n<p>Pour d\u00e9marrer le serveur web d&rsquo;Hugo, ex\u00e9cutez la commande ci-dessous dans le r\u00e9pertoire racine de votre projet :<\/p>\n<pre><code class=\"language-bash\">hugo server -D<\/code><\/pre>\n<p>Hugo construira ensuite les pages de votre site et les rendra disponibles \u00e0 l&rsquo;adresse <code>http:\/\/localhost:1313\/<\/code>:<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0.jpg\" alt=\"Serveur de d\u00e9veloppement local Hugo.\" width=\"2048\" height=\"1450\"><figcaption class=\"wp-caption-text\">Serveur de d\u00e9veloppement local Hugo.<\/figcaption><\/figure>\n<p>Si vous vous rendez sur <a href=\"https:\/\/kinsta.com\/fr\/blog\/description-url\/\">l&rsquo;URL<\/a> dans votre navigateur web, vous devriez voir votre site Hugo avec le th\u00e8me Hyde :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-1.jpg\" alt=\"Site Hugo s'affichant avec le th\u00e8me Hyde.\" width=\"2048\" height=\"1088\"><figcaption class=\"wp-caption-text\">Site Hugo s&rsquo;affichant avec le th\u00e8me Hyde.<\/figcaption><\/figure>\n<p>Par d\u00e9faut, le serveur de d\u00e9veloppement local d&rsquo;Hugo surveille les modifications et reconstruit le site automatiquement. Comme la vitesse de construction d&rsquo;Hugo est tr\u00e8s rapide, les mises \u00e0 jour de votre site peuvent \u00eatre vues quasiment en temps r\u00e9el &#8211; ce qui est rare dans le monde des g\u00e9n\u00e9rateurs de sites statiques. Pour le d\u00e9montrer, cr\u00e9ons notre tout premier article dans Hugo.<\/p>\n<h2>Comment ajouter du contenu \u00e0 un site Hugo<\/h2>\n<p>L&rsquo;ajout de contenu \u00e0 un site Hugo est tr\u00e8s diff\u00e9rent d&rsquo;un CMS \u00e0 part enti\u00e8re comme WordPress ou Ghost. Avec Hugo, il n&rsquo;y a pas de couche CMS int\u00e9gr\u00e9e pour <a href=\"https:\/\/kinsta.com\/fr\/sujets\/strategie-contenu\/\">g\u00e9rer votre contenu<\/a>. Au lieu de cela, on attend de vous que vous g\u00e9riez et organises les choses comme vous le souhaitez.<\/p>\n<p>En d&rsquo;autres termes, il n&rsquo;y a pas de fa\u00e7on explicitement \u00ab correcte \u00bb de faire de la gestion de contenu dans Hugo. Nous allons partager une m\u00e9thode d&rsquo;ajout et de gestion de contenu dans cette section, mais n&rsquo;h\u00e9sitez pas \u00e0 modifier les choses au fur et \u00e0 mesure que vous vous familiarisez avec Hugo.<\/p>\n<h3>Sections de contenu dans Hugo<\/h3>\n<p>Dans Hugo, le premier outil d&rsquo;organisation du contenu que vous avez \u00e0 votre disposition est la section de <strong>contenu<\/strong>. Une section de contenu dans Hugo est similaire \u00e0 un <a href=\"https:\/\/kinsta.com\/fr\/blog\/types-publications-personnalises-wordpress\/\">type d&rsquo;article dans WordPress<\/a> &#8211; non seulement vous pouvez l&rsquo;utiliser comme un filtre de contenu, mais vous pouvez aussi l&rsquo;utiliser comme un identifiant lors de la cr\u00e9ation de th\u00e8mes personnalis\u00e9s.<\/p>\n<p>Par exemple, si vous avez un r\u00e9pertoire de section de contenu de <strong>blog<\/strong>, vous pouvez l&rsquo;utiliser pour stocker tous vos articles de blog et rendre un mod\u00e8le de page sp\u00e9cifique qui s&rsquo;applique uniquement aux articles de blog.<\/p>\n<h3>Comment ajouter des articles dans Hugo<\/h3>\n<p>Avec cela en t\u00eate, cr\u00e9ons une section de contenu pour les articles de blog et ajoutons quelques \u00e9l\u00e9ments de contenu. Cr\u00e9ez un nouveau r\u00e9pertoire nomm\u00e9 <strong>posts<\/strong> dans le r\u00e9pertoire <strong>content<\/strong> de votre projet &#8211; c&rsquo;est la section de contenu.<\/p>\n<p>Cr\u00e9ons une autre couche organisationnelle \u00e0 l&rsquo;int\u00e9rieur du r\u00e9pertoire <strong>posts<\/strong> en cr\u00e9ant un r\u00e9pertoire <strong>2021<\/strong>. \u00c0 ce stade, votre r\u00e9pertoire <strong>content<\/strong> devrait ressembler \u00e0 ceci :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-2.jpg\" alt=\"R\u00e9pertoire content Hugo.\" width=\"2048\" height=\"898\"><figcaption class=\"wp-caption-text\">R\u00e9pertoire content Hugo.<\/figcaption><\/figure>\n<p>Maintenant, cr\u00e9ons notre premier article. Comme nous l&rsquo;avons vu pr\u00e9c\u00e9demment, Hugo prend en charge les fichiers Markdown et HTML pour le contenu. En g\u00e9n\u00e9ral, il est pr\u00e9f\u00e9rable de s&rsquo;en tenir aux fichiers Markdown car ils sont plus faciles \u00e0 \u00e9crire, \u00e0 formater et \u00e0 lire.<\/p>\n<p>Dans le r\u00e9pertoire <strong>content\/posts\/2021<\/strong>, cr\u00e9e un nouveau fichier qui se termine par <code>.md<\/code> (l&rsquo;extension du fichier Markdown). Vous pouvez nommer le fichier comme vous voulez, mais la syntaxe recommand\u00e9e pour nommer un fichier de contenu Hugo est <strong>YYYY-MM-DD-a-sample-post.md<\/strong>.<\/p>\n<p>En plus de cr\u00e9er manuellement un fichier de contenu, vous pouvez aussi utiliser le CLI Hugo pour cr\u00e9er un nouvel article avec la commande ci-dessous (assurez-vous d&rsquo;ex\u00e9cuter la commande depuis le r\u00e9pertoire de votre projet) :<\/p>\n<pre><code class=\"language-bash\">hugo new posts\/2021\/2021-08-30-a-sample-post.md<\/code><\/pre>\n<p>Remarquez que le r\u00e9pertoire <strong>content<\/strong> est absent du chemin d&rsquo;acc\u00e8s ci-dessus. C&rsquo;est parce que Hugo suppose que tous les fichiers de contenu iront dans le r\u00e9pertoire <strong>content<\/strong> par d\u00e9faut.<\/p>\n<p>Si vous ouvrez le fichier de contenu nouvellement cr\u00e9\u00e9, vous devriez voir quelques lignes de m\u00e9tadonn\u00e9es en haut du document qui ressemblent \u00e0 ceci :<\/p>\n<pre><code class=\"language-md\">---\ntitle: \"2021 08 30 a Sample Post\"\ndate: 2021-08-30T13:44:28+09:00\ndraft: true\n---<\/code><\/pre>\n<p>Ces m\u00e9tadonn\u00e9es, qui sont format\u00e9es en YAML, s&rsquo;appellent le \u00ab front-matter \u00bb. Il est g\u00e9n\u00e9r\u00e9 automatiquement est un avantage important de l&rsquo;utilisation de la CLI Hugo. C&rsquo;est l&rsquo;endroit o\u00f9 sont stock\u00e9es les donn\u00e9es uniques d&rsquo;un article (nom de l&rsquo;article, donn\u00e9es, statut du brouillon, \u00e9tiquettes, cat\u00e9gories, etc. Son format par d\u00e9faut peut \u00eatre configur\u00e9 pour chaque section \u00e0 l&rsquo;aide <a href=\"https:\/\/gohugo.io\/content-management\/archetypes\/\">d&rsquo;ar<\/a><a href=\"https:\/\/gohugo.io\/content-management\/archetypes\/\" target=\"_blank\" rel=\"noopener noreferrer\">ch\u00e9types<\/a>.<\/p>\n<p>Ajoutons maintenant du texte au message. Lorsque vous \u00e9crivez un article, assurez-vous toujours que votre contenu se trouve en dessous du front-matter, comme ci-dessous :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-3.jpg\" alt=\"Article de blog dans Hugo.\" width=\"2048\" height=\"1332\"><figcaption class=\"wp-caption-text\">Article de blog dans Hugo.<\/figcaption><\/figure>\n<p>Une fois que vous avez enregistr\u00e9 le fichier de contenu, vous devriez voir Hugo reconstruire votre site dans le Terminal. Dans la capture d&rsquo;\u00e9cran ci-dessous, vous pouvez voir qu&rsquo;Hugo a reconstruit l&rsquo;ensemble du site en 22 ms !<\/p>\n<figure style=\"width: 1692px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-4.jpg\" alt=\"Reconstruction du site Hugo.\" width=\"1692\" height=\"914\"><figcaption class=\"wp-caption-text\">Reconstruction du site Hugo.<\/figcaption><\/figure>\n<p>Si vous vous rendez sur votre site Hugo dans votre navigateur web, vous devriez voir le nouvel article.<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/hugo-site-with-post.jpg\" alt=\"Site Hugo avec un article.\" width=\"2048\" height=\"1118\"><figcaption class=\"wp-caption-text\">Site Hugo avec un article.<\/figcaption><\/figure>\n<h3>Comment ajouter une page dans Hugo<\/h3>\n<p>Maintenant que nous avons ajout\u00e9 un article \u00e0 notre site Hugo, ajoutons une page. La plupart des syst\u00e8mes de gestion de contenu, y compris WordPress, font la distinction entre les articles et les pages. En g\u00e9n\u00e9ral, un article est un \u00e9l\u00e9ment de contenu dat\u00e9, tandis qu&rsquo;une page est constitu\u00e9e d&rsquo;un contenu permanent ou statique.<\/p>\n<p>Pour cr\u00e9er une page, nous avons d&rsquo;abord besoin d&rsquo;une section de contenu <strong>page.<\/strong> Pour cela, cr\u00e9ez un r\u00e9pertoire nomm\u00e9 <strong>pages<\/strong> dans le r\u00e9pertoire <strong>content<\/strong> d&rsquo;Hugo. Ensuite, utilisez la commande ci-dessous pour ajouter une nouvelle page \u00ab \u00c0 propos \u00bb \u00e0 votre site :<\/p>\n<pre><code class=\"language-bash\">hugo new pages\/about.md<\/code><\/pre>\n<p>Remarquez que la convention de d\u00e9nomination des pages diff\u00e8re de celle des articles. Contrairement aux articles, les pages ne sont pas li\u00e9es \u00e0 une date sp\u00e9cifique, il est donc inutile d&rsquo;inclure la date de cr\u00e9ation dans le nom du fichier.<\/p>\n<p>Maintenant, ajoutons du texte \u00e0 la page \u00ab \u00c0 propos \u00bb :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-5.jpg\" alt=\"Page \u00c0 propos dans Hugo.\" width=\"2048\" height=\"1104\"><figcaption class=\"wp-caption-text\">Page \u00c0 propos dans Hugo.<\/figcaption><\/figure>\n<p>\u00c0 ce stade, vous devriez voir la page \u00c0 propos dans votre navigateur web :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-6.jpg\" alt=\"Page \u00c0 propos dans le navigateur web.\" width=\"2048\" height=\"1087\"><figcaption class=\"wp-caption-text\">Page \u00c0 propos dans le navigateur web.<\/figcaption><\/figure>\n<p>Maintenant que nous avons deux sections de contenu &#8211; les articles et les pages &#8211; voyons comment apporter quelques personnalisations au site, comme modifier le titre et la description, ajouter la page \u00c0 propos au menu de la colonne lat\u00e9rale, changer le format des permaliens et supprimer des pages du flux d&rsquo;articles.<\/p>\n<h3>Comment modifier le titre et la description du site<\/h3>\n<p>La m\u00e9thode exacte pour modifier le titre et la description du site d\u00e9pend de la configuration de votre site et\/ou du th\u00e8me actif. Dans le cas du th\u00e8me Hyde, le titre et la description du site peuvent \u00eatre modifi\u00e9s dans le fichier de configuration Hugo (<strong>config.toml<\/strong>).<\/p>\n<p>Nous le savons gr\u00e2ce au code de th\u00e8me suivant qui rend la colonne lat\u00e9rale :<\/p>\n<pre><code class=\"language-html\">&lt;aside class=\"sidebar\"&gt;\n    &lt;div class=\"container sidebar-sticky\"&gt;\n        &lt;div class=\"sidebar-about\"&gt;\n            &lt;a href=\"{{ .Site.BaseURL }}\"&gt;&lt;h1&gt;{{ .Site.Title }}&lt;\/h1&gt;&lt;\/a&gt;\n            &lt;p class=\"lead\"&gt;\n            {{ with .Site.Params.description }} {{.}} {{ else }}An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}\n            &lt;\/p&gt;\n        &lt;\/div&gt;\n        &lt;nav&gt;\n            &lt;ul class=\"sidebar-nav\"&gt;\n                &lt;li&gt;&lt;a href=\"{{ .Site.BaseURL }}\"&gt;Home&lt;\/a&gt; &lt;\/li&gt;\n                {{ range .Site.Menus.main -}}\n                &lt;li&gt;&lt;a href=\"{{.URL}}\"&gt; {{ .Name }} &lt;\/a&gt;&lt;\/li&gt;\n                {{- end }}\n            &lt;\/ul&gt;\n        &lt;\/nav&gt;\n        &lt;p&gt;{{ with .Site.Params.copyright }}{{.}}{{ else }}&copy; {{ now.Format \"2006\"}}. All rights reserved. {{end}}&lt;\/p&gt;\n    &lt;\/div&gt;\n&lt;\/aside&gt;<\/code><\/pre>\n<p>Les deux parties sur lesquelles il faut se concentrer sont :<\/p>\n<pre><code class=\"language-md\">{{ .Site.Title }}<\/code><\/pre>\n<p>Et&#8230;<\/p>\n<pre><code class=\"language-md\">{{ with .Site.Params.description }} {{.}} {{ else }}An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}<\/code><\/pre>\n<p><code>{{ }}<\/code> fait partie du moteur de templating d&rsquo;Hugo et permet de g\u00e9n\u00e9rer dynamiquement des donn\u00e9es dans les pages rendues. Par exemple, <code>{{ .Site.Title }}<\/code> demande \u00e0 Hugo de v\u00e9rifier le fichier <strong>config.toml<\/strong> et de r\u00e9cup\u00e9rer la valeur associ\u00e9e \u00e0 la cl\u00e9 <strong>Title<\/strong>.<\/p>\n<p>Comme la configuration par d\u00e9faut d&rsquo;Hugo utilise <strong>My New Hugo Site<\/strong> comme titre de site, c&rsquo;est ce que la colonne lat\u00e9rale affiche. Si nous changeons le titre du site dans <strong>config.toml<\/strong> pour quelque chose d&rsquo;autre, la modification se refl\u00e9tera \u00e9galement sur l&rsquo;interface publique.<\/p>\n<p>Allons-y et changeons le param\u00e8tre de titre dans <strong>config.toml<\/strong> de <strong>My New Hugo Site<\/strong> \u00e0 <strong>Kinsta&rsquo;s Hugo Site<\/strong>.<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/kinstas-hugo-site-title.jpg\" alt=\"Changer le titre du site dans Hugo.\" width=\"2048\" height=\"1088\"><figcaption class=\"wp-caption-text\">Changer le titre du site dans Hugo.<\/figcaption><\/figure>\n<p>En passant \u00e0 la description du site, vous pouvez voir que le moteur de templating d&rsquo;Hugo prend en charge la logique conditionnelle. Traduit en language simple, le code ci-dessous demande \u00e0 Hugo de v\u00e9rifier si une valeur <strong>Params<\/strong> est attribu\u00e9e \u00e0 la cl\u00e9 de <strong>description<\/strong> dans le fichier <strong>config.toml<\/strong>. Si ce n&rsquo;est pas le cas, voici une cha\u00eene par d\u00e9faut \u00e0 utiliser \u00e0 la place.<\/p>\n<pre><code class=\"language-md\">{{ with .Site.Params.description }} {{.}} {{ else }} An elegant open source and mobile first theme for &lt;a href=\"http:\/\/hugo.spf13.com\"&gt;hugo&lt;\/a&gt; made by &lt;a href=\"http:\/\/twitter.com\/mdo\"&gt;@mdo&lt;\/a&gt;. Originally made for Jekyll.{{end}}<\/code><\/pre>\n<p>Comme nous n&rsquo;avons pas de description configur\u00e9e dans le fichier <strong>config.toml<\/strong>, Hugo affiche par d\u00e9faut \u00ab An elegant open source and mobile-first theme for Hugo made by @mdo. Originaly made for Jekyll \u00bb.\u00a0\u00bb<\/p>\n<p>Mettons maintenant \u00e0 jour notre fichier <strong>config.toml<\/strong> :<\/p>\n<pre><code class=\"language-yaml\">baseURL = \"http:\/\/example.org\/\"\nlanguageCode = \"en-us\"\ntitle = \"Kinsta's Hugo Site\"\ntheme = \"hyde\"<\/code><\/pre>\n<p>To:<\/p>\n<pre><code class=\"language-yaml\">baseURL = \"http:\/\/example.org\/\"\nlanguageCode = \"en-us\"\ntitle = \"Kinsta's Hugo Site\"\ntheme = \"hyde\"\n[params]\ndescription = \"Kinsta is a premium managed WordPress hosting company.\"<\/code><\/pre>\n<p>Comme pr\u00e9vu, les changements sont maintenant aussi visibles sur l&rsquo;interface publique :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-7.jpg\" alt=\"Changer la description du site Hugo.\" width=\"2048\" height=\"1086\"><figcaption class=\"wp-caption-text\">Changer la description du site Hugo.<\/figcaption><\/figure>\n<h3>Comment supprimer des pages du flux des articles<\/h3>\n<p>Sur la plupart des blogs, il est courant que le flux des articles sur la page d&rsquo;accueil n&rsquo;affiche que les articles. Par d\u00e9faut, le th\u00e8me Hyde inclut tous les fichiers de contenu dans le flux des articles. Pour modifier ce comportement, vous devez modifier la fonction <code>range<\/code> dans le mod\u00e8le <strong>index.html<\/strong>, qui g\u00e9n\u00e8re la page d&rsquo;accueil.<\/p>\n<p>La fonction <code>range<\/code> d&rsquo;Hugo it\u00e8re sur un ensemble d\u00e9fini d&rsquo;articles et fait ensuite <em>quelque chose<\/em> avec les donn\u00e9es. Par d\u00e9faut, le mod\u00e8le <strong>index.html<\/strong> du th\u00e8me Hyde passe par <strong>.Site.RegularPages<\/strong> et filtre les donn\u00e9es telles que le permalien, le titre de l&rsquo;article et le r\u00e9sum\u00e9 de l&rsquo;article avant de rendre le HTML.<\/p>\n<p>Comme <code>.Site.RegularPages<\/code> inclut toutes les pages r\u00e9guli\u00e8res de Hugo, y compris les articles et les pages, la page \u00ab \u00c0 propos \u00bb est rendue. En rempla\u00e7ant les \u00e9l\u00e9ments de <code>range<\/code> par <code>.Site.RegularPages \"Section\" \"posts\"<\/code>, nous pouvons demander \u00e0 Hugo de ne filtrer que les pages normales de la section <strong>posts<\/strong> &#8211; les fichiers de contenu du r\u00e9pertoire <strong>posts<\/strong> que nous avons cr\u00e9\u00e9 plus t\u00f4t.<\/p>\n<p>Effectuons ce changement maintenant en modifiant le mod\u00e8le de ceci :<\/p>\n<pre><code class=\"language-html\">{{ define \"main\" -}}\n    &lt;div class=\"posts\"&gt;\n        {{- range .Site.RegularPages -}}\n            &lt;article class=\"post\"&gt;\n                &lt;h1 class=\"post-title\"&gt;\n                    &lt;a href=\"{{ .Permalink }}\"&gt;{{ .Title }}&lt;\/a&gt;\n                &lt;\/h1&gt;\n                &lt;time datetime=\"{{ .Date.Format \"2006-01-02T15:04:05Z0700\" }}\" class=\"post-date\"&gt;{{ .Date.Format \"Mon, Jan 2, 2006\" }}&lt;\/time&gt;\n                {{ .Summary }}\n                {{ if .Truncated }}\n                    &lt;div class=\"read-more-link\"&gt;\n                        &lt;a href=\"{{ .RelPermalink }}\"&gt;Read More\u2026&lt;\/a&gt;\n                    &lt;\/div&gt;\n                {{ end }}\n            &lt;\/article&gt;\n        {{- end }}\n    &lt;\/div&gt;\n{{- end }}<\/code><\/pre>\n<p>To this:<\/p>\n<pre><code class=\"language-html\">{{ define \"main\" -}}\n    &lt;div class=\"posts\"&gt;\n        {{- range where .Site.RegularPages \"Section\" \"posts\" -}}\n            &lt;article class=\"post\"&gt;\n                &lt;h1 class=\"post-title\"&gt;\n                    &lt;a href=\"{{ .Permalink }}\"&gt;{{ .Title }}&lt;\/a&gt;\n                &lt;\/h1&gt;\n                &lt;time datetime=\"{{ .Date.Format \"2006-01-02T15:04:05Z0700\" }}\" class=\"post-date\"&gt;{{ .Date.Format \"Mon, Jan 2, 2006\" }}&lt;\/time&gt;\n                {{ .Summary }}\n                {{ if .Truncated }}\n                    &lt;div class=\"read-more-link\"&gt;\n                        &lt;a href=\"{{ .RelPermalink }}\"&gt;Read More\u2026&lt;\/a&gt;\n                    &lt;\/div&gt;\n                {{ end }}\n            &lt;\/article&gt;\n        {{- end }}\n    &lt;\/div&gt;\n{{- end }}<\/code><\/pre>\n<p>Apr\u00e8s avoir effectu\u00e9 cette modification, la page d&rsquo;accueil n&rsquo;affichera que des articles comme ci-dessous :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/CleanShot-2021-09-21-at-10.45.16@2x.jpg\" alt=\"Afficher uniquement les articles sur la page d'accueil.\" width=\"2048\" height=\"1090\"><figcaption class=\"wp-caption-text\">Afficher uniquement les articles sur la page d&rsquo;accueil.<\/figcaption><\/figure>\n<h3>Comment utiliser Partials dans Hugo<\/h3>\n<p>L&rsquo;une des fonctions de mod\u00e9lisation les plus puissantes d&rsquo;Hugo sont les partials &#8211; des mod\u00e8les HTML int\u00e9gr\u00e9s dans un autre mod\u00e8le HTML. Les partials permettent de r\u00e9utiliser le code dans diff\u00e9rents fichiers de mod\u00e8les sans avoir \u00e0 g\u00e9rer le code dans chaque fichier.<\/p>\n<p>Par exemple, il est courant de voir diff\u00e9rentes sections de page (en-t\u00eate, pied de page, etc.) dans leurs propres fichiers partials, qui sont ensuite appel\u00e9s dans le fichier de mod\u00e8le <strong>baseof.html<\/strong> d&rsquo;un th\u00e8me.<\/p>\n<p>Dans le fichier <strong>baseof.html<\/strong> du th\u00e8me Ananke, vous pouvez voir un exemple de fichier partial \u00e0 la ligne 18 &#8211; <code>{{ partial \"site-style.html\" . }}<\/code>.<\/p>\n<p>Dans ce cas, <code>{{ partial \"site-style.html\" . }}<\/code> indique \u00e0 Hugo de remplacer le contenu de la ligne 18 par le fichier <strong>site-style.html<\/strong> dans le r\u00e9pertoire <strong>\/layouts\/partials<\/strong>. Si nous allons dans le r\u00e9pertoire <strong>\/partials\/site-style.html<\/strong>, nous voyons le <a href=\"https:\/\/github.com\/theNewDynamic\/gohugo-theme-ananke\/blob\/master\/layouts\/partials\/site-style.html\" target=\"_blank\" rel=\"noopener noreferrer\">code suivant<\/a>:<\/p>\n<pre><code class=\"language-html\">{{ with partialCached \"func\/style\/GetMainCSS\" \"style\/GetMainCSS\" }}\n    &lt;link rel=\"stylesheet\" href=\"{{ .RelPermalink }}\" &gt;\n{{ end }}\n{{ range site.Params.custom_css }}\n{{ with partialCached \"func\/style\/GetResource\" . . }}{{ else }}\n    &lt;link rel=\"stylesheet\" href=\"{{ relURL (.) }}\"&gt;\n{{ end }}\n{{ end }}<\/code><\/pre>\n<p>En d\u00e9chargeant ce code dans un fichier s\u00e9par\u00e9, le fichier mod\u00e8le <strong>baseof.html<\/strong> peut rester organis\u00e9 et facile \u00e0 lire. Si les partials ne sont pas n\u00e9cessaires, surtout pour les projets de base, ils sont tr\u00e8s utiles pour les projets plus importants avec des fonctionnalit\u00e9s plus complexes.<\/p>\n<h3>Comment utiliser les codes courts dans Hugo<\/h3>\n<p>Les codes courts d&rsquo;Hugo sont similaires aux partials dans la mesure o\u00f9 ils permettent de r\u00e9utiliser le code sur une vari\u00e9t\u00e9 de pages. Les codes courts sont des fichiers HTML qui r\u00e9sident dans le r\u00e9pertoire <strong>\/layouts\/shortcodes<\/strong>. La principale diff\u00e9rence est que les partiels s&rsquo;appliquent aux mod\u00e8les HTML, tandis que les codes courts s&rsquo;appliquent aux pages de contenu Markdown.<\/p>\n<p>Chez Hugo, les <a href=\"https:\/\/kinsta.com\/fr\/blog\/shortcodes-wordpress\/\">codes courts<\/a> vous permettent de d\u00e9velopper des modules de fonctionnalit\u00e9 que vous pouvez utiliser dans les pages de votre site sans avoir \u00e0 g\u00e9rer les changements de code pour chaque page.<\/p>\n<p>Si vous tenez un blog, il y a de fortes chances que vous deviez parcourir le corps du contenu de vos articles pour mettre \u00e0 jour les r\u00e9f\u00e9rences \u00e0 l&rsquo;ann\u00e9e en cours. Selon le nombre d&rsquo;articles que tu avez sur votre site, cette t\u00e2che peut prendre beaucoup de temps !<\/p>\n<p>En utilisant un code court Hugo dans vos fichiers de contenu, vous n&rsquo;aurez plus jamais \u00e0 vous soucier de la mise \u00e0 jour des r\u00e9f\u00e9rences de l&rsquo;ann\u00e9e !<\/p>\n<p>Commen\u00e7ons par cr\u00e9er un code court dans <strong>\/layouts\/shortcodes\/current_year.html<\/strong> avec le contenu ci-dessous :<\/p>\n<pre><code class=\"language-md\">{{ now.Format \"2006\" }}<\/code><\/pre>\n<p>Les codes courts peuvent \u00eatre int\u00e9gr\u00e9s dans les articles avec cette syntaxe &#8211; <code>{{&lt; shortcode_name &gt;}}<\/code>. Dans notre cas, nous pouvons appeler le code court<\/p>\n<pre><code class=\"language-yaml\">---\ntitle: \"2021 08 30 a Sample Post\"\ndate: 2021-08-30T13:44:28+09:00\ndraft: true\n---\n\nThis post was created in the year {{&lt; current_year &gt;}}.\n\nLorem ipsum dolor sit amet, consectetur adipiscing elit. Curabitur finibus, velit sit amet vulputate scelerisque, massa turpis fringilla nulla, commodo dapibus urna arcu at nunc. Mauris ultrices convallis ipsum eget facilisis. Curabitur ut rutrum sem. Praesent id nibh non enim mollis porta. Nam mollis, quam et vehicula tristique, lorem ante laoreet orci, sit amet congue tortor nibh sit amet leo. Curabitur lobortis neque tempor, vestibulum lacus nec, condimentum arcu. Nulla fringilla leo sit amet ipsum auctor sagittis. Vivamus aliquam iaculis posuere. Pellentesque malesuada neque sit amet consectetur fringilla. Curabitur felis tellus, mattis in dui vel, vestibulum tincidunt metus. Mauris eget elit dui. Etiam risus nulla, ultricies vitae molestie quis, placerat in magna. Proin interdum, orci ac auctor ullamcorper, tellus ex porta tortor, suscipit luctus libero odio quis arcu.\n\nPhasellus dapibus pellentesque ex eget pulvinar. Proin vitae elit risus. Sed justo nulla, pellentesque eu erat eu, luctus bibendum magna. Curabitur at mi id augue egestas condimentum sed quis lectus. Aenean fringilla nisl sed tincidunt tristique. Cras scelerisque laoreet sapien a faucibus. Vivamus a vehicula arcu. Duis rutrum, massa eu tincidunt eleifend, est nulla faucibus nisl, sit amet consectetur neque velit at velit. Integer fermentum augue ut orci iaculis aliquet. Ut in gravida magna.<\/code><\/pre>\n<p>Si vous consultez l&rsquo;article dans le <a href=\"https:\/\/kinsta.com\/fr\/parts-de-marche-des-navigateurs\/\">navigateur web<\/a>, vous devriez voir l&rsquo;ann\u00e9e en cours dans la premi\u00e8re ligne de l&rsquo;article comme ci-dessous :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-8.jpg\" alt=\"Utiliser un code court Hugo pour g\u00e9n\u00e9rer automatiquement l'ann\u00e9e en cours.\" width=\"2048\" height=\"1087\"><figcaption class=\"wp-caption-text\">Utiliser un code court Hugo pour g\u00e9n\u00e9rer automatiquement l&rsquo;ann\u00e9e en cours.<\/figcaption><\/figure>\n<h3>Comment ajouter des images \u00e0 un article dans Hugo<\/h3>\n<p>Contrairement \u00e0 WordPress et \u00e0 d&rsquo;autres syst\u00e8mes de gestion de contenu \u00e0 part enti\u00e8re, Hugo ne comprend pas de syst\u00e8me de glisser-d\u00e9poser pour g\u00e9rer les images. Ainsi, la conception d&rsquo;un syst\u00e8me de gestion des images est d\u00e9charg\u00e9e sur l&rsquo;utilisateur final.<\/p>\n<p>Bien que Hugo n&rsquo;ait pas de m\u00e9thode standardis\u00e9e pour <a href=\"https:\/\/kinsta.com\/fr\/blog\/optimiser-les-images-pour-le-web\/\">g\u00e9rer les images<\/a>, une m\u00e9thode populaire consiste \u00e0 stocker les images dans le r\u00e9pertoire <strong>\/static<\/strong> et \u00e0 les r\u00e9f\u00e9rencer dans les articles et les pages \u00e0 l&rsquo;aide d&rsquo;un code court. Voyons comment vous pouvez organiser des images dans Hugo.<\/p>\n<p>La premi\u00e8re chose \u00e0 faire est de cr\u00e9er une structure organisationnelle pour notre biblioth\u00e8que d&rsquo;images. Bien que cela semble complexe, il suffit de cr\u00e9er quelques r\u00e9pertoires suppl\u00e9mentaires dans le r\u00e9pertoire <strong>\/static<\/strong>.<\/p>\n<p>Commen\u00e7ons par cr\u00e9er un r\u00e9pertoire <strong>uploads<\/strong> dans <strong>\/static<\/strong>. Dans le r\u00e9pertoire <strong>uploads<\/strong>, cr\u00e9ez un r\u00e9pertoire nomm\u00e9 <strong>2021<\/strong> pour contenir toutes les images t\u00e9l\u00e9vers\u00e9es en 2021.<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-9.jpg\" alt=\"Gestion des images dans Hugo.\" width=\"2048\" height=\"924\"><figcaption class=\"wp-caption-text\">Gestion des images dans Hugo.<\/figcaption><\/figure>\n<p>Ensuite, ajoutons deux images (<strong>blue1.jpg<\/strong> et <strong>blue2.jpg<\/strong>) dans le r\u00e9pertoire <strong>2021<\/strong>.<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-10.jpg\" alt=\"Ajout d'images au r\u00e9pertoire \u00ab 2021 \u00bb.\" width=\"2048\" height=\"924\"><figcaption class=\"wp-caption-text\">Ajout d&rsquo;images au r\u00e9pertoire \u00ab 2021 \u00bb.<\/figcaption><\/figure>\n<p>En HTML, les images sont affich\u00e9es \u00e0 l&rsquo;aide de la balise <code>&lt;img&gt;<\/code>. Par exemple, pour afficher <strong>blue1.jpg<\/strong>, nous pouvons utiliser le HTML ci-dessous :<\/p>\n<pre><code class=\"language-html\">&lt;img src=\"\/uploads\/2021\/blue1.jpg\" alt=\"Blue is the warmest color!\"&gt;<\/code><\/pre>\n<p>Bien qu&rsquo;il soit possible d&rsquo;ajouter ce HTML directement au fichier de contenu Markdown, il est pr\u00e9f\u00e9rable de cr\u00e9er un code court que vous pouvez utiliser pour afficher n&rsquo;importe quelle image du r\u00e9pertoire uploads. De cette fa\u00e7on, si vous devez un jour mettre \u00e0 jour la balise <code>img<\/code>, vous pouvez modifier le mod\u00e8le de code court sans modifier chaque instance de la balise <code>img<\/code>.<\/p>\n<p>Pour cr\u00e9er le mod\u00e8le de code court, cr\u00e9ez un nouveau fichier \u00e0 <strong>\/layouts\/shortcodes\/img.html<\/strong> avec le contenu ci-dessous :<\/p>\n<pre><code class=\"language-html\">&lt;img src=\"\/uploads\/{{ .Get \"src\" }}\" alt=\"{{ .Get \"alt\" }}<\/code><\/pre>\n<p>Ensuite, ajoutez le code court ci-dessous \u00e0 un article de blog :<\/p>\n<pre><code class=\"language-html\">{{&lt; img src=\"2021\/blue1.jpg\" alt=\"Blue is also the coolest color!\"&gt;}<\/code><\/pre>\n<p>Dans le mod\u00e8le de code court, <code>{{ .Get \"src\" }}<\/code> et <code>{{ .Get \"alt\" }}<\/code> indiquent \u00e0 Hugo de r\u00e9cup\u00e9rer le contenu des param\u00e8tres <code>src&lt;<\/code> et <code>alt&lt;<\/code> lorsqu&rsquo;il appelle un code court.<\/p>\n<p>Maintenant, si vous actualisez l&rsquo;article de blog, vous devriez voir l&rsquo;image comme ci-dessous :<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-11.jpg\" alt=\"Code court d'image dans Hugo.\" width=\"2048\" height=\"1040\"><figcaption class=\"wp-caption-text\">Code court d&rsquo;image dans Hugo.<\/figcaption><\/figure>\n<h2>Comment d\u00e9ployer un site Hugo sur Kinsta<\/h2>\n<p>\u00c0 ce stade, vous avez appris \u00e0 installer Hugo, \u00e0 cr\u00e9er un site, \u00e0 ajouter un th\u00e8me, \u00e0 modifier les fichiers de configuration et \u00e0 \u00e9tendre les fonctionnalit\u00e9s de votre site avec des partiels et des codes courts. Vous devriez maintenant avoir un site fonctionnel pr\u00eat \u00e0 \u00eatre d\u00e9ploy\u00e9 en ligne.<\/p>\n<p>Auparavant, nous avons utilis\u00e9 <code>hugo server -D<\/code> pour faire tourner un serveur de d\u00e9veloppement local afin de pr\u00e9visualiser les modifications apport\u00e9es \u00e0 notre site en temps r\u00e9el. Pour g\u00e9n\u00e9rer le site dans son int\u00e9gralit\u00e9, nous pouvons utiliser la commande <code>hugo<\/code> dans le r\u00e9pertoire racine de notre projet. Une fois la g\u00e9n\u00e9ration du site termin\u00e9e, vous devriez voir un nouveau r\u00e9pertoire <strong>public<\/strong> dans votre r\u00e9pertoire de projet. Inside this folder, you&rsquo;ll find all the files that need to be uploaded to a static server.<\/p>\n<figure style=\"width: 2048px\" class=\"wp-caption alignnone\"><img loading=\"lazy\" decoding=\"async\" src=\"https:\/\/kinsta.com\/wp-content\/uploads\/2021\/09\/pasted-image-0-12.jpg\" alt=\"G\u00e9n\u00e9rez localement votre ton site Hugo.\" width=\"2048\" height=\"1147\"><figcaption class=\"wp-caption-text\">G\u00e9n\u00e9rez localement votre ton site Hugo.<\/figcaption><\/figure>\n<p>La meilleure option pour publier votre site statique est de pousser votre projet Hugo vers un d\u00e9p\u00f4t <a href=\"https:\/\/kinsta.com\/fr\/sujets\/git\/\">Git<\/a> et de le lier \u00e0 l&rsquo;h\u00e9bergement de sites statiques de Kinsta. Actuellement, Kinsta est uniquement capable de construire des SSG bas\u00e9s sur Node.js, mais pour les SSG comme Hugo, il y a deux fa\u00e7ons de contourner le probl\u00e8me :<\/p>\n<ul>\n<li>Installez la d\u00e9pendance <a href=\"https:\/\/www.npmjs.com\/package\/hugo-bin\">Hugo bin<\/a><\/li>\n<li>Utilisez CI\/CD pour construire les fichiers statiques, puis les d\u00e9ployer sur Kinsta<\/li>\n<\/ul>\n<p>Pour ce guide, utilisons la d\u00e9pendance Hugo-bin. Pour cela, initialisez Node.js dans votre projet Hugo en utilisant la commande <code>npm init -y<\/code> dans le r\u00e9pertoire racine de votre projet Hugo.<\/p>\n<p>Cela cr\u00e9era un fichier <strong>package.json<\/strong> de base. Ensuite, installez la d\u00e9pendance d\u00e9veloppeur hugo-bin :<\/p>\n<pre><code class=\"language-bash\">npm i -D hugo-bin<\/code><\/pre>\n<p>Ensuite, dans votre fichier <strong>package.json<\/strong>, ajoutez la commande script suivante :<\/p>\n<pre><code class=\"language-json\">\"scripts\": {\n \"build\": \"hugo\",\n \"create\": \"hugo new\",\n \"serve\": \"hugo server\"\n }<\/code><\/pre>\n<p>Maintenant, vous pouvez pousser votre code vers votre d\u00e9pot Git. Une fois le d\u00e9p\u00f4t pr\u00eat, suivez les \u00e9tapes ci-dessous pour d\u00e9ployer votre site statique sur Kinsta :<\/p>\n<ol>\n<li style=\"list-style-type: none\">\n<ol>\n<li>Connectez-vous ou cr\u00e9ez un compte pour voir votre tableau de bord <a href=\"https:\/\/my.kinsta.com\/?lang=fr\">MyKinsta<\/a>.<\/li>\n<li>Autorisez Kinsta avec votre fournisseur Git.<\/li>\n<li>Cliquez sur <strong>Sites statiques<\/strong> dans la colonne lat\u00e9rale de gauche, puis sur <strong>Ajouter un site<\/strong>.<\/li>\n<li>S\u00e9lectionnez le d\u00e9p\u00f4t et la branche \u00e0 partir desquels vous souhaitez effectuer le d\u00e9ploiement.<\/li>\n<li>Attribuez un nom unique \u00e0 votre site.<\/li>\n<li>Ajoutez les r\u00e9glages de construction dans le format suivant :\n<ul>\n<li><strong>Commande de construction :<\/strong> <code>npm run build<\/code><\/li>\n<li><strong>Version de Node :<\/strong> <code>18.16.0<\/code><\/li>\n<li><strong>R\u00e9pertoire de publication :<\/strong> <code>public<\/code><\/li>\n<\/ul>\n<\/li>\n<li>Enfin, cliquez sur <strong>Cr\u00e9er un site<\/strong>.<\/li>\n<\/ol>\n<\/li>\n<\/ol>\n<p>Et c&rsquo;est tout ! Vous avez maintenant un site en production, enti\u00e8rement fonctionnel, cr\u00e9\u00e9 avec Hugo.<\/p>\n<p>Si vous avez coch\u00e9 l&rsquo;option de d\u00e9ploiement automatique lors du d\u00e9ploiement de votre site, quand vous modifiez votre site et poussez les changements vers le d\u00e9p\u00f4t Git, votre d\u00e9p\u00f4t d\u00e9clenchera automatiquement une nouvelle construction et un d\u00e9ploiement sur Kinsta sans aucune intervention manuelle.<\/p>\n<p>Comme alternative \u00e0 l&rsquo;h\u00e9bergement de site statique, vous pouvez opter pour le d\u00e9ploiement de votre site statique avec l&rsquo;<a href=\"https:\/\/sevalla.com\/application-hosting\/\">h\u00e9bergement d&rsquo;application<\/a> de Kinsta, qui fournit une plus grande flexibilit\u00e9 d&rsquo;h\u00e9bergement, un plus large \u00e9ventail d&rsquo;avantages et l&rsquo;acc\u00e8s \u00e0 des fonctionnalit\u00e9s plus robustes. Par exemple, l&rsquo;\u00e9volutivit\u00e9, le d\u00e9ploiement personnalis\u00e9 \u00e0 l&rsquo;aide d&rsquo;un fichier Docker, et des <a href=\"https:\/\/docs.sevalla.com\/applications\/analytics\">statistiques compl\u00e8tes<\/a> englobant des donn\u00e9es en temps r\u00e9el et historiques.<\/p>\n\n<h2>R\u00e9sum\u00e9<\/h2>\n<p>Hugo est l&rsquo;un des g\u00e9n\u00e9rateurs de sites statiques les plus populaires au monde, et pour une bonne raison. Non seulement il a un traitement de construction super rapide, mais il est \u00e9galement livr\u00e9 avec de puissantes capacit\u00e9s de templating qui prennent en charge les partials et les codes courts.<\/p>\n<p>Dans ce tutoriel, vous avez appris \u00e0 configurer Hugo, \u00e0 cr\u00e9er un nouveau projet, \u00e0 ajouter des fichiers de contenu, \u00e0 modifier des fichiers de th\u00e8me et \u00e0 d\u00e9ployer un site statique fini. Nous vous recommandons de consulter la documentation officielle d&rsquo;Hugo pour en savoir plus sur Hugo et ses fonctionnalit\u00e9s plus avanc\u00e9es, comme les fonctions personnalis\u00e9es, les fronts et les buildpacks CSS\/JS.<\/p>\n<p><em>Que pensez-vous d&rsquo;Hugo et des autres g\u00e9n\u00e9rateurs de sites statiques ? Fa\u00eetes-nous en part dans les commentaires ci-dessous !<\/em><\/p>\n","protected":false},"excerpt":{"rendered":"<p>Hugo est un g\u00e9n\u00e9rateur de sites statiques (GSS) \u00e9crit en Go (alias Golang), un langage de programmation compil\u00e9 tr\u00e8s performant souvent utilis\u00e9 pour d\u00e9velopper des applications &#8230;<\/p>\n","protected":false},"author":125,"featured_media":49210,"comment_status":"open","ping_status":"closed","sticky":false,"template":"","format":"standard","meta":{"_kinsta_gated_content":false,"_kinsta_gated_content_redirect":"","footnotes":""},"tags":[85,563,564],"topic":[973,1011,1024],"class_list":["post-49207","post","type-post","status-publish","format-standard","has-post-thumbnail","hentry","tag-cms","tag-hugo","tag-static-site","topic-headless-cms","topic-generateurs-sites-statiques","topic-vitesse-site-web"],"yoast_head":"<!-- This site is optimized with the Yoast SEO Premium plugin v24.6 (Yoast SEO v24.6) - https:\/\/yoast.com\/wordpress\/plugins\/seo\/ -->\n<title>Comment cr\u00e9er un site statique ultra-rapide avec Hugo - Kinsta\u00ae<\/title>\n<meta name=\"description\" content=\"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.\" \/>\n<meta name=\"robots\" content=\"index, follow, max-snippet:-1, max-image-preview:large, max-video-preview:-1\" \/>\n<link rel=\"canonical\" href=\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\" \/>\n<meta property=\"og:locale\" content=\"fr_FR\" \/>\n<meta property=\"og:type\" content=\"article\" \/>\n<meta property=\"og:title\" content=\"Comment cr\u00e9er un site statique ultra-rapide avec Hugo\" \/>\n<meta property=\"og:description\" content=\"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.\" \/>\n<meta property=\"og:url\" content=\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\" \/>\n<meta property=\"og:site_name\" content=\"Kinsta\u00ae\" \/>\n<meta property=\"article:publisher\" content=\"https:\/\/www.facebook.com\/kinstafrance\/\" \/>\n<meta property=\"article:published_time\" content=\"2021-11-10T13:17:03+00:00\" \/>\n<meta property=\"article:modified_time\" content=\"2023-10-13T11:14:40+00:00\" \/>\n<meta property=\"og:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\" \/>\n\t<meta property=\"og:image:width\" content=\"1460\" \/>\n\t<meta property=\"og:image:height\" content=\"730\" \/>\n\t<meta property=\"og:image:type\" content=\"image\/jpeg\" \/>\n<meta name=\"author\" content=\"Brian Li\" \/>\n<meta name=\"twitter:card\" content=\"summary_large_image\" \/>\n<meta name=\"twitter:description\" content=\"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.\" \/>\n<meta name=\"twitter:image\" content=\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\" \/>\n<meta name=\"twitter:creator\" content=\"@bwhli\" \/>\n<meta name=\"twitter:site\" content=\"@kinsta_fr\" \/>\n<meta name=\"twitter:label1\" content=\"\u00c9crit par\" \/>\n\t<meta name=\"twitter:data1\" content=\"Brian Li\" \/>\n\t<meta name=\"twitter:label2\" content=\"Dur\u00e9e de lecture estim\u00e9e\" \/>\n\t<meta name=\"twitter:data2\" content=\"34 minutes\" \/>\n<script type=\"application\/ld+json\" class=\"yoast-schema-graph\">{\"@context\":\"https:\/\/schema.org\",\"@graph\":[{\"@type\":\"Article\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#article\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\"},\"author\":{\"name\":\"Brian Li\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1\"},\"headline\":\"Comment cr\u00e9er un site statique ultra-rapide avec Hugo\",\"datePublished\":\"2021-11-10T13:17:03+00:00\",\"dateModified\":\"2023-10-13T11:14:40+00:00\",\"mainEntityOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\"},\"wordCount\":5882,\"commentCount\":0,\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\",\"keywords\":[\"CMS\",\"hugo\",\"static site\"],\"articleSection\":[\"D\u00e9veloppement web\"],\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"CommentAction\",\"name\":\"Comment\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#respond\"]}]},{\"@type\":\"WebPage\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\",\"url\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\",\"name\":\"Comment cr\u00e9er un site statique ultra-rapide avec Hugo - Kinsta\u00ae\",\"isPartOf\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#website\"},\"primaryImageOfPage\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage\"},\"thumbnailUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\",\"datePublished\":\"2021-11-10T13:17:03+00:00\",\"dateModified\":\"2023-10-13T11:14:40+00:00\",\"description\":\"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.\",\"breadcrumb\":{\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#breadcrumb\"},\"inLanguage\":\"fr-FR\",\"potentialAction\":[{\"@type\":\"ReadAction\",\"target\":[\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/\"]}]},{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg\",\"width\":1460,\"height\":730,\"caption\":\"Comment cr\u00e9er un site statique ultra-rapide avec Hugo\"},{\"@type\":\"BreadcrumbList\",\"@id\":\"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#breadcrumb\",\"itemListElement\":[{\"@type\":\"ListItem\",\"position\":1,\"name\":\"Home\",\"item\":\"https:\/\/kinsta.com\/fr\/\"},{\"@type\":\"ListItem\",\"position\":2,\"name\":\"G\u00e9n\u00e9rateurs de sites statiques\",\"item\":\"https:\/\/kinsta.com\/fr\/sujets\/generateurs-sites-statiques\/\"},{\"@type\":\"ListItem\",\"position\":3,\"name\":\"Comment cr\u00e9er un site statique ultra-rapide avec Hugo\"}]},{\"@type\":\"WebSite\",\"@id\":\"https:\/\/kinsta.com\/fr\/#website\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"name\":\"Kinsta\u00ae\",\"description\":\"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es\",\"publisher\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\"},\"potentialAction\":[{\"@type\":\"SearchAction\",\"target\":{\"@type\":\"EntryPoint\",\"urlTemplate\":\"https:\/\/kinsta.com\/fr\/?s={search_term_string}\"},\"query-input\":{\"@type\":\"PropertyValueSpecification\",\"valueRequired\":true,\"valueName\":\"search_term_string\"}}],\"inLanguage\":\"fr-FR\"},{\"@type\":\"Organization\",\"@id\":\"https:\/\/kinsta.com\/fr\/#organization\",\"name\":\"Kinsta\",\"url\":\"https:\/\/kinsta.com\/fr\/\",\"logo\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\",\"url\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"contentUrl\":\"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg\",\"width\":500,\"height\":500,\"caption\":\"Kinsta\"},\"image\":{\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/\"},\"sameAs\":[\"https:\/\/www.facebook.com\/kinstafrance\/\",\"https:\/\/x.com\/kinsta_fr\",\"https:\/\/www.instagram.com\/kinstahosting\/\",\"https:\/\/www.linkedin.com\/company\/kinsta\/\",\"https:\/\/www.pinterest.com\/kinstahosting\/\",\"https:\/\/www.youtube.com\/c\/Kinsta\"]},{\"@type\":\"Person\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1\",\"name\":\"Brian Li\",\"image\":{\"@type\":\"ImageObject\",\"inLanguage\":\"fr-FR\",\"@id\":\"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/\",\"url\":\"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g\",\"contentUrl\":\"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g\",\"caption\":\"Brian Li\"},\"description\":\"Brian has been a WordPress user for over 10 years, and enjoys sharing his knowledge with the community. In his free time, Brian enjoys playing the piano and exploring Tokyo with his camera. Connect with Brian on his website at brianli.com.\",\"sameAs\":[\"https:\/\/brianli.com\",\"https:\/\/x.com\/bwhli\"],\"url\":\"https:\/\/kinsta.com\/fr\/blog\/author\/brianli\/\"}]}<\/script>\n<!-- \/ Yoast SEO Premium plugin. -->","yoast_head_json":{"title":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo - Kinsta\u00ae","description":"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.","robots":{"index":"index","follow":"follow","max-snippet":"max-snippet:-1","max-image-preview":"max-image-preview:large","max-video-preview":"max-video-preview:-1"},"canonical":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/","og_locale":"fr_FR","og_type":"article","og_title":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo","og_description":"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.","og_url":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/","og_site_name":"Kinsta\u00ae","article_publisher":"https:\/\/www.facebook.com\/kinstafrance\/","article_published_time":"2021-11-10T13:17:03+00:00","article_modified_time":"2023-10-13T11:14:40+00:00","og_image":[{"width":1460,"height":730,"url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","type":"image\/jpeg"}],"author":"Brian Li","twitter_card":"summary_large_image","twitter_description":"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.","twitter_image":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","twitter_creator":"@bwhli","twitter_site":"@kinsta_fr","twitter_misc":{"\u00c9crit par":"Brian Li","Dur\u00e9e de lecture estim\u00e9e":"34 minutes"},"schema":{"@context":"https:\/\/schema.org","@graph":[{"@type":"Article","@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#article","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/"},"author":{"name":"Brian Li","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1"},"headline":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo","datePublished":"2021-11-10T13:17:03+00:00","dateModified":"2023-10-13T11:14:40+00:00","mainEntityOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/"},"wordCount":5882,"commentCount":0,"publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","keywords":["CMS","hugo","static site"],"articleSection":["D\u00e9veloppement web"],"inLanguage":"fr-FR","potentialAction":[{"@type":"CommentAction","name":"Comment","target":["https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#respond"]}]},{"@type":"WebPage","@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/","url":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/","name":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo - Kinsta\u00ae","isPartOf":{"@id":"https:\/\/kinsta.com\/fr\/#website"},"primaryImageOfPage":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage"},"image":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage"},"thumbnailUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","datePublished":"2021-11-10T13:17:03+00:00","dateModified":"2023-10-13T11:14:40+00:00","description":"Hugo peut g\u00e9n\u00e9rer la plupart des sites en quelques secondes (&lt;1 ms par page). D\u00e9couvrez comment vous pouvez commencer \u00e0 construire votre site statique Hugo.","breadcrumb":{"@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#breadcrumb"},"inLanguage":"fr-FR","potentialAction":[{"@type":"ReadAction","target":["https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/"]}]},{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#primaryimage","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2021\/10\/hugo-site-statique.jpeg","width":1460,"height":730,"caption":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo"},{"@type":"BreadcrumbList","@id":"https:\/\/kinsta.com\/fr\/blog\/hugo-site-statique\/#breadcrumb","itemListElement":[{"@type":"ListItem","position":1,"name":"Home","item":"https:\/\/kinsta.com\/fr\/"},{"@type":"ListItem","position":2,"name":"G\u00e9n\u00e9rateurs de sites statiques","item":"https:\/\/kinsta.com\/fr\/sujets\/generateurs-sites-statiques\/"},{"@type":"ListItem","position":3,"name":"Comment cr\u00e9er un site statique ultra-rapide avec Hugo"}]},{"@type":"WebSite","@id":"https:\/\/kinsta.com\/fr\/#website","url":"https:\/\/kinsta.com\/fr\/","name":"Kinsta\u00ae","description":"Solutions d&#039;h\u00e9bergement premium, rapides et s\u00e9curis\u00e9es","publisher":{"@id":"https:\/\/kinsta.com\/fr\/#organization"},"potentialAction":[{"@type":"SearchAction","target":{"@type":"EntryPoint","urlTemplate":"https:\/\/kinsta.com\/fr\/?s={search_term_string}"},"query-input":{"@type":"PropertyValueSpecification","valueRequired":true,"valueName":"search_term_string"}}],"inLanguage":"fr-FR"},{"@type":"Organization","@id":"https:\/\/kinsta.com\/fr\/#organization","name":"Kinsta","url":"https:\/\/kinsta.com\/fr\/","logo":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/","url":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","contentUrl":"https:\/\/kinsta.com\/fr\/wp-content\/uploads\/sites\/4\/2023\/12\/kinsta-logo.jpeg","width":500,"height":500,"caption":"Kinsta"},"image":{"@id":"https:\/\/kinsta.com\/fr\/#\/schema\/logo\/image\/"},"sameAs":["https:\/\/www.facebook.com\/kinstafrance\/","https:\/\/x.com\/kinsta_fr","https:\/\/www.instagram.com\/kinstahosting\/","https:\/\/www.linkedin.com\/company\/kinsta\/","https:\/\/www.pinterest.com\/kinstahosting\/","https:\/\/www.youtube.com\/c\/Kinsta"]},{"@type":"Person","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/3bc8c901f2ccaa0d9f04d20355a538c1","name":"Brian Li","image":{"@type":"ImageObject","inLanguage":"fr-FR","@id":"https:\/\/kinsta.com\/fr\/#\/schema\/person\/image\/","url":"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g","contentUrl":"https:\/\/secure.gravatar.com\/avatar\/1c444780ab66925cacf9d02bc95c56be?s=96&d=mm&r=g","caption":"Brian Li"},"description":"Brian has been a WordPress user for over 10 years, and enjoys sharing his knowledge with the community. In his free time, Brian enjoys playing the piano and exploring Tokyo with his camera. Connect with Brian on his website at brianli.com.","sameAs":["https:\/\/brianli.com","https:\/\/x.com\/bwhli"],"url":"https:\/\/kinsta.com\/fr\/blog\/author\/brianli\/"}]}},"acf":[],"_links":{"self":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/49207","targetHints":{"allow":["GET"]}}],"collection":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts"}],"about":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/types\/post"}],"author":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/users\/125"}],"replies":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/comments?post=49207"}],"version-history":[{"count":15,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/49207\/revisions"}],"predecessor-version":[{"id":73717,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/posts\/49207\/revisions\/73717"}],"alternate":[{"embeddable":true,"hreflang":"en","title":"English","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/en"},{"embeddable":true,"hreflang":"it","title":"Italian","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/it"},{"embeddable":true,"hreflang":"es","title":"Spanish","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/es"},{"embeddable":true,"hreflang":"fr","title":"French","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/fr"},{"embeddable":true,"hreflang":"pt","title":"Portuguese","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/pt"},{"embeddable":true,"hreflang":"de","title":"German","href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/translations\/de"},{"href":"https:\/\/kinsta.com\/fr\/wp-json\/kinsta\/v1\/posts\/49207\/tree"}],"wp:featuredmedia":[{"embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media\/49210"}],"wp:attachment":[{"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/media?parent=49207"}],"wp:term":[{"taxonomy":"post_tag","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/tags?post=49207"},{"taxonomy":"topic","embeddable":true,"href":"https:\/\/kinsta.com\/fr\/wp-json\/wp\/v2\/topic?post=49207"}],"curies":[{"name":"wp","href":"https:\/\/api.w.org\/{rel}","templated":true}]}}