<?xml version="1.0" encoding="utf-8" standalone="yes"?><rss version="2.0" xmlns:atom="http://www.w3.org/2005/Atom">
    <channel>
        <title>Veille on Valérian Pyckaert</title>
        <link>https://valerian-pyckaert.dev/categories/veille/</link>
        <description>Recent content in Veille on Valérian Pyckaert</description>
        <generator>Hugo -- gohugo.io</generator>
        <language>fr-FR</language>
        <lastBuildDate>Thu, 02 Jul 2026 19:17:37 +0200</lastBuildDate><atom:link href="https://valerian-pyckaert.dev/categories/veille/index.xml" rel="self" type="application/rss+xml" /><item>
            <title>Claude Code avec Terraform</title>
            <link>https://valerian-pyckaert.dev/posts/terraform-claude-code/</link>
            <pubDate>Thu, 02 Jul 2026 19:17:37 +0200</pubDate>
            <guid>https://valerian-pyckaert.dev/posts/terraform-claude-code/</guid>
            <description>&lt;img src=&#34;https://valerian-pyckaert.dev/posts/terraform-claude-code/claude-code-terraform.png&#34; alt=&#34;Featured image of post Claude Code avec Terraform&#34; /&gt;&lt;p&gt;Même si je n&amp;rsquo;ai pas encore eu l&amp;rsquo;occasion d&amp;rsquo;écrire un article sur &lt;a class=&#34;link&#34; href=&#34;https://claude.com/fr/product/claude-code&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Claude Code&lt;/a&gt;, je l&amp;rsquo;utilise depuis quelques mois sur des projets privés et également depuis plusieurs semaines en entreprise.&lt;/p&gt;&#xA;&lt;p&gt;Dans cet article je vous partage mes tips &amp;amp; tricks pour utiliser Claude Code pour un repo Terraform, nous utiliserons encore une fois le projet &lt;a class=&#34;link&#34; href=&#34;https://github.com/Bernedotcom2312/theforge-infra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;the-forge-infra&lt;/a&gt; comme exemple.&lt;/p&gt;&#xA;&lt;h2 id=&#34;claudemd--le-point-de-départ&#34;&gt;&lt;a href=&#34;#claudemd--le-point-de-d%c3%a9part&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;CLAUDE.md : le point de départ&#xA;&lt;/h2&gt;&lt;p&gt;La première chose à faire lorsque vous avez accès à Claude Code est de créer un fichier &lt;code&gt;CLAUDE.md&lt;/code&gt; à la racine de votre projet qui servira de point d&amp;rsquo;entrée pour Claude Code et contiendra toutes les informations nécessaires pour comprendre le projet.&#xA;C&amp;rsquo;est un peu le &lt;code&gt;README.md&lt;/code&gt; de Claude.&lt;/p&gt;&#xA;&lt;p&gt;Ce fichier se doit d&amp;rsquo;être le plus complet possible, il doit contenir toutes les informations nécessaires pour comprendre le projet, son architecture, ses dépendances, ses contraintes, etc. mais aussi d&amp;rsquo;être relativement concis.&#xA;Si votre fichier contient 500 lignes, ces mêmes 500 lignes seront ingérées par Claude à chaque prompt et consommera ainsi beaucoup de tokens.&lt;/p&gt;&#xA;&lt;p&gt;Voici un exemple minimal de structure pour écrire votre premier fichier (pour un repo Terraform) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gh&#34;&gt;# CLAUDE.md&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;This file provides guidance to Claude Code (claude.ai/code) when working with code in this repository.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Project overview&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### Repository structure&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`main.tf`&lt;/span&gt;: Main Terraform configuration file.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`variables.tf`&lt;/span&gt;: File containing all Terraform variables.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`outputs.tf`&lt;/span&gt;: File containing all Terraform outputs.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; &lt;span class=&#34;sb&#34;&gt;`modules/`&lt;/span&gt;: Directory containing reusable Terraform modules.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;### Code conventions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Resources must be named using the following convention: &lt;span class=&#34;sb&#34;&gt;`&amp;lt;resource_type&amp;gt;_&amp;lt;resource_name&amp;gt;`&lt;/span&gt;. &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Commits must follow the conventional commit format: &lt;span class=&#34;sb&#34;&gt;`&amp;lt;type&amp;gt;(&amp;lt;scope&amp;gt;): &amp;lt;description&amp;gt;`&lt;/span&gt;.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;gu&#34;&gt;## Forbidden actions&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Never push directly to the main branch. Always create a feature branch and submit a pull request for review./&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Never use hardcoded values in Terraform files. Always use variables or data sources.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Never store sensitive information in the repository. Use a secure secrets management solution instead./&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;les-skills&#34;&gt;&lt;a href=&#34;#les-skills&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Les skills&#xA;&lt;/h2&gt;&lt;p&gt;Cette feature permet de décrire à Claude comment interagir avec notre repo pour cette tâche, en fonction du contexte il sera capable de déterminer si il doit utiliser un skill ou non, et si oui lequel.&lt;/p&gt;&#xA;&lt;p&gt;Voici quelques exemples que j&amp;rsquo;utilise sur le repo d&amp;rsquo;infra du projet &lt;code&gt;TheForge&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;h3 id=&#34;create-module&#34;&gt;&lt;a href=&#34;#create-module&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Create-module&#xA;&lt;/h3&gt;&lt;p&gt;Il n&amp;rsquo;est pas rare d&amp;rsquo;avoir à créer des modules Terraform, c&amp;rsquo;est pourquoi j&amp;rsquo;ai créé ce skill pour automatiser la partie rébarbative : création des fichiers de bases, variables, outputs, README, etc.&#xA;Claude me fournit aussi la structure de base du module sur laquelle je peux ensuite faire du fine tuning.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;.claude/skills/create-module/SKILL.md&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;create-module&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Create a new Terraform module. Use this skill when user asks to create a new Terraform module with a standard file structure.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create a new Terraform module scaffold. The module name comes from &lt;span class=&#34;sb&#34;&gt;`$ARGUMENTS`&lt;/span&gt; (kebab-case). If empty, ask the user for the name before proceeding.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Create the directory &lt;span class=&#34;sb&#34;&gt;`modules/&amp;lt;name&amp;gt;/`&lt;/span&gt; with exactly these five files:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`modules/&amp;lt;name&amp;gt;/main.tf`&lt;/span&gt;**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`modules/&amp;lt;name&amp;gt;/variables.tf`&lt;/span&gt;**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`modules/&amp;lt;name&amp;gt;/outputs.tf`&lt;/span&gt;**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;ge&#34;&gt;**&lt;/span&gt;&lt;span class=&#34;sb&#34;&gt;`modules/&amp;lt;name&amp;gt;/README.md`&lt;/span&gt;**&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Check https://registry.terraform.io/ to fill those files with the appropriate content for a Terraform module.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;You must use the latest version for the given provider if appropriate, pin the exact version (wildcard versions are not allowed). &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Enrich the &lt;span class=&#34;sb&#34;&gt;`README.md`&lt;/span&gt; with a description of the module, usage instructions, and examples.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Do not add any other files or directories beyond these five.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;After creating the files, list them with their relative paths, then remind the user to:&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;-&lt;/span&gt; Ensure every variable in &lt;span class=&#34;sb&#34;&gt;`variables.tf`&lt;/span&gt; has both &lt;span class=&#34;sb&#34;&gt;`description`&lt;/span&gt; and &lt;span class=&#34;sb&#34;&gt;`type`&lt;/span&gt; set.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Résultat lorsqu&amp;rsquo;on demande à Claude de créer un module via un prompt :&lt;/p&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;crées un module google_storage_bucket&#xA;&lt;img alt=&#34;Claude code create module skill&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://valerian-pyckaert.dev/claude-code-create-module-skill.png&#34;&gt;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;create-pr&#34;&gt;&lt;a href=&#34;#create-pr&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Create PR&#xA;&lt;/h3&gt;&lt;p&gt;Ce skill a pour but de créer la PR à partir d&amp;rsquo;une branche et faire un summary des changements pour faciliter la revue de mes collègues.&#xA;J&amp;rsquo;ai également ajouté une checklist pour m&amp;rsquo;assurer que je n&amp;rsquo;ai rien oublié avant de créer la PR, accélérant une fois encore la boucle de feedback.&lt;/p&gt;&#xA;&lt;p&gt;&lt;em&gt;.claude/skills/create-pr/SKILL.md&lt;/em&gt;&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;name&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;create-pr&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nt&#34;&gt;description&lt;/span&gt;&lt;span class=&#34;p&#34;&gt;:&lt;/span&gt;&lt;span class=&#34;w&#34;&gt; &lt;/span&gt;&lt;span class=&#34;l&#34;&gt;Create a new Github Pull Request. Use this skill when user asks to create a new Github Pull Request.&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;nn&#34;&gt;---&lt;/span&gt;&lt;span class=&#34;w&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;Pre-requisites before creating a PR :&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Ensure no sensitive information is present in the code changes (e.g., passwords, API keys, secrets).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Run terraform fmt, terraform validate to ensure the code is properly formatted and valid.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;*&lt;/span&gt; Ensure each commit message follows the conventional commit format (e.g., feat: add new feature, fix: fix bug, docs: update documentation).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;1.&lt;/span&gt; Create a new Github Pull Request for the current branch. The title of the PR comes from &lt;span class=&#34;sb&#34;&gt;`$ARGUMENTS`&lt;/span&gt;. If empty, ask the user for the title before proceeding.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;2.&lt;/span&gt; The PR description should be generated based on the changes in the current branch. If &lt;span class=&#34;sb&#34;&gt;`$ARGUMENTS`&lt;/span&gt; contains a description, use it instead.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;3.&lt;/span&gt; The PR should be created against the default branch of the repository (usually &lt;span class=&#34;sb&#34;&gt;`main`&lt;/span&gt; or &lt;span class=&#34;sb&#34;&gt;`master`&lt;/span&gt;).&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;&lt;span class=&#34;k&#34;&gt;4.&lt;/span&gt; After creating the PR, output the URL of the newly created PR.&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;crées moi la Pull request &amp;ldquo;add claude config&amp;rdquo;&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;claude-code-pr-created&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://valerian-pyckaert.dev/claude-code-pr-created.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;conclusion&#34;&gt;&lt;a href=&#34;#conclusion&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Conclusion&#xA;&lt;/h2&gt;&lt;p&gt;Comme nous l&amp;rsquo;avons vu, ces fichiers de configuration agentic sont de simples fichiers markdown et sont facilement partageables.&#xA;A ce titre, il existe de nombreux repository pour partager des templates de fichiers &lt;code&gt;CLAUDE.md&lt;/code&gt;, notamment pour &lt;a class=&#34;link&#34; href=&#34;http://github.com/antonbabenko/terraform-skill/blob/master/CLAUDE.md&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Terraform&lt;/a&gt;.&#xA;Je ne les utilisent pas encore pour le moment parce que je ne souhaite pas m&amp;rsquo;imposer de contraintes supplémentaires, je préfère mettre en place ma code base et ma stratégie et expliquer à l&amp;rsquo;agent comment je souhaite qu&amp;rsquo;il interagisse avec mon code.&lt;/p&gt;&#xA;&lt;p&gt;Vous pouvez retrouver le repo d&amp;rsquo;exemple que j&amp;rsquo;ai utilisé pour cet article sur &lt;a class=&#34;link&#34; href=&#34;https://github.com/Bernedotcom2312/theforge-infra&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;GitHub&lt;/a&gt;.&lt;/p&gt;&#xA;</description>
        </item><item>
            <title>Marp</title>
            <link>https://valerian-pyckaert.dev/posts/marp/</link>
            <pubDate>Sun, 14 Jun 2026 15:00:08 +0200</pubDate>
            <guid>https://valerian-pyckaert.dev/posts/marp/</guid>
            <description>&lt;img src=&#34;https://valerian-pyckaert.dev/posts/marp/marp.png&#34; alt=&#34;Featured image of post Marp&#34; /&gt;&lt;p&gt;Je vous ai précédemment présenté &lt;a class=&#34;link&#34; href=&#34;https://github.com/erictli/scratch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Scratch&lt;/a&gt; qui permet d&amp;rsquo;éditer ses notes en Markdown et de les versionner sur Git.&lt;/p&gt;&#xA;&lt;p&gt;Aujourd&amp;rsquo;hui, je vous propose de découvrir &lt;a class=&#34;link&#34; href=&#34;https://marp.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Marp&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;h2 id=&#34;quest-ce-que-cest-&#34;&gt;&lt;a href=&#34;#quest-ce-que-cest-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qu&amp;rsquo;est-ce que c&amp;rsquo;est ?&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://marp.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Marp&lt;/a&gt; est un outil open-source qui permet de créer des présentations à partir de fichiers Markdown.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pourquoi-choisir-marp-&#34;&gt;&lt;a href=&#34;#pourquoi-choisir-marp-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Pourquoi choisir Marp ?&#xA;&lt;/h2&gt;&lt;p&gt;Son principal atout est de s&amp;rsquo;appuyer sur le langage Markdown ce qui le rend accessible à la grange majorité des développeurs.&#xA;Pour ma part c&amp;rsquo;est mon langage de prédilection pour rédiger mes notes et documentations. Ce site est d&amp;rsquo;ailleurs entièrement rédigé en Markdown.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Intégration dans Visual Studio Code :&lt;/strong&gt; Marp propose une extension pour &lt;a class=&#34;link&#34; href=&#34;https://marketplace.visualstudio.com/items?itemName=marp-team.marp-vscode&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Visual Studio Code&lt;/a&gt; qui permet de créer et d&amp;rsquo;éditer des présentations directement depuis l&amp;rsquo;éditeur.&lt;/p&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Marp for VsCode&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://valerian-pyckaert.dev/marp-for-vscode.png&#34;&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Exportation en PDF :&lt;/strong&gt; &lt;a class=&#34;link&#34; href=&#34;https://github.com/marp-team/marp-cli&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Marp CLI&lt;/a&gt; permet d&amp;rsquo;exporter vos présentations au format PDF, ce qui est pratique pour les partager ou les imprimer.&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Thèmes personnalisables :&lt;/strong&gt; Marp offre la possibilité de personnaliser l&amp;rsquo;apparence de vos présentations grâce à des thèmes prédéfinis ou en créant vos propres styles CSS.&#xA;Mon thème favori étant &amp;ldquo;pine-rose-moon&amp;rdquo; :&lt;/p&gt;&#xA;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://rainbowflesh.github.io/html/rose-pine-moon.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Live preview&lt;/a&gt;&lt;/p&gt;&#xA;&lt;p&gt;&lt;strong&gt;Marpit :&lt;/strong&gt; Marp est un écosystème (core, cli, marp for vscode) basé sur &lt;a class=&#34;link&#34; href=&#34;https://marpit.marp.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Marpit&lt;/a&gt;, un framework qui permet de créer des présentations en HTML et CSS à partir de Markdown. Cela signifie que vous pouvez utiliser toutes les fonctionnalités de Marpit pour personnaliser vos présentations.&lt;/p&gt;&#xA;&lt;h2 id=&#34;exemple&#34;&gt;&lt;a href=&#34;#exemple&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Exemple&#xA;&lt;/h2&gt;&lt;p&gt;Si comme moi vous avez installé l&amp;rsquo;extension pour VsCode, vous pouvez créer un fichier &lt;code&gt;.md&lt;/code&gt; et commencer à rédiger votre présentation.&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-markdown&#34; data-lang=&#34;markdown&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;--- &#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;marp: true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;&lt;img alt=&#34;Marp example&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://valerian-pyckaert.dev/marp-example.gif&#34;&gt;&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Marp &lt;a class=&#34;link&#34; href=&#34;https://marp.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;site officiel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Marpit &lt;a class=&#34;link&#34; href=&#34;https://marpit.marp.app/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;site officiel&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;Pine Rose Moon &lt;a class=&#34;link&#34; href=&#34;https://rainbowflesh.github.io/html/rose-pine-moon.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;thème&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>Scratch - Vos notes en markdown</title>
            <link>https://valerian-pyckaert.dev/posts/scratch/</link>
            <pubDate>Sat, 13 Jun 2026 19:00:00 +0200</pubDate>
            <guid>https://valerian-pyckaert.dev/posts/scratch/</guid>
            <description>&lt;img src=&#34;https://valerian-pyckaert.dev/posts/scratch/scratch.png&#34; alt=&#34;Featured image of post Scratch - Vos notes en markdown&#34; /&gt;&lt;h2 id=&#34;quest-ce-que-cest-&#34;&gt;&lt;a href=&#34;#quest-ce-que-cest-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qu&amp;rsquo;est-ce que c&amp;rsquo;est ?&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/erictli/scratch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Scratch&lt;/a&gt; est un outil de prise de notes que j&amp;rsquo;ai découvert récemment via un article sur Korben.&#xA;Il permet l&amp;rsquo;édition de notes en mode WYSIWYG tout en étant &lt;code&gt;markdown based&lt;/code&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Parmi les principales features on trouve :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Support des charts Mermaid&lt;/li&gt;&#xA;&lt;li&gt;Integration git&lt;/li&gt;&#xA;&lt;li&gt;Support IA : Claude Code, Codex, etc.&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&lt;p&gt;&lt;img alt=&#34;Scratch example&#34; loading=&#34;lazy&#34; sizes=&#34;(max-width: 767px) calc(100vw - 30px), (max-width: 1023px) 700px, (max-width: 1279px) 950px, 1232px&#34; src=&#34;https://valerian-pyckaert.dev/scratch-example.png&#34;&gt;&lt;/p&gt;&#xA;&lt;h2 id=&#34;quest-ce-que-jen-pense-&#34;&gt;&lt;a href=&#34;#quest-ce-que-jen-pense-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qu&amp;rsquo;est ce que j&amp;rsquo;en pense ?&#xA;&lt;/h2&gt;&lt;p&gt;Je l&amp;rsquo;utilise depuis quelques jours et c&amp;rsquo;est vraiment agréable à utiliser. Son interface est très similaire à l&amp;rsquo;application &amp;ldquo;Notes&amp;rdquo; d&amp;rsquo;Apple, ce qui le rend très intuitif.&#xA;Les fonctionnalités sont assez basiques mais suffisent amplement pour mes besoins de prise de notes, j&amp;rsquo;ai pu essayer Notion et Obsidian mais je les trouvent trop complexes pour ce que je veux faire, je passe plus de temps à configurer l&amp;rsquo;outil et organiser mes notes.&lt;/p&gt;&#xA;&lt;p&gt;Je vais continuer de l&amp;rsquo;utiliser pour voir comment il évolue, la seule chose que j&amp;rsquo;ai à lui reprocher à ce jour c&amp;rsquo;est que c&amp;rsquo;est un énième outil à installer.&#xA;J&amp;rsquo;aurai aimé une intégration native dans les IDE (VSCode, JetBrains, etc.) pour pouvoir prendre des notes directement dans mon environnement de travail.&lt;/p&gt;&#xA;&lt;hr&gt;&#xA;&lt;p&gt;&lt;strong&gt;Sources&lt;/strong&gt;&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://korben.info/scratch-notes-markdown-offline-first.html&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Article de Korben&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://github.com/erictli/scratch&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Scratch repo&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item><item>
            <title>Hugo</title>
            <link>https://valerian-pyckaert.dev/posts/hugo/</link>
            <pubDate>Wed, 29 Apr 2026 11:30:03 +0000</pubDate>
            <guid>https://valerian-pyckaert.dev/posts/hugo/</guid>
            <description>&lt;img src=&#34;https://valerian-pyckaert.dev/posts/hugo/hugo.svg&#34; alt=&#34;Featured image of post Hugo&#34; /&gt;&lt;h2 id=&#34;quest-ce-que-cest-&#34;&gt;&lt;a href=&#34;#quest-ce-que-cest-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Qu&amp;rsquo;est-ce que c&amp;rsquo;est ?&#xA;&lt;/h2&gt;&lt;p&gt;&lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo&lt;/a&gt; est un générateur de site statique open-source écrit en Go. Il permet de créer des sites web rapides et performants sans avoir besoin d&amp;rsquo;une base de données ou d&amp;rsquo;un serveur dynamique. Hugo est particulièrement apprécié pour sa simplicité d&amp;rsquo;utilisation, sa flexibilité et sa rapidité de génération.&lt;/p&gt;&#xA;&lt;h2 id=&#34;pourquoi-choisir-hugo-&#34;&gt;&lt;a href=&#34;#pourquoi-choisir-hugo-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Pourquoi choisir Hugo ?&#xA;&lt;/h2&gt;&lt;p&gt;J&amp;rsquo;applique un principe fondamental dès qu&amp;rsquo;il s&amp;rsquo;agit de choisir un outil : KISS (Keep It Simple, Stupid).&#xA;Hugo s&amp;rsquo;appuie sur du markdown pour la rédaction de contenu, c&amp;rsquo;est un format que j&amp;rsquo;apprécie déjà pour la documentation technique.&#xA;Les commandes pour build, déployer ou ajouter du contenu pré-formaté sont d&amp;rsquo;une simplicité enfantine, ce qui me permet de me concentrer sur la création de contenu plutôt que sur la configuration de l&amp;rsquo;outil.&lt;/p&gt;&#xA;&lt;p&gt;Enfin, Hugo est largement supporté par la communauté et peut être déployé partout facilement : Github Pages, Netlify, AWS/GCP/Azure, etc.&lt;/p&gt;&#xA;&lt;p&gt;Pour ma part j&amp;rsquo;ai choisi de m&amp;rsquo;appuyer sur Cloudflare Pages pour héberger mon site.&lt;/p&gt;&#xA;&lt;p&gt;Convaincus ? Alors passons à la pratique !&lt;/p&gt;&#xA;&lt;h3 id=&#34;créer-son-premier-site&#34;&gt;&lt;a href=&#34;#cr%c3%a9er-son-premier-site&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Créer son premier site&#xA;&lt;/h3&gt;&lt;p&gt;Pré-requis :&lt;/p&gt;&#xA;&lt;ul&gt;&#xA;&lt;li&gt;Go &amp;amp; Git installés sur votre machine&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;&#xA;    &lt;blockquote&gt;&#xA;        &lt;p&gt;Je ne m&amp;rsquo;attarderai pas sur l&amp;rsquo;installation de Go et Git, il existe de nombreux tutoriels en ligne pour cela. Assurez-vous simplement d&amp;rsquo;avoir les dernières versions installées.&lt;/p&gt;&#xA;&#xA;    &lt;/blockquote&gt;&#xA;&lt;h3 id=&#34;installer-hugo&#34;&gt;&lt;a href=&#34;#installer-hugo&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Installer Hugo&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;go install github.com/gohugoio/hugo@latest&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo version&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Vous devriez obtenir quelque chose de la sorte :&lt;/p&gt;&#xA;&lt;p&gt;&lt;code&gt;hugo v0.160.1-d6bc8165e62b29d7d70ede01ed01d0f88de327e6+extended windows/amd64 BuildDate=2026-04-08T14:02:42Z VendorInfo=gohugoio&lt;/code&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;créer-un-nouveau-projet&#34;&gt;&lt;a href=&#34;#cr%c3%a9er-un-nouveau-projet&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Créer un nouveau projet&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo new site mon-site&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cd mon-site&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;architecture&#34;&gt;&lt;a href=&#34;#architecture&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Architecture&#xA;&lt;/h3&gt;&lt;p&gt;Voici l&amp;rsquo;architecture de base d&amp;rsquo;un projet Hugo :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;mon-site/&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── archetypes/ # modèles de contenu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── content/ # fichiers de contenu (articles, pages, etc.)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── data/ # données structurées (YAML, JSON, etc.)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── layouts/ # templates pour le rendu&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── static/ # fichiers statiques (images, CSS, JS)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── themes/ # thèmes pour le design&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;├── config.toml/.yaml # configuration du site&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;└── ... # autres fichiers et dossiers&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;lancer-le-serveur-de-développement&#34;&gt;&lt;a href=&#34;#lancer-le-serveur-de-d%c3%a9veloppement&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Lancer le serveur de développement&#xA;&lt;/h3&gt;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo server&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Félicitations, votre site est désormais accessible via &lt;a class=&#34;link&#34; href=&#34;http://localhost:1313&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;http://localhost:1313&lt;/a&gt;&lt;/p&gt;&#xA;&lt;h3 id=&#34;configuration-git&#34;&gt;&lt;a href=&#34;#configuration-git&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Configuration Git&#xA;&lt;/h3&gt;&lt;p&gt;Initions un nouveau dépôt Git et poussons notre projet sur GitHub (ou toute autre plateforme de votre choix) :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git init&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git remote add origin https://github.com/&amp;lt;your-gh-username&amp;gt;/&amp;lt;repository-name&amp;gt;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git branch -M main&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git push -u origin main&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h2 id=&#34;personnalisation&#34;&gt;&lt;a href=&#34;#personnalisation&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Personnalisation&#xA;&lt;/h2&gt;&lt;h3 id=&#34;ajouter-un-thème&#34;&gt;&lt;a href=&#34;#ajouter-un-th%c3%a8me&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Ajouter un thème&#xA;&lt;/h3&gt;&lt;p&gt;Il existe une multitude de thèmes disponibles sur &lt;a class=&#34;link&#34; href=&#34;https://themes.gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo Themes&lt;/a&gt;. Pour en ajouter un à votre projet, suivez les instructions spécifiques à chaque thème.&lt;/p&gt;&#xA;&lt;p&gt;En ce qui me concerne j&amp;rsquo;ai choisi le thème &lt;em&gt;PaperMod&lt;/em&gt;, que j&amp;rsquo;ai personnalisé pour répondre à mes besoins.&lt;/p&gt;&#xA;&lt;p&gt;Voyons ensemble comment l&amp;rsquo;installer et le configurer&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;cd mon-site&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule add --depth=1 https://github.com/adityatelange/hugo-PaperMod.git themes/PaperMod&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;git submodule update --init --recursive # needed when you reclone your repo (submodules may not get cloned automatically)&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;NB: Bien que je ne sois pas un grand fan de Git Submodules, c&amp;rsquo;est la méthode recommandée par les auteurs du thème pour l&amp;rsquo;installation et la mise à jour.&lt;/p&gt;&#xA;&lt;p&gt;Dernière étape, il faut indiquer à Hugo d&amp;rsquo;utiliser ce thème en modifiant le fichier &lt;code&gt;config.toml&lt;/code&gt; :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;theme: PaperMod&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;C&amp;rsquo;est terminé, un petit coup de &lt;code&gt;hugo server&lt;/code&gt; et vous devriez voir votre nouveau thème en action !&lt;/p&gt;&#xA;&lt;h3 id=&#34;archetypes&#34;&gt;&lt;a href=&#34;#archetypes&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Archetypes&#xA;&lt;/h3&gt;&lt;p&gt;Il est également possible de créer des templates  de contenu pour faciliter la création de nouvelles pages ou articles.&#xA;Par exemple, pour créer un template d&amp;rsquo;article de blog, créez un fichier &lt;code&gt;blog.md&lt;/code&gt; dans le dossier &lt;code&gt;archetypes&lt;/code&gt; avec le contenu suivant :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;date: &amp;#39;{{ .Date }}&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;draft: true&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;title: &amp;#39;{{ replace .File.ContentBaseName &amp;#34;-&amp;#34; &amp;#34; &amp;#34; | title }}&amp;#39;&#xA;&lt;/span&gt;&lt;/span&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;---&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;p&gt;Maintenant, lorsque vous souhaitez créer un nouvel article de blog, il vous suffit d&amp;rsquo;exécuter la commande suivante :&lt;/p&gt;&#xA;&lt;div class=&#34;highlight&#34;&gt;&lt;pre tabindex=&#34;0&#34; class=&#34;chroma&#34;&gt;&lt;code class=&#34;language-fallback&#34; data-lang=&#34;fallback&#34;&gt;&lt;span class=&#34;line&#34;&gt;&lt;span class=&#34;cl&#34;&gt;hugo new posts/mon-nouvel-article.md -k blog&#xA;&lt;/span&gt;&lt;/span&gt;&lt;/code&gt;&lt;/pre&gt;&lt;/div&gt;&lt;h3 id=&#34;on-déploie-&#34;&gt;&lt;a href=&#34;#on-d%c3%a9ploie-&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;On déploie ?&#xA;&lt;/h3&gt;&lt;p&gt;Ce n&amp;rsquo;est pas tout de faire tourner son projet en local, encore faut-il le rendre accessible au monde entier !&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai déjà parlé brièvement de l&amp;rsquo;hébergement sur différentes plateformes plus tôt dans l&amp;rsquo;article.&#xA;Pour ma part j&amp;rsquo;ai choisi de m&amp;rsquo;appuyer sur Cloudflare Pages, qui offre une intégration transparente avec GitHub et une configuration très simple.&lt;/p&gt;&#xA;&lt;p&gt;J&amp;rsquo;ai quelques projets d&amp;rsquo;articles autour de Cloudflare en tête donc autant commencer à m&amp;rsquo;y familiariser dès maintenant !&lt;/p&gt;&#xA;&lt;h2 id=&#34;hébergement&#34;&gt;&lt;a href=&#34;#h%c3%a9bergement&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Hébergement&#xA;&lt;/h2&gt;&lt;p&gt;Là encore c&amp;rsquo;est très simple et je trouve la documentation officielle d&amp;rsquo;Hugo très bien faite à ce sujet : &lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/host-and-deploy/host-on-cloudflare/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo Deployment&lt;/a&gt;.&lt;/p&gt;&#xA;&lt;p&gt;Si vous suivez scrupuleusement les étapes votre site devrait être en ligne en quelques minutes seulement !&lt;/p&gt;&#xA;&lt;h2 id=&#34;sources&#34;&gt;&lt;a href=&#34;#sources&#34; class=&#34;header-anchor&#34;&gt;&lt;/a&gt;Sources&#xA;&lt;/h2&gt;&lt;ul&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/documentation/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo Documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://themes.gohugo.io/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo Themes&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://adityatelange.github.io/hugo-PaperMod/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;PaperMod Documentation&lt;/a&gt;&lt;/li&gt;&#xA;&lt;li&gt;&lt;a class=&#34;link&#34; href=&#34;https://gohugo.io/host-and-deploy/host-on-cloudflare/&#34;  target=&#34;_blank&#34; rel=&#34;noopener&#34;&#xA;    &gt;Hugo Deployment&lt;/a&gt;&lt;/li&gt;&#xA;&lt;/ul&gt;&#xA;</description>
        </item></channel>
</rss>
