Faire son Blog avec MkDocs et github actions¶
Dans ce billet de blog, j'essayerai de retracer créer et déployer un blog en utilisant MkDocs, un outil qui facilite la création de belles documentations grâce à des fichiers markdown
. Nous allons couvrir chaque étape pour t'aider à mettre ton blog en ligne.
Ce dont tu as besoin¶
- Compte GitHub : Tu auras besoin d’un compte GitHub pour stocker et déployer ton blog.
- Connaissances de Base : Une familiarité avec GitHub, Docker et quelques bases de la ligne de commande sera utile.
Étape 1 : Configuration de ton blog¶
-
Créer un répertoire gitHub :
- Va sur GitHub et connecte-toi.
- Clique sur New pour créer un nouveau répertoire.
- Nomme ton répertoire, par exemple
mon-blog
. - Choisis Public ou Private selon ta préférence.
- Clique sur Create repository.
-
Installer MkDocs localement :
- Ouvre ton terminal ou la ligne de commande.
- Installe MkDocs avec pip :
-
Configurer ton blog :
- Navigue jusqu’au dossier où tu souhaites créer ton blog.
- Exécute :
- Cela crée un dossier nommé
mon-blog
avec les fichiers de base pour ton blog.
-
Personnaliser Ton Blog :
- Ouvre le fichier
mkdocs.yml
dans le dossier de ton blog. C’est ici que tu définis le nom et le thème de ton blog. -
Modifie le fichier
mkdocs.yml
pour qu’il ressemble à ceci :
- Ajoute du contenu en modifiant
index.md
ou en créant de nouveaux fichiers Markdown dans le dossierdocs
.
- Ouvre le fichier
Étape 2 : Construire et déployer avec docker¶
-
Créer une Image Docker :
- Rédige un Dockerfile pour inclure MkDocs et les outils nécessaires.
-
Voici un Dockerfile de base :
# Utiliser l'image Python 3.12 FROM python:3.12-slim # Définir le répertoire de travail WORKDIR /app # Installer MkDocs et les plugins RUN pip install mkdocs mkdocs-material ghp-import # Copier les fichiers du blog dans l'image Docker COPY . /app # Définir la commande pour construire MkDocs CMD ["mkdocs", "build", "--verbose", "--site-dir", "site"]
- Construis l'image Docker avec :
-
Déployer ton blog :
-
Crée un fichier workflow GitHub Actions pour automatiser le déploiement. Sauvegarde le fichier suivant sous
.github/workflows/deploy.yml
dans ton répertoire :name: Build and Deploy MkDocs Site on: push: branches: - main pull_request: branches: - main workflow_dispatch: env: IMAGE_NAME: mon-blog-image IMAGE_TAG: latest jobs: build-and-deploy: runs-on: ubuntu-latest steps: - name: Checkout code uses: actions/checkout@v3 - name: Build MkDocs site run: | docker run --rm -v ${{ github.workspace }}:/app -w /app ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} mkdocs build --verbose --site-dir site - name: Deploy to GitHub Pages if: github.ref == 'refs/heads/main' run: | docker run --rm -v ${{ github.workspace }}:/app -w /app ${{ env.IMAGE_NAME }}:${{ env.IMAGE_TAG }} /bin/bash -c " ghp-import -n -p -f site -r https://x-access-token:${{ secrets.GITHUB_TOKEN }}@github.com/${{ github.repository }}.git -b gh-pages" - name: Clean up Docker resources run: docker system prune -f
-
Étapes finales¶
-
Pousser tes modifications :
- Commit et pousse tes modifications vers GitHub :
-
Assurer les permissions correctes pour le déploiement :
- Pour éviter les problèmes de permission avec GitHub Actions, assure-toi que le
GITHUB_TOKEN
dispose des permissions nécessaires. - Vérifie les paramètres du répertoire :
- Va sur ton répertoire GitHub.
- Navigue vers Settings > Actions > General.
- Sous Workflow permissions, assure-toi que Read and write permissions sont sélectionnées.
- Pour éviter les problèmes de permission avec GitHub Actions, assure-toi que le
-
Vérifier le déploiement :
- Va sur ton répertoire GitHub.
- Navigue vers Settings > Pages.
- Assure-toi que la source est définie sur la branche
gh-pages
.
Ton blog devrait maintenant être en ligne ! Visite l’URL fournie dans les paramètres de GitHub Pages pour voir ton site.
Conclusion¶
Félicitations ! Tu as construit et déployé un blog en utilisant MkDocs et Docker. Ce guide vise à simplifier le processus pour que tu puisses facilement partager ton contenu en ligne. Bon blogging !
Pour un exemple complet, jette un œil à mon projet : Répertoire GitHub.
Références:¶
- https://squidfunk.github.io/mkdocs-material/getting-started/
MAJ¶
- 08/09/2024 : Traduire en français
- 14/09/2024 : Ajout de références