Développement d'un site web portfolio et de présentation basé sur le framework Hugo
Après avoir terminé mon stage avec ma soutenance en septembre 2024, j’ai commencé à développer ce site pour présenter mes projets et compétences. Ce portfolio, construit avec le framework Hugo, met en valeur mes réalisations professionnelles et personnelles.
Hugo est un framework moderne de génération de sites statiques, largement apprécié pour sa rapidité et sa simplicité. Voici quelques points clés concernant Hugo :
Vitesse : Hugo est connu pour sa capacité à générer des sites web à une vitesse impressionnante, ce qui le rend idéal pour les projets nécessitant des mises à jour fréquentes.
Simplicité : Avec Hugo, la création de contenu est simplifiée grâce à l’utilisation de fichiers Markdown, permettant une rédaction facile et intuitive.
Flexibilité : Hugo offre une grande flexibilité grâce à son système de thèmes et de templates, permettant une personnalisation poussée du design et des fonctionnalités du site.
Communauté active : Hugo bénéficie d’une communauté active et d’une documentation complète, facilitant l’apprentissage et le dépannage.
Multilingue : Hugo supporte nativement la création de sites multilingues, ce qui est un atout majeur pour les projets internationaux.
Hugo fonctionne en convertissant le contenu écrit en Markdown et les templates en HTML statique.
Création de contenu : Les utilisateurs créent du contenu en utilisant des fichiers Markdown, ce qui permet une rédaction simple et efficace.
Templates et thèmes : Hugo utilise des templates et des thèmes pour définir l’apparence et la structure du site. Ces templates sont écrits en HTML et CSS, avec des fonctionnalités supplémentaires fournies par Hugo.
Génération du site : Lorsque vous exécutez Hugo, il compile le contenu et les templates pour générer un site web statique, prêt à être déployé sur un serveur web.
1 - Implémentation du site web
Dans cette partie, nous allons voir les aspects techniques du site web, son développement et son déploiement.
Développement
L’un des avantages de Hugo est l’utilisation de templates et de thèmes permettant la personnalisation du site. Pour développer rapidement le site, j’utilise un thème existant, “Docsy”.
Ce thème est utilisé pour :
Structurer le contenu : Docsy offre une structure claire pour organiser les documents et les sections du site, facilitant la navigation pour les utilisateurs.
Design réactif : Le thème est conçu pour être réactif, assurant une bonne expérience utilisateur sur différents appareils.
Fonctionnalités intégrées : Docsy inclut des fonctionnalités utiles comme la recherche, la navigation latérale et le support multilingue.
Durant le développement, plusieurs étapes clés ont été suivies :
Configuration initiale : Installation de Hugo et configuration du projet avec le thème Docsy.
Personnalisation : Adaptation du thème pour répondre aux besoins spécifiques du projet, y compris la modification des styles et des templates.
Création de contenu : Rédaction des pages en Markdown et organisation des sections.
Tests locaux : Utilisation de hugo server pour tester le site localement.
Déploiement
Une fois qu’une première version du site a été développée, il reste à héberger le site. L’une des solutions proposées par la documentation de Hugo est d’héberger sur GitLab. En créant un dépôt sur GitLab, on peut directement l’héberger :
Configuration du dépôt GitLab : Création d’un nouveau dépôt GitLab pour le site et configuration des fichiers de déploiement.
Configuration CI/CD : Utilisation de GitLab CI/CD pour automatiser le déploiement. Cela inclut la création d’un fichier .gitlab-ci.yml pour définir les étapes de build et de déploiement.
Hébergement : Configuration de GitLab Pages pour héberger le site, rendant le contenu accessible au public.
Le fichier .gitlab-ci.yml utilisé pour le déploiement :
stages:- build- deployvariables:HUGO_VERSION:"0.137.1"GIT_SUBMODULE_STRATEGY:recursivebefore_script:- apt-get update && apt-get install -y wget curl golang- wget https://github.com/gohugoio/hugo/releases/download/v${HUGO_VERSION}/hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz- tar -xzf hugo_extended_${HUGO_VERSION}_Linux-64bit.tar.gz -C /usr/local/bin- hugo version- curl -fsSL https://deb.nodesource.com/setup_18.x | bash -- apt-get install -y nodejsbuild:stage:buildscript:- if [ -f package.json ]; then npm install; fi- npm install -g sass- hugo --gc --minify --baseURL "$CI_PAGES_URL/"artifacts:paths:- publiconly:- mainpages:stage:deployscript:- echo "Deploying to GitLab Pages..."artifacts:paths:- publiconly:- mainenvironment:name:productionurl:$CI_PAGES_URL
De plus, j’ai pu, avec hello.cv, acheter un domaine avec mon nom pour faciliter l’accès au site. Cela permet aux visiteurs de trouver facilement mon portfolio en utilisant une URL personnalisée et professionnelle.
Pour voir le projet, suivez ce lien vers le GitLab.