Initialisation du projet avec init de hugo.
Choix du theme nojs.
This commit is contained in:
@@ -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
|
||||
+11
@@ -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/
|
||||
@@ -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_
|
||||
Executable
+64
@@ -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" <<EOF
|
||||
theme = "${HUGO_THEME}"
|
||||
EOF
|
||||
|
||||
echo
|
||||
echo "Projet créé : ${NEW_SITE_NAME}"
|
||||
echo "Pour la suite: .//script/init.sh"
|
||||
Executable
+27
@@ -0,0 +1,27 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ ! -f ".env" ]]; then
|
||||
echo "Erreur : fichier .env introuvable."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
|
||||
IMG_NAME="${HUGO_IMAGE}:v${HUGO_VERSION}"
|
||||
|
||||
docker run --rm -it \
|
||||
-p "${HUGO_PORT}:1313" \
|
||||
--name "${CONTAINER_NAME}" \
|
||||
-u 0:0 \
|
||||
-v "${PWD}/${SITE_DIR}:/src" \
|
||||
-v "${PWD}/${CACHE_DIR}:/tmp/hugo_cache" \
|
||||
-w /src \
|
||||
"${IMG_NAME}" \
|
||||
server \
|
||||
--buildDrafts \
|
||||
--cleanDestinationDir \
|
||||
--bind 0.0.0.0
|
||||
Executable
+26
@@ -0,0 +1,26 @@
|
||||
#!/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}"
|
||||
|
||||
docker run --rm -it \
|
||||
--name "${CONTAINER_NAME}" \
|
||||
-u 0:0 \
|
||||
-v "${PROJECT_DIR}/${SITE_DIR}:/src" \
|
||||
-v "${PROJECT_DIR}/${CACHE_DIR}:/tmp/hugo_cache" \
|
||||
-w /src \
|
||||
"${IMG_NAME}" \
|
||||
"$@" --noBuildLock
|
||||
Executable
+45
@@ -0,0 +1,45 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ ! -f ".env" ]]; then
|
||||
echo "Erreur : fichier .env introuvable."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
|
||||
IMG_NAME="${HUGO_IMAGE}:v${HUGO_VERSION}"
|
||||
|
||||
mkdir -p "${CACHE_DIR}"
|
||||
|
||||
docker pull "${IMG_NAME}"
|
||||
|
||||
docker run --rm -it \
|
||||
--name "${CONTAINER_NAME}-init" \
|
||||
--entrypoint /bin/sh \
|
||||
-u 0:0 \
|
||||
-v "${PWD}:/src" \
|
||||
-v "${PWD}/${CACHE_DIR}:/tmp/hugo_cache" \
|
||||
"${IMG_NAME}" \
|
||||
-c "
|
||||
set -e
|
||||
|
||||
cd /src/${SITE_DIR}
|
||||
|
||||
if [[ -n "${HUGO_THEME:-}" ]]; then
|
||||
hugo mod get "${HUGO_THEME}"
|
||||
fi
|
||||
|
||||
hugo mod get -u
|
||||
hugo mod npm pack
|
||||
npm install
|
||||
hugo mod tidy
|
||||
hugo mod vendor
|
||||
"
|
||||
|
||||
echo
|
||||
echo "Initialisation Hugo terminée."
|
||||
echo "Pour la suite: ./script/dev.sh"
|
||||
Executable
+36
@@ -0,0 +1,36 @@
|
||||
#!/usr/bin/env bash
|
||||
|
||||
set -euo pipefail
|
||||
|
||||
if [[ ! -f ".env" ]]; then
|
||||
echo "Erreur : fichier .env introuvable."
|
||||
exit 1
|
||||
fi
|
||||
|
||||
set -a
|
||||
source .env
|
||||
set +a
|
||||
|
||||
IMG_NAME="${HUGO_IMAGE}:v${HUGO_VERSION}"
|
||||
|
||||
mkdir -p "${PUBLISH_DIR}"
|
||||
|
||||
docker run --rm \
|
||||
--name "${CONTAINER_NAME}-publish" \
|
||||
--user 0:0 \
|
||||
-v "${PWD}/${SITE_DIR}:/src" \
|
||||
-v "${PWD}/${CACHE_DIR}:/tmp/hugo_cache" \
|
||||
-v "${PWD}/${PUBLISH_DIR}:/target" \
|
||||
-w /src \
|
||||
"${IMG_NAME}" \
|
||||
--gc \
|
||||
--minify \
|
||||
--cleanDestinationDir \
|
||||
--noBuildLock \
|
||||
--noTimes \
|
||||
-d /target \
|
||||
-b "${URL_SITE}"
|
||||
|
||||
echo
|
||||
echo "Site généré dans ./${PUBLISH_DIR}"
|
||||
echo "Plus que scp ou rsync sur le site"
|
||||
@@ -0,0 +1,5 @@
|
||||
+++
|
||||
date = '{{ .Date }}'
|
||||
draft = true
|
||||
title = '{{ replace .File.ContentBaseName "-" " " | title }}'
|
||||
+++
|
||||
@@ -0,0 +1,5 @@
|
||||
module sillycone-village
|
||||
|
||||
go 1.26.4
|
||||
|
||||
require gitlab.com/andy.sb/nojs v0.0.0-20260712183347-4a21ba88ad44 // indirect
|
||||
@@ -0,0 +1,2 @@
|
||||
gitlab.com/andy.sb/nojs v0.0.0-20260712183347-4a21ba88ad44 h1:QILe9itqfDvqwZeTc70xOXTI1cAYv+JJbIuXUJGowW0=
|
||||
gitlab.com/andy.sb/nojs v0.0.0-20260712183347-4a21ba88ad44/go.mod h1:M+cVZFMEQeYMhDvd3Mn/ZGVFuMX7py9P4re4a76xwYs=
|
||||
@@ -0,0 +1,4 @@
|
||||
baseURL = 'https://example.org/'
|
||||
locale = 'en-us'
|
||||
title = "sillycone-village"
|
||||
theme = "gitlab.com/andy.sb/nojs"
|
||||
@@ -0,0 +1,5 @@
|
||||
{
|
||||
"workspaces": [
|
||||
"packages/hugoautogen"
|
||||
]
|
||||
}
|
||||
Reference in New Issue
Block a user