forked from Deuxfleurs/site
Doc pour le site web
This commit is contained in:
parent
a171273a01
commit
6821c94d48
2 changed files with 80 additions and 5 deletions
66
README.md
66
README.md
|
@ -1,13 +1,69 @@
|
||||||
# site
|
# site
|
||||||
|
|
||||||
Sources of the [deuxfleurs.fr](https://deuxfleurs.fr/) website (in french).
|
Ce dépôt git contient les sources pour le site [deuxfleurs.fr](https://deuxfleurs.fr/).
|
||||||
|
C'est ici que vous pourrez apporter des modifications au site.
|
||||||
|
|
||||||
## Deployment
|
## Comment ajouter du contenu ?
|
||||||
|
|
||||||
Automagically deployed on commit to master!
|
Prérequis :
|
||||||
|
- Un compte sur cette instance gitea.
|
||||||
|
- Le logiciel git d'installé. [téléchager](https://git-scm.com/downloads).
|
||||||
|
|
||||||
## Building
|
Pour commencer, assurez-vous d'être connecté.
|
||||||
|
Ensuite cliquez sur le bouton "Bifurcation" en haut à droite (*fork* en anglais).
|
||||||
|
Finalement, vous pourrez cloner votre dépôt en local :
|
||||||
|
|
||||||
```
|
```
|
||||||
./.webpull
|
git clone https://git.deuxfleurs.fr/<votre nom d'utilisateur>/site.git
|
||||||
```
|
```
|
||||||
|
|
||||||
|
Pour ajouter du contenu, vous pouvez tout simplement ajouter un fichier dans le dossier `src`.
|
||||||
|
Par exemple, le fichier `src/Association/Statuts.md` se retrouve à l'adresse `https://deuxfleurs.fr/Association/Statuts.html`.
|
||||||
|
|
||||||
|
Deux formats de fichiers différents sont supportés pour l'instant :
|
||||||
|
|
||||||
|
- `.md` pour Markdown. [documentation](https://fr.wikipedia.org/wiki/Markdown). Rapide à apprendre, il est très pratique pour rajouter du contenu sans se poser la question de l'apparence.
|
||||||
|
- `.pug` pour Pug. [documentation](https://pugjs.org). PugJS est une syntaxe différente pour représenter du HTML. Elle offre donc toute la souplesse de ce dernier et s'adapte plus à des mises en page complexe.
|
||||||
|
|
||||||
|
Si vous ne savez pas par où commencer, choisissez markdown !
|
||||||
|
N'hésitez pas à vous inspirer des fichiers existants.
|
||||||
|
|
||||||
|
Une fois vos modifications terminées, vous pouvez commit et push :
|
||||||
|
|
||||||
|
```
|
||||||
|
git add src/Association/MonFichier.md
|
||||||
|
git commit -a
|
||||||
|
git push
|
||||||
|
```
|
||||||
|
|
||||||
|
Ensuite, vous pouvez créer une demande d'ajout (*pull request* ou *merge request* en anglais) depuis cette adresse (ou en cliquant sur l'onglet éponyme) : https://git.deuxfleurs.fr/Deuxfleurs/site/pulls
|
||||||
|
|
||||||
|
## Comment prévisualiser mes modifications ?
|
||||||
|
|
||||||
|
Prérequis :
|
||||||
|
- nodejs et npm d'installé. [télécharger](https://nodejs.org/en/download/)
|
||||||
|
|
||||||
|
Vous pourriez vouloir vérifier que vos modifications rendent bien avant de faire votre demande d'ajout.
|
||||||
|
Pour cela, nous utilisons un script de notre cru nommé `render.js`. Il convertit le dossier `src/` vers un site web contenu dans le dossier `static/` et peut, optionnellement, servir de serveur web.
|
||||||
|
|
||||||
|
La façon la plus simple de prévisualiser vos modifications est donc de :
|
||||||
|
|
||||||
|
```bash
|
||||||
|
npm install # installer les dépendances
|
||||||
|
LISTEN=3000 node render.js # effectuer le rendu puis démarrer un serveur web sur le port 3000
|
||||||
|
```
|
||||||
|
|
||||||
|
Votre aperçu est alors disponible à cette URL : http://127.0.0.1:3000
|
||||||
|
|
||||||
|
À chaque modification, vous pouvez arrêter la dernière commande (CTRL+C) et la relancer pour forcer le rendu.
|
||||||
|
|
||||||
|
## Comment le site est mis à jour depuis ce dépôt ?
|
||||||
|
|
||||||
|
Tout est réalisé automatiquent, aucune intervention humaine n'est nécessaire.
|
||||||
|
|
||||||
|
Derrière les coulisses, une fois que votre demande d'ajout acceptée, elle arrive sur la branche `master` de ce dépôt.
|
||||||
|
Cette opération déclenche automatiquement [un webhook gitea](https://docs.gitea.io/en-us/webhooks/) qui va alors effectuer une requete HTTP sur l'URL suivante : `https://deuxfleurs.fr/update?token=<redacted>`.
|
||||||
|
Le serveur sait alors qu'il doit rafraichir le site web.
|
||||||
|
Cette fonctionnalité est fournie par un petit outil qui s'appelle [webpull](https://git.deuxfleurs.fr/Deuxfleurs/deuxfleurs.fr/src/branch/master/docker/webpull).
|
||||||
|
Ce dernier exécute alors deux commandes : `git pull` puis `./.webpull`.
|
||||||
|
`.webpull` est en réalité un script bash contenu dans ce dépôt à la racine, dont vous pouvez inspecter le contenu.
|
||||||
|
|
19
render.js
19
render.js
|
@ -3,6 +3,7 @@
|
||||||
const pug = require('pug')
|
const pug = require('pug')
|
||||||
const marked = require('marked')
|
const marked = require('marked')
|
||||||
const fs = require('fs').promises
|
const fs = require('fs').promises
|
||||||
|
const http = require('http')
|
||||||
|
|
||||||
const unit = (...args) => null
|
const unit = (...args) => null
|
||||||
const log = process.env.VERBOSE ? console.log : unit
|
const log = process.env.VERBOSE ? console.log : unit
|
||||||
|
@ -226,6 +227,23 @@ const do_clean = path => tree =>
|
||||||
.then(rm_tree)
|
.then(rm_tree)
|
||||||
.then(_ => tree)
|
.then(_ => tree)
|
||||||
|
|
||||||
|
const listen = async t =>
|
||||||
|
process.env.LISTEN &&
|
||||||
|
http.createServer(async (req,res) => {
|
||||||
|
const file = fs.readFile(__dirname + '/static/' + decodeURI(req.url))
|
||||||
|
.catch(_ => fs.readFile(__dirname + '/static/' + decodeURI(req.url) + '/index.html'))
|
||||||
|
|
||||||
|
try {
|
||||||
|
const f = await file
|
||||||
|
res.writeHead(200)
|
||||||
|
res.end(f)
|
||||||
|
} catch (e) {
|
||||||
|
console.error(e)
|
||||||
|
res.writeHead(404)
|
||||||
|
res.end("404 not found")
|
||||||
|
}
|
||||||
|
}).listen(process.env.LISTEN);
|
||||||
|
|
||||||
const conf = { src: './src', dest: './static'}
|
const conf = { src: './src', dest: './static'}
|
||||||
walk(conf.src)
|
walk(conf.src)
|
||||||
.then(propagate_md_layout)
|
.then(propagate_md_layout)
|
||||||
|
@ -242,4 +260,5 @@ walk(conf.src)
|
||||||
.then(do_folder)
|
.then(do_folder)
|
||||||
.then(do_copy)
|
.then(do_copy)
|
||||||
.then(do_pug())
|
.then(do_pug())
|
||||||
|
.then(listen)
|
||||||
.catch(console.error)
|
.catch(console.error)
|
||||||
|
|
Loading…
Reference in a new issue