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" <