From 8971d04c88ff39c1b7217aa9ce1b894a5c23ae46 Mon Sep 17 00:00:00 2001 From: mathieu Date: Sun, 19 Jul 2026 23:47:59 +0200 Subject: [PATCH] Initialisation du projet avec init de hugo. Choix du theme nojs. --- .env.exemple | 29 +++++++++++++++++ .gitignore | 11 +++++++ README.md | 34 +++++++++++++++++++- script/create.sh | 64 ++++++++++++++++++++++++++++++++++++++ script/dev.sh | 27 ++++++++++++++++ script/hugo.sh | 26 ++++++++++++++++ script/init.sh | 45 +++++++++++++++++++++++++++ script/publish.sh | 36 +++++++++++++++++++++ site/archetypes/default.md | 5 +++ site/go.mod | 5 +++ site/go.sum | 2 ++ site/hugo.toml | 4 +++ site/package.json | 5 +++ 13 files changed, 292 insertions(+), 1 deletion(-) create mode 100644 .env.exemple create mode 100644 .gitignore create mode 100755 script/create.sh create mode 100755 script/dev.sh create mode 100755 script/hugo.sh create mode 100755 script/init.sh create mode 100755 script/publish.sh create mode 100644 site/archetypes/default.md create mode 100644 site/go.mod create mode 100644 site/go.sum create mode 100644 site/hugo.toml create mode 100644 site/package.json diff --git a/.env.exemple b/.env.exemple new file mode 100644 index 0000000..2de1ff2 --- /dev/null +++ b/.env.exemple @@ -0,0 +1,29 @@ +# Hugo figé en 164 +HUGO_VERSION=0.164.0 +HUGO_IMAGE=ghcr.io/gohugoio/hugo + +# Docker +CONTAINER_NAME=debugHugo + +# Hugo +HUGO_PORT=1313 +#HUGO_THEME=github.com/hugo-sid/hugo-blog-awesome +HUGO_THEME=gitlab.com/andy.sb/nojs +#HUGO_THEME=github.com/athul/archie + +# Dossiers +SITE_DIR=site +CACHE_DIR=hugo_cache +PUBLISH_DIR=publish + +# Nom du site (rempli par script/create.sh) +SITE_NAME=sillycone-village + +# URL de production +URL_SITE=https://monsite.be/ + +# Publier +SSH_USER=mon_user +SSH_HOST=monsite.be +SSH_PORT=22 +SSH_REMOTE_PATH=www diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..118c3d4 --- /dev/null +++ b/.gitignore @@ -0,0 +1,11 @@ +hugo_cache/ +publish/ +.env +.vscode +site/_vendor/ +site/public/ +site/.hugo_build.lock +site/node_modules/ +site/resources/ +site/package-lock.json +site/packages/hugoautogen/ diff --git a/README.md b/README.md index 0cdff92..f60c90b 100644 --- a/README.md +++ b/README.md @@ -1,2 +1,34 @@ -# Site +# Site Sillycone-village +- [Hugo](https://gohugo.io/) en version 160 + [thème nojs](https://nojs.andy.sb/) +- Toute la création via images Docker +- Pas de js +- Image en AVIF et fallback en JPEG +- Site vitrine +- Annonce de moins d'un mois sur page principale +- Menus: + 1. Accueil + 2. Annonces + 3. Projets + 4. À propos + 5. Contact + +## Environment .env.example + +Modifier `.env.exemple` en `.env` + +## Scripts +### create.sh +`./script/create.sh` : Permet de créer correctement le site from scratch dans _site_ de _.env_ + +### init.sh +`./script/init.sh` : Initialise Hugo avec les bons modules Go. + +### dev.sh +`./script/dev.sh` : Lance le site avec la commande `hugo server` + +### hugo.sh +`./script/hugo.sh` : Si jamais je dois lancer une commande spécifique de hugo. + +### publish.sh +`./script/publish.sh` : Publie le site dans le _PUBLISH_DIR_ de _.env_ \ No newline at end of file diff --git a/script/create.sh b/script/create.sh new file mode 100755 index 0000000..debb23c --- /dev/null +++ b/script/create.sh @@ -0,0 +1,64 @@ +#!/usr/bin/env bash + +set -euo pipefail + +SCRIPT_DIR="$(cd "$(dirname "${BASH_SOURCE[0]}")" && pwd)" +PROJECT_DIR="$(dirname "${SCRIPT_DIR}")" + +if [[ ! -f "${PROJECT_DIR}/.env" ]]; then + echo "Erreur : fichier .env introuvable." + exit 1 +fi + +set -a +source "${PROJECT_DIR}/.env" +set +a + +IMG_NAME="${HUGO_IMAGE}:v${HUGO_VERSION}" + +read -rp "Nom du site (exemple: fermebossejauque) : " NEW_SITE_NAME + +if [[ -z "${NEW_SITE_NAME}" ]]; then + echo "Erreur : nom du site vide." + exit 1 +fi + +if [[ -d "${PROJECT_DIR}/${SITE_DIR}" ]] && [[ "$(ls -A "${PROJECT_DIR}/${SITE_DIR}")" ]]; then + echo "Erreur : ${SITE_DIR} existe déjà et n'est pas vide." + exit 1 +fi + +mkdir -p "${PROJECT_DIR}/${SITE_DIR}" + +docker pull "${IMG_NAME}" + +docker run --rm -it \ + --name "${CONTAINER_NAME}-create" \ + --entrypoint /bin/sh \ + -u 0:0 \ + -v "${PROJECT_DIR}:/src" \ + "${IMG_NAME}" \ + -c " + set -e + + cd /src + + hugo new site ${SITE_DIR} + + cd ${SITE_DIR} + + hugo mod init ${NEW_SITE_NAME} + " + +sed -i "s/^SITE_NAME=.*/SITE_NAME=${NEW_SITE_NAME}/" "${PROJECT_DIR}/.env" + +sed -i "s/^title = .*/title = \"${NEW_SITE_NAME}\"/" \ + "${PROJECT_DIR}/${SITE_DIR}/hugo.toml" + +cat >> "${PROJECT_DIR}/${SITE_DIR}/hugo.toml" <