First Beta Version

This commit is contained in:
Cyrille L 2022-06-18 18:02:14 +02:00
parent 033777cf03
commit ed4cb64567
33 changed files with 484 additions and 554 deletions

View File

@ -4,6 +4,14 @@ GSL changes from releases. You can send an issue :
- repo: https://git.a-lec.org/echolib/gsl/-/issues - repo: https://git.a-lec.org/echolib/gsl/-/issues
- Contact xmpp: im@echolib.re - Contact xmpp: im@echolib.re
## [0.1.0]
### First beta release
- fix www/wip with add/remove options
- fix some innvalid HTML codes (strike uses span now)
- Renamed documentation files (not all translated ; some in french)
- RSS feed donc after all www (command) done
## [0.0.93] ## [0.0.93]
### New ### New
- Basic RSS feed created at each www (COMMAND) - Basic RSS feed created at each www (COMMAND)

View File

@ -1,10 +1,11 @@
# GSL: Statique Littérateur # GSL: Statique Littérateur
------------------------------------------------------------------------ ------------------------------------------------------------------------
GSL est un générateur de blogs/sites-web basé sur leur nom de domaine, GSL est un générateur de blogs/sites-web multiples basé sur leur nom de
écrit en bash, afin de réduire ses dépendances au minimum. Les pages domaine. Il est écrit en bash, afin de réduire ses dépendances au minimum.
générées sont presque entièrement statiques, à l'exception du module de Les pages générées sont presque entièrement statiques, à l'exception du
liste des derniers articles (sidebar) placé en include. Nginx peut être module de liste (sidebar) contenant les articles de votre choix.
GSL crée pour ce module un fichier appelé avec include. Nginx peut être
facilement configuré pour interprêter ce module. facilement configuré pour interprêter ce module.
@ -21,7 +22,7 @@ facilement configuré pour interprêter ce module.
------------------------------------------------------------------------ ------------------------------------------------------------------------
Une procédure d'installation via un setup est en préparation. Il est Une procédure d'installation via un setup est en préparation. Il est
aussi possible et recommandé sous debian de l'installer grâce à son aussi possible et recommandé sous debian de l'installer grâce à son
paquet deb (construit par make). paquet deb (construit par make), amoureusement préparé par neox.
Pour une installation manuelle, clonez ce dépôt, et copiez les dossiers Pour une installation manuelle, clonez ce dépôt, et copiez les dossiers
déjà pré-établis dans le système (avec sudo). GSL n'utilise pas sudo, déjà pré-établis dans le système (avec sudo). GSL n'utilise pas sudo,
@ -34,26 +35,26 @@ Reportez-vous à la documentation dans le dossier help
# Comment configurer un domaine # Comment configurer un domaine
------------------------------------------------------------------------ ------------------------------------------------------------------------
Préparer un fichier de logo. L'important sera de renseigner le nom du Préparer un fichier de logo. L'important sera de renseigner un nom du
fichier lors du questionnaire. fichier sinon, lors du questionnaire.
Attention: GSL aura besoin de créer des sous-dossier dans le serveur, Attention: GSL aura besoin de créer des sous-dossiers (par DOMAIN) dans
renseigné dans le questionnaire. (i.e. /var/www/). Il faut donc lui le serveur, renseigné dans le questionnaire. (i.e. /var/www/). Il faut
donner les droits donc lui donner les droits
``` ```
$ gsl new) domain $ gsl new domain
``` ```
Des questions vous seront posées lorsque vous voudrez ajouter un domaine Des questions vous seront posées lorsque vous voudrez ajouter un DOMAIN
(exemple.com). Les données renseignées seront utilisées pour créer la (exemple.com). Les données renseignées seront utilisées pour créer la
configuration (voir la documentation d'installation) configuration du DOMAIN et reprises pour le site/blog dédié.
## Définir un dossier pour les articles du DOMAIN ## Définir un dossier pour les articles du DOMAIN
------------------------------------------------------------------------ ------------------------------------------------------------------------
Si ce n'est pas déjà fait par GSL, ou que vous voulez ajouter un dossier Si ce n'est pas déjà fait par GSL, ou que vous voulez ajouter un dossier
pour y stocker vos articles bruts pour un DOMAIN précis : pour y stocker vos articles bruts en .gsl pour un DOMAIN précis :
``` ```
gsl help -d gsl help -d
@ -61,19 +62,19 @@ cd MYFOLDER
gsl setdir gsl setdir
``` ```
ou: ou manuellement:
- Aller dans/créer un dossier de votre choix - Aller dans/créer un dossier de votre choix
- Créer dedans, un fichier vide nommé gsl.DOMAIAN (gsl.exemple.com) - Créer dedans, un fichier vide nommé gsl.DOMAIN (gsl.exemple.com)
## Ajouter / retirer un auteur ## Ajouter / retirer un auteur
------------------------------------------------------------------------ ------------------------------------------------------------------------
Après avoir enregistré un domain et configuré un dossier pour les Après avoir enregistré un domain et configuré un dossier pour les
articles. **Un auteur par ligne !** articles. Ajoutez un ou plusieurs auteurs. **Un auteur par ligne !**
``` ```
cd MON-DOSSER-ARTICLES cd MON-DOSSER-ARTICLES
gsl author edit gsl new author
``` ```
@ -91,18 +92,19 @@ gsl help -w
## Procédures de prévisualisation et mise en ligne ## Procédures de prévisualisation et mise en ligne
------------------------------------------------------------------------ ------------------------------------------------------------------------
- gsl check monarticle.gsl (vérifie l'écriture en gsl) - gsl check monarticle.gsl (vérifie l'écriture en gsl)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip) - gsl make monarticle.gsl (Connvertit en HTML - dossier wip dans le serveur)
- gsl www add monarticle.gsl (copiel la page dans le dossier www) - gsl www add monarticle.gsl (copie la page dans le dossier www)
# Comment gérer la sidebar # Comment gérer la sidebar
------------------------------------------------------------------------ ------------------------------------------------------------------------
La gestion de la sidebar est manuelle. Un article doit être convertit La gestion de la sidebar est manuelle. Un article doit être convertit
avec make avant de pouvoir l'ajouter à la position ddsirée. Le nombre avec make avant de pouvoir l'ajouter à la position désirée. Le nombre
d'articles maximum dans la sidebar est configurable dans le fichier de d'articles maximum dans la sidebar est configurable dans le fichier de
configuration du domaine (DOMAIN.conf) configuration du domaine (DOMAIN.conf) (via le questionnaire)
``` ```
gsl sidebar latest
gsl sidebar replace 2 monarticle.gsl gsl sidebar replace 2 monarticle.gsl
``` ```
@ -118,6 +120,8 @@ gsl www add mona<TAB>
# Help # Help
------------------------------------------------------------------------ ------------------------------------------------------------------------
``` ```
# GSL: Statique Littérateur
$ gsl (ARG) $ gsl (ARG)
readme : Show README.md instructions readme : Show README.md instructions
help | -h (OPT) : This Help and how to help | -h (OPT) : This Help and how to
@ -125,7 +129,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters param | -p : Configure some parameters
css : Show used CSS classes css : Show used CSS classes
tips | -t : Show tips and advises you should know tips | -t : Show tips and advises you should know
@ -137,7 +140,7 @@ $ gsl (ARG)
setdir | -D : Show current directory DOMAIN or set it setdir | -D : Show current directory DOMAIN or set it
log | -L (OPTS) : Show logs from all sessions log | -L (OPT) : Show logs from all sessions
clean | -C : Logs saved to {DATE}.gsl.log and cleaned clean | -C : Logs saved to {DATE}.gsl.log and cleaned
all : clean all saved logs, keep current all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors) -i | -w | -e : from levels (infos, warnings, errors)
@ -154,16 +157,16 @@ $ gsl (ARG)
domain : Domains registred database domain : Domains registred database
(FILE) : (FILE) ; .gsl (FILE) : (FILE) ; .gsl
db (FILE) : Show DB statuses from (FILE) db (FILE) : Show DB datas from (FILE)
sync (OPT) : Sync Templates to www and wip sync (OPT) : Sync Templates to www and wip
wip : Only to wip server (also done with make) wip : Only to wip server (also done with make)
www : Only to www server (also done with www) www : Only to www server (also done with www)
check | -C (OPTIONS) : Check Post(s) errors from PWD folder check | -C (OPTI) : Check Post(s) errors from PWD folder
-N : Check only articles not in DB -N : Check only articles not in DB
-F : Force Check again ; Recreate in Database -F : Force Check again ; Create Database
(FILE) : Only this (FILE) (FILE) : Only this (FILE)
make | -M (OPTIONS) : Make all HTML articles or only (FILE) make | -M (OPTIONS) : Make all HTML articles or only (FILE)
@ -173,21 +176,24 @@ $ gsl (ARG)
www (OPT1) (OPT2) : Add/Remove Post(s) in www server www (OPT1) (OPT2) : Add/Remove Post(s) in www server
(OPT1): (OPT1):
sync : Same as "sync www" sync : Same as "sync www"
add : Add all/(FILE) to www server add : Add (OPT2) to www server
rmove : remove all/(FILE) from www server remove : remove (OPT2) from www server
(OPT2): (OPT2):
all : Select all post with wip statuses all : Select all post with wip statuses (FORCE !)
(FILE) : Select specific post (if wip status) (FILE) : Select specific post (if wip status)
wip : Same as www for wip wip : Same as www for wip server
add : Same as make -F (i.e. gsl wip add all)
sidebar | -S : Show Posts in list (ARG) (POS) (FILE) sidebar | -S : Show Posts in list (ARG) (POS) (FILE)
(ARG): (ARG):
add | -a : Put article at (POS). Remove last, roll from (POS) add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing) latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn -v : Show local versionn
--version : Like -v + changes --version : Like -v + changes
-vv : Shown local and repo Versions -vv : Shown local and repo Versions
``` ```

View File

@ -1,5 +1,5 @@
Package: egsl Package: egsl
Version: 0.0.93 Version: 0.1.0
Section: custom Section: custom
Priority: optional Priority: optional
Architecture: all Architecture: all

View File

@ -56,12 +56,11 @@ gsl_files_help=(
$gsl_dir_help/comment_ecrire-article.md $gsl_dir_help/comment_ecrire-article.md
$gsl_dir_help/gsl_help.md $gsl_dir_help/gsl_help.md
$gsl_dir_help/comment_installer-GSL.md $gsl_dir_help/comment_installer-GSL.md
$gsl_dir_help/template-comment-creer.md $gsl_dir_help/how-to_set_directory_for_articles.md
$gsl_dir_help/how_to-set_directory_for_articles.md $gsl_dir_help/how-to_add_remove_authors.md
$gsl_dir_help/how_to-add_remove_authors.md $gsl_dir_help/how-to_parameters_conf.md
$gsl_dir_help/how_to-parameters_conf.md $gsl_dir_help/how-to_CSS_classes.md
$gsl_dir_help/how_to-CSS_classes.md $gsl_dir_help/how-to_Tips_Advises.md
$gsl_dir_help/how_to-Tips_Advises.md
) )
gsl_dirs_w=( gsl_dirs_w=(
@ -147,7 +146,7 @@ gsl_marker_link='link:'
gsl_marker_flink='file:' gsl_marker_flink='file:'
# Closed HTML static code # Closed HTML static code
HTML_strike_close='</strike>' HTML_strike_close='</span>'
HTML_icode_close='</code>' HTML_icode_close='</code>'
HTML_em_close='"</i>' HTML_em_close='"</i>'
HTML_strong_close='</strong>' HTML_strong_close='</strong>'

View File

@ -3,7 +3,7 @@
Vous pouvez créer un article daté du jour avec les METAS obligatoires Vous pouvez créer un article daté du jour avec les METAS obligatoires
intégrées (à renseigner après) depuis la ligne de commande. Vous devez intégrées (à renseigner après) depuis la ligne de commande. Vous devez
spécifier si votre article sera une page ou un post (Voir section plus spécifier si votre article sera une page ou un post (Voir section plus
bas), et lui donner un nom. Les metas optionnelles sont ajoutées enn bas), et lui donner un nom. Les metas optionnelles sont ajoutées en
commentaires. commentaires.
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout
@ -12,15 +12,17 @@ de votre domaine (ou celui que vous avez configuré).
Mettez des guillemets pour les nom du fichier avec espaces. Mettez des guillemets pour les nom du fichier avec espaces.
``` ```
# Crréer une page nommée index (deviendra /index.html) # Créer une page nommée index (deviendra /index.html)
gsl new page index gsl new page index
# Créer un article nommé "mes vacances" # Créer un article nommé "mes vacances"
gsl ew post "mes vacances" gsl new post "mes vacances"
``` ```
Vous pouvez l'éditer dans le terminal ou avec votre éditeur de texte, en Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion
utilisant l'autocompletion (<tab>) (<tab>), ou avec votre éditeur de texte favoris. le micro logiciel nano
est utilisé par défaut par GSL pour toute édition (article,
configuration du domaine, auteurs...)
``` ```
gsl edit "mes vacances.gsl" gsl edit "mes vacances.gsl"
@ -41,11 +43,11 @@ l'article à partir de ce repère (servant de titre h1).
``` ```
type: page type: page
title: POST TITLE title: POST TITLE
slug: MY-SLUG (si espaces, GSL les convertira en -) slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article) info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD date: YYYY-MM-DD (ou DD-MM-YYY si DOMAIN configuré en fr)
tags: TAG1,Mon TAG2,TAG3 (séparé par une virgule) tags: TAG1,Mon TAG2 (séparé par une virgule)
``` ```
### Page ou Article ? ### Page ou Article ?
@ -53,14 +55,14 @@ Vous devez spécifier pour chaque article si c'est une **page** ou un
**post** **post**
#### Page (index, 404, about...) #### Page (index, 404, about...)
Création HTML à la racine selon le slug: /MY-SLUG.html Création HTML à la racine du serveur selon le slug: /MY-SLUG.html
``` ```
type: page type: page
slug: 404 slug: 404
``` ```
#### Post (monarticle) #### Post (mon article)
Création HTML dans un dossier selon le slug: /MY-SLUG/index.html Création HTML dans un dossier selon le slug: /MY-SLUG/index.html
**! Le slug ne doit pas commencer par un /** **! Le slug ne doit pas commencer par un /**
@ -81,7 +83,7 @@ Définir un ou plusieurs de ces marqueurs et utiliser ``` : ``` comme
séparateur séparateur
``` ```
abbr: COURT : LONG abbr: COURT : Long
file: NOM : NOM-DU-FICHIER : Text alternatif file: NOM : NOM-DU-FICHIER : Text alternatif
link: NOM : URL : Text alternatif link: NOM : URL : Text alternatif
code: NUMERO : NOM-DU-FICHIER : Text alternatif code: NUMERO : NOM-DU-FICHIER : Text alternatif
@ -90,7 +92,7 @@ image: NUMERO : NOM-DU-FICHIER : TEXT-ALTERNATIF
``` ```
## Contenu de l'article: ## Contenu de l'article:
Les marqueurs (hors listes) *et leur contenu* (ex: ```__monfichier...```) Les marqueurs (hors listes) *et leur contenu* (ex: ```·ceci est en gras·```)
**doivent être sur la même ligne**. **doivent être sur la même ligne**.
Les marqueurs à retenir et leur Combinaison de touches sur un clavier Les marqueurs à retenir et leur Combinaison de touches sur un clavier
@ -115,7 +117,7 @@ il ad•juge• : pas de pub !
Dans l'article... Dans l'article...
``` ```
·Tout est en gras· ·Texte en gras·
``` ```
### Écrire en Italique ### Écrire en Italique
@ -153,9 +155,8 @@ Les propriétés CSS ne sont pas définies
``` ```
### Paragraphes ### Paragraphes
Au début d'une nouvelle ligne, ouvrez avec ( et fermez avec ). - Ouvrir avec ```(``` et fermez avec ```)``` **Au début d'une nouvelle ligne**.
Vous pouvez définir le nom de la classe du paragraphe en ajoutant la - Définir le nom de la classe du paragraphe,par exemple : "p3" (optionnel)
valeur désirée ; par exemple : p3
Dans l'article... Dans l'article...
``` ```
@ -164,19 +165,19 @@ Paragraphe avec une classe p3 en css
) )
( (
Paragraphe sans classe Paragraphe sans classe personnalisée
) )
``` ```
### Liens ### Liens
Définir en METAS Définir en METAS...
``` ```
link: Mon lien : URL : Alt text link: Mon lien : URL : Alt text
link: https://a-lec.org/ : URL : Alt text link: https://a-lec.org/ : URL : Alt text
``` ```
Dans l'article.. Dans l'article...
- Écrivez ```_``` devant le nom du lien - Écrivez ```_``` devant le nom du lien
- Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet - Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet
@ -193,7 +194,7 @@ file: Mon fichier : FILENAME : ALT-TEXT
Dans l'article... Dans l'article...
``` ```
__Mon fichier __Mon fichier est super léger
``` ```
### Images ### Images
@ -205,19 +206,20 @@ image: 2 : FILENAME : ALT-TEXT
``` ```
Dans l'article... Dans l'article...
Définir le marqueur ```_image``` sur une seule ligne et spécifiez les Définir le marqueur ```_image``` et spécifiez les
valeurs séparées par ```:```. ```+``` indique l'ouverture dans une valeurs séparées par ```:```. ```+``` indique l'ouverture dans une
nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire
Les valeurs:
- Numero d'image - Numero d'image
- Alignement: l,r,(g,d également),c pour gauche, droite, centre) - Alignement: l,r,(g,d également),c pour gauche, droite, centre)
- - maclasse au lieu de l,r,c pour utiliser la classe css "maclasse" - - maclasse au lieu de l,r,g,d,c pour utiliser la classe css "maclasse"
- - + (class="center") - - + (class="center")
- Longueur width: (avec unité) - Longueur width: (avec unité)
- - + (taille originale) - - + (taille originale)
- Largeur height: (avec unité) - Largeur height: (avec unité)
- - + (longueur définie, largeur originale) - - + (longueur définie, largeur originale)
- Champ non vide: Lien de l'image dans un nouvel onglet - + (Lien de l'image dans un nouvel onglet)
Exemple d'images affichées l'une à côté de l'autre Exemple d'images affichées l'une à côté de l'autre
@ -255,7 +257,7 @@ _code:python
``` ```
### IMPORT de code brut (sera exécuté par le navigateur) ### IMPORT de code brut (sera exécuté par le navigateur)
Définir en METAS Définir en METAS...
``` ```
brut : 1 : FILENAME brut : 1 : FILENAME
@ -267,8 +269,9 @@ _brut:1
``` ```
### Citation simple ### Citation simple
Définissez un bloc pour la citation. Utilisez ```---``` Commun aux citations :
Vous pouvez définir une classe CSS spécifique ```--- ma-classe-css``` - Définir un bloc pour la citation. Utilisez ```---```
- Définir une classe CSS spécifique ```--- ma-classe-css``` (optionnel)
Dans l'article... Dans l'article...
@ -310,7 +313,7 @@ _book: Esperanza 64
### Créer des listes ### Créer des listes
L'arborescence est "infinie". L'arborescence est "infinie".
- Définir le début d'une liste par ```<<``` et sa fin par ```>>``` - Définir le début d'une liste par ```<<``` et sa fin par ```>>```
- Définir une classe CSS après ```<< ``` - Définir une classe CSS après ```<< ``` (optionnel)
Dans l'article... Dans l'article...
- utilisez ```=``` pour définir une liste simple (ul) - utilisez ```=``` pour définir une liste simple (ul)

View File

@ -16,24 +16,25 @@ droits en écriture des dossiers
``` ```
# Pour le dossier du binaire # Pour le dossier du binaire
sudo rsync -a usr/local/bin/gsl /usr/local/bin/gsl sudo rsync -a usr/local/bin/gsl /usr/local/bin/gsl
sudo chown USER:GROUP/usr/local/bin/gsl sudo chown USER:GROUP /usr/local/bin/gsl
# Pour les dossiers de scripts # Pour les dossiers de scripts
sudo mkdir -p "/var/lib/gsl" sudo mkdir -p "/var/lib/gsl"
sudo chown -R USER:GROUP "/var/lib/gsl" sudo chown -R USER:GROUP /var/lib/gsl
rsync -a var/lib/gsl/ /var/lib/gsl/ rsync -a var/lib/gsl/ /var/lib/gsl/
# Pour le dossier de logs # Pour le dossier de logs
sudo mkdir -p "/var/log/gsl" sudo mkdir -p "/var/log/gsl"
sudo chown -R USER:GROUP "/var/log/gsl" sudo chown -R USER:GROUP /var/log/gsl
# Pour le dossier de configuration # Pour le dossier de configuration
sudo mkdir -p /etc/gsl sudo mkdir -p /etc/gsl
sudo chown -R USER:GROUP "/etc/gsl" sudo chown -R USER:GROUP /etc/gsl
rsync -a etc/gsl/ /etc/gsl/
# Pour l'autocompletion des articles dans la commande # Pour l'autocompletion des articles dans la commande
sudo rsync -a usr/share/bash-completion/completions/gsl /usr/share/bash-completion/completions/gsl sudo rsync -a usr/share/bash-completion/completions/gsl /usr/share/bash-completion/completions/gsl
sudo chown USER:GROUP "/usr/share/bash-completion/completions/gsl" sudo chown USER:GROUP /usr/share/bash-completion/completions/gsl
``` ```
Attention: GSL aura besoin de créer des sous-dossier dans le serveur, Attention: GSL aura besoin de créer des sous-dossier dans le serveur,
@ -42,7 +43,9 @@ donner les droits
# Arborescence des dossiers utilisés par GSL # Arborescence des dossiers utilisés par GSL
------------------------------------------------------------------------ ------------------------------------------------------------------------
Note: ```+``` indique que GSL créera ces dossiers Note:
- ```+``` indique que GSL créera ces dossiers
- DOMAIN représente le nom de domaine renseigné dans le questionnaire
- /etc/gsl - /etc/gsl
- /var/log/gsl - /var/log/gsl
@ -50,7 +53,7 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /help/ - - /help/
- - /scripts/ - - /scripts/
- - /domains - - /domains
- - - /DOMAIN - - - /DOMAIN +
- - - - /templates/ + - - - - /templates/ +
- - - - /files/ + - - - - /files/ +
- - - - /images/ + - - - - /images/ +
@ -60,11 +63,11 @@ Note: ```+``` indique que GSL créera ces dossiers
- - - /DOMAIN + - - - /DOMAIN +
- /SRV (i.e. /var/www) - /SRV (i.e. /var/www)
- - /DOMAIN - - /DOMAIN +
- - - /wip - - - /wip +
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) - - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) +
- - - /www - - - /www +
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) - - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) +
# Fichiers créés par GSL # Fichiers créés par GSL
@ -81,4 +84,4 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /db/ - - /db/
- - - domains.db (registred domains) - - - domains.db (registred domains)
- - - DOMAIN/ - - - DOMAIN/
- - - - (file).gsl.db (Un par article) - - - - (article).gsl.db (un par article)

View File

@ -7,7 +7,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters param | -p : Configure some parameters
css : Show used CSS classes css : Show used CSS classes
tips | -t : Show tips and advises you should know tips | -t : Show tips and advises you should know
@ -19,7 +18,7 @@ $ gsl (ARG)
setdir | -D : Show current directory DOMAIN or set it setdir | -D : Show current directory DOMAIN or set it
log | -L (OPTS) : Show logs from all sessions log | -L (OPT) : Show logs from all sessions
clean | -C : Logs saved to {DATE}.gsl.log and cleaned clean | -C : Logs saved to {DATE}.gsl.log and cleaned
all : clean all saved logs, keep current all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors) -i | -w | -e : from levels (infos, warnings, errors)
@ -36,16 +35,16 @@ $ gsl (ARG)
domain : Domains registred database domain : Domains registred database
(FILE) : (FILE) ; .gsl (FILE) : (FILE) ; .gsl
db (FILE) : Show DB statuses from (FILE) db (FILE) : Show DB datas from (FILE)
sync (OPT) : Sync Templates to www and wip sync (OPT) : Sync Templates to www and wip
wip : Only to wip server (also done with make) wip : Only to wip server (also done with make)
www : Only to www server (also done with www) www : Only to www server (also done with www)
check | -C (OPTIONS) : Check Post(s) errors from PWD folder check | -C (OPTI) : Check Post(s) errors from PWD folder
-N : Check only articles not in DB -N : Check only articles not in DB
-F : Force Check again ; Recreate in Database -F : Force Check again ; Create Database
(FILE) : Only this (FILE) (FILE) : Only this (FILE)
make | -M (OPTIONS) : Make all HTML articles or only (FILE) make | -M (OPTIONS) : Make all HTML articles or only (FILE)
@ -55,19 +54,21 @@ $ gsl (ARG)
www (OPT1) (OPT2) : Add/Remove Post(s) in www server www (OPT1) (OPT2) : Add/Remove Post(s) in www server
(OPT1): (OPT1):
sync : Same as "sync www" sync : Same as "sync www"
add : Add all/(FILE) to www server add : Add (OPT2) to www server
rmove : remove all/(FILE) from www server remove : remove (OPT2) from www server
(OPT2): (OPT2):
all : Select all post with wip statuses all : Select all post with wip statuses (FORCE !)
(FILE) : Select specific post (if wip status) (FILE) : Select specific post (if wip status)
wip : Same as www for wip wip : Same as www for wip server
add : Same as make -F (i.e. gsl wip add all)
sidebar | -S : Show Posts in list (ARG) (POS) (FILE) sidebar | -S : Show Posts in list (ARG) (POS) (FILE)
(ARG): (ARG):
add | -a : Put article at (POS). Remove last, roll from (POS) add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing) latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn -v : Show local versionn
--version : Like -v + changes --version : Like -v + changes

View File

@ -23,7 +23,7 @@ X is 1 to 6 from current title
- bold: xxx_bold - bold: xxx_bold
- strong: xxx_strong - strong: xxx_strong
- emphasis: xxx_em - emphasis: xxx_em
- strike: xxx_strike - strike: xxx_strike (span)
- inline code: xxx_icode - inline code: xxx_icode
### Paragraphs ### Paragraphs
@ -46,11 +46,11 @@ myclass is from content marker (i.e. _image:1:myclass:90:90:+)
### pre-codes from source file ### pre-codes from source file
X is the NAME/NBR registred in header X is the NAME/NBR registred in header
- pre: xxx_code-block xxx_code-block-X - pre: xxx_code-block xxx_code-block-X
- span line: xxx_code-line - span line: xxx_code-line
- span content: xxx_code-content - span content: xxx_code-content
- p after pre: xxx_code-p - div after pre: xxx_code-p
- link source: xxx_code-link - link source: xxx_code-link
### Liste (ol | ul | li) ### Liste (ol | ul | li)
X is the item mark nbr (i.e. "+++" = 3, "=" = 1) X is the item mark nbr (i.e. "+++" = 3, "=" = 1)

View File

@ -25,10 +25,22 @@ _image:1:+
_image:1:c:640px:+ _image:1:c:640px:+
``` ```
## Make (changes in source file) ## Make (changes in your template)
If you change the content of a file (script code, image...), you will If you change the content of a file in your template
have to make -F your article, and do www add after (script code, image, footer...), and you want ALL your articles to be
updated, you will have to :
- gsl sync
- gsl make -F
- gsl www add all
For only one article (myarticle).gsl:
- gsl sync
- gsl make -F (myarticle) (preview it first with wip server)
- gsl www remove (myarticle)
- gsl www add (myarticle)
## Sidebar ## Sidebar
If your remove a www or wip page, and you put it in sidebar, If your remove a www or wip page, and you have put it in the sidebar,
do not forget to replace it with another article do not forget to replace it with another article. You can also have an
automatic sidebar with
- gsl sidebar latest

View File

@ -1,69 +0,0 @@
# Créer un Template
------------------------------------------------------------------------
Vous devrez pour que votre site soit à vôtre goût créer et définir les
styles dans styles.css. Placez ce fichier (en fonction du choix de votre
configuration du DOMAIN) dans :
- HOME: ~/.config/gsl/domains/DOMAIN/templates/
- GLOBAL: /var/lib/gsl/domains/DOMAIN/templates/
Concernant les contenus images et fichiers dans vos articles, placez-les
dans les dossiers
- .../templates/images
- .../templates/files
Astuce: Une fois votre article créé, vous verrez dans sa source HTML que
beaucoup d'éléments ont une class="ACRONYM_uneclass". Utilisez
ces classes dans style.css pour décorer votre site à votre goût.
Pour mettre à jour et voir vos modifications de styles
```
gsl sync
```
GSL synchronisera votre template sur votre webserver.
Rechargez votre page dans votre navigateur
Si vous avez modifié header.html ou footer.html dans votre dossier
/templates, ou si de nouvelles fonctions sont arrivées et concernent les
pages HTML dans GSL, il vous faudra reconstruire toutes les pages
```
gsl make -F
```
## Listes de classes utilisées.
Rappel: les classes et IDs commencent par votre ACRONYM configuré,
lors de la création d'un domaine avec ```gsl new```, suivi par ```_```.
Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
### Dans body, header
- ID=
- - body: xxx_page
- - header: xxx_banner
- - logo dans header: xxx_site-logo
- - title dans header: xxx_site-title
- - name dans header: xxx_site-name
- - Description dans header: xxx_site-description
- - ```<section>``` avant ```<article>```: xxx_page-wrapper
- - article: xxx_SLUG (SLUG est le "slug: SLUG" de l'article)
- - div metas (auteur, date...): xxx_metas
- - p dans div metas: xxx_auteur
### Dans ```<article>```
- CLASS=
- hX: xxx_title-X
- - div après chaque titre ```<hX>```: xxx_content-p xxx_content-pX
- - p dans div content-p: xxx_paragraph
- - - si contenu ```( 1z```: xxx_paragraph-1z
- - code pour les inline-code avec ```¤...¤```: xxx_icode
- strikee: xxx_strike
- - li (liste) en fonction du nombre N de ```= | +```: xxx__list-li x_list-N
- - ul (liste) simple: xxx_list-ul
- - ol (liste) ordonnée: xxx_list-ol
... more to be listed here

View File

@ -1,4 +1,4 @@
## [0.0.93] ## [0.1.0]
## Please, see help (and documentations in help folder) ## Please, see help (and documentations in help folder)
@ -34,6 +34,7 @@
- - /var/log/gsl: for logs files (.gitkeep) - - /var/log/gsl: for logs files (.gitkeep)
- New help folder in - New help folder in
- - /var/lib/gsl/help (removed "helps" one) - - /var/lib/gsl/help (removed "helps" one)
- - - Renamed documentation files (not all translated ; some in french)
### Logs ### Logs
- Better logs harmony - Better logs harmony
@ -76,6 +77,7 @@
### new ARGUMENTS ### new ARGUMENTS
- new (page|post) (name): Create article, show its content + check it - new (page|post) (name): Create article, show its content + check it
- new domain: New domain configuration creator - new domain: New domain configuration creator
- new author: Same as author edit
- edit domains: Set/Edit registred domains database - edit domains: Set/Edit registred domains database
- edit author: Same as author edit - edit author: Same as author edit
- author edit: Opens nano to Add/Remove authors (one per line) by DOMAIN - author edit: Opens nano to Add/Remove authors (one per line) by DOMAIN
@ -83,8 +85,8 @@
- check -N: Only check newer articles not in DB - check -N: Only check newer articles not in DB
- clean all: Remove all backups (only) files - clean all: Remove all backups (only) files
- sidebar: add|replace|latest|oldest (See gsl help) - sidebar: add|replace|latest|oldest (See gsl help)
- www sync: Same as sync www - www sync: Same as sync www (see gsl help)
- wip ...: Same as www but for wip - wip ...: Same as www but for wip (see gsl help)
### Markers ### Markers
- css: MYCLASS Customize each article with your CSS (optional) - css: MYCLASS Customize each article with your CSS (optional)

View File

@ -1,5 +1,5 @@
#!/bin/bash #!/bin/bash
# Version: 0.0.93 # Version: 0.1.0
# file: gsl # file: gsl
# Folder: /usr/local/bin # Folder: /usr/local/bin
# By echolib (XMPP: im@echolib.re) # By echolib (XMPP: im@echolib.re)
@ -69,11 +69,11 @@ case "$1" in
write|-w) cat "$gsl_dir_help/comment_ecrire-article.md" ;; write|-w) cat "$gsl_dir_help/comment_ecrire-article.md" ;;
tpl|-T) cat "$gsl_dir_help/template-comment-creer.md" ;; tpl|-T) cat "$gsl_dir_help/template-comment-creer.md" ;;
install|-i) cat "$gsl_dir_help/comment_installer-GSL.md" ;; install|-i) cat "$gsl_dir_help/comment_installer-GSL.md" ;;
authors|-a) cat "$gsl_dir_help/how_to-add_remove_authors.md" ;; authors|-a) cat "$gsl_dir_help/how-to_add_remove_authors.md" ;;
setdir|-d) cat "$gsl_dir_help/how_to-set_directory_for_articles.md" ;; setdir|-d) cat "$gsl_dir_help/how-to_set_directory_for_articles.md" ;;
param|-p) cat "$gsl_dir_help/how_to-parameters_conf.md" ;; param|-p) cat "$gsl_dir_help/how-to_parameters_conf.md" ;;
css) cat "$gsl_dir_help/how_to-CSS_classes.md" ;; css) cat "$gsl_dir_help/how-to_CSS_classes.md" ;;
tips|-t) cat "$gsl_dir_help/how_to-Tips_Advises.md" ;; tips|-t) cat "$gsl_dir_help/how-to_Tips_Advises.md" ;;
""|*) cat "$gsl_dir_help/gsl_help.md" ;; ""|*) cat "$gsl_dir_help/gsl_help.md" ;;
esac esac
exit exit

View File

@ -4,6 +4,14 @@ GSL changes from releases. You can send an issue :
- repo: https://git.a-lec.org/echolib/gsl/-/issues - repo: https://git.a-lec.org/echolib/gsl/-/issues
- Contact xmpp: im@echolib.re - Contact xmpp: im@echolib.re
## [0.1.0]
### First beta release
- fix www/wip with add/remove options
- fix some innvalid HTML codes (strike uses span now)
- Renamed documentation files (not all translated ; some in french)
- RSS feed donc after all www (command) done
## [0.0.93] ## [0.0.93]
### New ### New
- Basic RSS feed created at each www (COMMAND) - Basic RSS feed created at each www (COMMAND)

View File

@ -1,10 +1,11 @@
# GSL: Statique Littérateur # GSL: Statique Littérateur
------------------------------------------------------------------------ ------------------------------------------------------------------------
GSL est un générateur de blogs/sites-web basé sur leur nom de domaine, GSL est un générateur de blogs/sites-web multiples basé sur leur nom de
écrit en bash, afin de réduire ses dépendances au minimum. Les pages domaine. Il est écrit en bash, afin de réduire ses dépendances au minimum.
générées sont presque entièrement statiques, à l'exception du module de Les pages générées sont presque entièrement statiques, à l'exception du
liste des derniers articles (sidebar) placé en include. Nginx peut être module de liste (sidebar) contenant les articles de votre choix.
GSL crée pour ce module un fichier appelé avec include. Nginx peut être
facilement configuré pour interprêter ce module. facilement configuré pour interprêter ce module.
@ -21,7 +22,7 @@ facilement configuré pour interprêter ce module.
------------------------------------------------------------------------ ------------------------------------------------------------------------
Une procédure d'installation via un setup est en préparation. Il est Une procédure d'installation via un setup est en préparation. Il est
aussi possible et recommandé sous debian de l'installer grâce à son aussi possible et recommandé sous debian de l'installer grâce à son
paquet deb (construit par make). paquet deb (construit par make), amoureusement préparé par neox.
Pour une installation manuelle, clonez ce dépôt, et copiez les dossiers Pour une installation manuelle, clonez ce dépôt, et copiez les dossiers
déjà pré-établis dans le système (avec sudo). GSL n'utilise pas sudo, déjà pré-établis dans le système (avec sudo). GSL n'utilise pas sudo,
@ -34,26 +35,26 @@ Reportez-vous à la documentation dans le dossier help
# Comment configurer un domaine # Comment configurer un domaine
------------------------------------------------------------------------ ------------------------------------------------------------------------
Préparer un fichier de logo. L'important sera de renseigner le nom du Préparer un fichier de logo. L'important sera de renseigner un nom du
fichier lors du questionnaire. fichier sinon, lors du questionnaire.
Attention: GSL aura besoin de créer des sous-dossier dans le serveur, Attention: GSL aura besoin de créer des sous-dossiers (par DOMAIN) dans
renseigné dans le questionnaire. (i.e. /var/www/). Il faut donc lui le serveur, renseigné dans le questionnaire. (i.e. /var/www/). Il faut
donner les droits donc lui donner les droits
``` ```
$ gsl new) domain $ gsl new domain
``` ```
Des questions vous seront posées lorsque vous voudrez ajouter un domaine Des questions vous seront posées lorsque vous voudrez ajouter un DOMAIN
(exemple.com). Les données renseignées seront utilisées pour créer la (exemple.com). Les données renseignées seront utilisées pour créer la
configuration (voir la documentation d'installation) configuration du DOMAIN et reprises pour le site/blog dédié.
## Définir un dossier pour les articles du DOMAIN ## Définir un dossier pour les articles du DOMAIN
------------------------------------------------------------------------ ------------------------------------------------------------------------
Si ce n'est pas déjà fait par GSL, ou que vous voulez ajouter un dossier Si ce n'est pas déjà fait par GSL, ou que vous voulez ajouter un dossier
pour y stocker vos articles bruts pour un DOMAIN précis : pour y stocker vos articles bruts en .gsl pour un DOMAIN précis :
``` ```
gsl help -d gsl help -d
@ -61,19 +62,19 @@ cd MYFOLDER
gsl setdir gsl setdir
``` ```
ou: ou manuellement:
- Aller dans/créer un dossier de votre choix - Aller dans/créer un dossier de votre choix
- Créer dedans, un fichier vide nommé gsl.DOMAIAN (gsl.exemple.com) - Créer dedans, un fichier vide nommé gsl.DOMAIN (gsl.exemple.com)
## Ajouter / retirer un auteur ## Ajouter / retirer un auteur
------------------------------------------------------------------------ ------------------------------------------------------------------------
Après avoir enregistré un domain et configuré un dossier pour les Après avoir enregistré un domain et configuré un dossier pour les
articles. **Un auteur par ligne !** articles. Ajoutez un ou plusieurs auteurs. **Un auteur par ligne !**
``` ```
cd MON-DOSSER-ARTICLES cd MON-DOSSER-ARTICLES
gsl author edit gsl new author
``` ```
@ -91,18 +92,19 @@ gsl help -w
## Procédures de prévisualisation et mise en ligne ## Procédures de prévisualisation et mise en ligne
------------------------------------------------------------------------ ------------------------------------------------------------------------
- gsl check monarticle.gsl (vérifie l'écriture en gsl) - gsl check monarticle.gsl (vérifie l'écriture en gsl)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip) - gsl make monarticle.gsl (Connvertit en HTML - dossier wip dans le serveur)
- gsl www add monarticle.gsl (copiel la page dans le dossier www) - gsl www add monarticle.gsl (copie la page dans le dossier www)
# Comment gérer la sidebar # Comment gérer la sidebar
------------------------------------------------------------------------ ------------------------------------------------------------------------
La gestion de la sidebar est manuelle. Un article doit être convertit La gestion de la sidebar est manuelle. Un article doit être convertit
avec make avant de pouvoir l'ajouter à la position ddsirée. Le nombre avec make avant de pouvoir l'ajouter à la position désirée. Le nombre
d'articles maximum dans la sidebar est configurable dans le fichier de d'articles maximum dans la sidebar est configurable dans le fichier de
configuration du domaine (DOMAIN.conf) configuration du domaine (DOMAIN.conf) (via le questionnaire)
``` ```
gsl sidebar latest
gsl sidebar replace 2 monarticle.gsl gsl sidebar replace 2 monarticle.gsl
``` ```
@ -118,6 +120,8 @@ gsl www add mona<TAB>
# Help # Help
------------------------------------------------------------------------ ------------------------------------------------------------------------
``` ```
# GSL: Statique Littérateur
$ gsl (ARG) $ gsl (ARG)
readme : Show README.md instructions readme : Show README.md instructions
help | -h (OPT) : This Help and how to help | -h (OPT) : This Help and how to
@ -125,7 +129,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters param | -p : Configure some parameters
css : Show used CSS classes css : Show used CSS classes
tips | -t : Show tips and advises you should know tips | -t : Show tips and advises you should know
@ -137,7 +140,7 @@ $ gsl (ARG)
setdir | -D : Show current directory DOMAIN or set it setdir | -D : Show current directory DOMAIN or set it
log | -L (OPTS) : Show logs from all sessions log | -L (OPT) : Show logs from all sessions
clean | -C : Logs saved to {DATE}.gsl.log and cleaned clean | -C : Logs saved to {DATE}.gsl.log and cleaned
all : clean all saved logs, keep current all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors) -i | -w | -e : from levels (infos, warnings, errors)
@ -154,16 +157,16 @@ $ gsl (ARG)
domain : Domains registred database domain : Domains registred database
(FILE) : (FILE) ; .gsl (FILE) : (FILE) ; .gsl
db (FILE) : Show DB statuses from (FILE) db (FILE) : Show DB datas from (FILE)
sync (OPT) : Sync Templates to www and wip sync (OPT) : Sync Templates to www and wip
wip : Only to wip server (also done with make) wip : Only to wip server (also done with make)
www : Only to www server (also done with www) www : Only to www server (also done with www)
check | -C (OPTIONS) : Check Post(s) errors from PWD folder check | -C (OPTI) : Check Post(s) errors from PWD folder
-N : Check only articles not in DB -N : Check only articles not in DB
-F : Force Check again ; Recreate in Database -F : Force Check again ; Create Database
(FILE) : Only this (FILE) (FILE) : Only this (FILE)
make | -M (OPTIONS) : Make all HTML articles or only (FILE) make | -M (OPTIONS) : Make all HTML articles or only (FILE)
@ -173,21 +176,24 @@ $ gsl (ARG)
www (OPT1) (OPT2) : Add/Remove Post(s) in www server www (OPT1) (OPT2) : Add/Remove Post(s) in www server
(OPT1): (OPT1):
sync : Same as "sync www" sync : Same as "sync www"
add : Add all/(FILE) to www server add : Add (OPT2) to www server
rmove : remove all/(FILE) from www server remove : remove (OPT2) from www server
(OPT2): (OPT2):
all : Select all post with wip statuses all : Select all post with wip statuses (FORCE !)
(FILE) : Select specific post (if wip status) (FILE) : Select specific post (if wip status)
wip : Same as www for wip wip : Same as www for wip server
add : Same as make -F (i.e. gsl wip add all)
sidebar | -S : Show Posts in list (ARG) (POS) (FILE) sidebar | -S : Show Posts in list (ARG) (POS) (FILE)
(ARG): (ARG):
add | -a : Put article at (POS). Remove last, roll from (POS) add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing) latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn -v : Show local versionn
--version : Like -v + changes --version : Like -v + changes
-vv : Shown local and repo Versions -vv : Shown local and repo Versions
``` ```

View File

@ -3,7 +3,7 @@
Vous pouvez créer un article daté du jour avec les METAS obligatoires Vous pouvez créer un article daté du jour avec les METAS obligatoires
intégrées (à renseigner après) depuis la ligne de commande. Vous devez intégrées (à renseigner après) depuis la ligne de commande. Vous devez
spécifier si votre article sera une page ou un post (Voir section plus spécifier si votre article sera une page ou un post (Voir section plus
bas), et lui donner un nom. Les metas optionnelles sont ajoutées enn bas), et lui donner un nom. Les metas optionnelles sont ajoutées en
commentaires. commentaires.
Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout Rendez vous dans le dossier de vos articles, enregistrés lors de l'ajout
@ -12,15 +12,17 @@ de votre domaine (ou celui que vous avez configuré).
Mettez des guillemets pour les nom du fichier avec espaces. Mettez des guillemets pour les nom du fichier avec espaces.
``` ```
# Crréer une page nommée index (deviendra /index.html) # Créer une page nommée index (deviendra /index.html)
gsl new page index gsl new page index
# Créer un article nommé "mes vacances" # Créer un article nommé "mes vacances"
gsl ew post "mes vacances" gsl new post "mes vacances"
``` ```
Vous pouvez l'éditer dans le terminal ou avec votre éditeur de texte, en Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion
utilisant l'autocompletion (<tab>) (<tab>), ou avec votre éditeur de texte favoris. le micro logiciel nano
est utilisé par défaut par GSL pour toute édition (article,
configuration du domaine, auteurs...)
``` ```
gsl edit "mes vacances.gsl" gsl edit "mes vacances.gsl"
@ -41,11 +43,11 @@ l'article à partir de ce repère (servant de titre h1).
``` ```
type: page type: page
title: POST TITLE title: POST TITLE
slug: MY-SLUG (si espaces, GSL les convertira en -) slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article) info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD date: YYYY-MM-DD (ou DD-MM-YYY si DOMAIN configuré en fr)
tags: TAG1,Mon TAG2,TAG3 (séparé par une virgule) tags: TAG1,Mon TAG2 (séparé par une virgule)
``` ```
### Page ou Article ? ### Page ou Article ?
@ -53,14 +55,14 @@ Vous devez spécifier pour chaque article si c'est une **page** ou un
**post** **post**
#### Page (index, 404, about...) #### Page (index, 404, about...)
Création HTML à la racine selon le slug: /MY-SLUG.html Création HTML à la racine du serveur selon le slug: /MY-SLUG.html
``` ```
type: page type: page
slug: 404 slug: 404
``` ```
#### Post (monarticle) #### Post (mon article)
Création HTML dans un dossier selon le slug: /MY-SLUG/index.html Création HTML dans un dossier selon le slug: /MY-SLUG/index.html
**! Le slug ne doit pas commencer par un /** **! Le slug ne doit pas commencer par un /**
@ -81,7 +83,7 @@ Définir un ou plusieurs de ces marqueurs et utiliser ``` : ``` comme
séparateur séparateur
``` ```
abbr: COURT : LONG abbr: COURT : Long
file: NOM : NOM-DU-FICHIER : Text alternatif file: NOM : NOM-DU-FICHIER : Text alternatif
link: NOM : URL : Text alternatif link: NOM : URL : Text alternatif
code: NUMERO : NOM-DU-FICHIER : Text alternatif code: NUMERO : NOM-DU-FICHIER : Text alternatif
@ -90,7 +92,7 @@ image: NUMERO : NOM-DU-FICHIER : TEXT-ALTERNATIF
``` ```
## Contenu de l'article: ## Contenu de l'article:
Les marqueurs (hors listes) *et leur contenu* (ex: ```__monfichier...```) Les marqueurs (hors listes) *et leur contenu* (ex: ```·ceci est en gras·```)
**doivent être sur la même ligne**. **doivent être sur la même ligne**.
Les marqueurs à retenir et leur Combinaison de touches sur un clavier Les marqueurs à retenir et leur Combinaison de touches sur un clavier
@ -115,7 +117,7 @@ il ad•juge• : pas de pub !
Dans l'article... Dans l'article...
``` ```
·Tout est en gras· ·Texte en gras·
``` ```
### Écrire en Italique ### Écrire en Italique
@ -153,9 +155,8 @@ Les propriétés CSS ne sont pas définies
``` ```
### Paragraphes ### Paragraphes
Au début d'une nouvelle ligne, ouvrez avec ( et fermez avec ). - Ouvrir avec ```(``` et fermez avec ```)``` **Au début d'une nouvelle ligne**.
Vous pouvez définir le nom de la classe du paragraphe en ajoutant la - Définir le nom de la classe du paragraphe,par exemple : "p3" (optionnel)
valeur désirée ; par exemple : p3
Dans l'article... Dans l'article...
``` ```
@ -164,19 +165,19 @@ Paragraphe avec une classe p3 en css
) )
( (
Paragraphe sans classe Paragraphe sans classe personnalisée
) )
``` ```
### Liens ### Liens
Définir en METAS Définir en METAS...
``` ```
link: Mon lien : URL : Alt text link: Mon lien : URL : Alt text
link: https://a-lec.org/ : URL : Alt text link: https://a-lec.org/ : URL : Alt text
``` ```
Dans l'article.. Dans l'article...
- Écrivez ```_``` devant le nom du lien - Écrivez ```_``` devant le nom du lien
- Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet - Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet
@ -193,7 +194,7 @@ file: Mon fichier : FILENAME : ALT-TEXT
Dans l'article... Dans l'article...
``` ```
__Mon fichier __Mon fichier est super léger
``` ```
### Images ### Images
@ -205,19 +206,20 @@ image: 2 : FILENAME : ALT-TEXT
``` ```
Dans l'article... Dans l'article...
Définir le marqueur ```_image``` sur une seule ligne et spécifiez les Définir le marqueur ```_image``` et spécifiez les
valeurs séparées par ```:```. ```+``` indique l'ouverture dans une valeurs séparées par ```:```. ```+``` indique l'ouverture dans une
nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire
Les valeurs:
- Numero d'image - Numero d'image
- Alignement: l,r,(g,d également),c pour gauche, droite, centre) - Alignement: l,r,(g,d également),c pour gauche, droite, centre)
- - maclasse au lieu de l,r,c pour utiliser la classe css "maclasse" - - maclasse au lieu de l,r,g,d,c pour utiliser la classe css "maclasse"
- - + (class="center") - - + (class="center")
- Longueur width: (avec unité) - Longueur width: (avec unité)
- - + (taille originale) - - + (taille originale)
- Largeur height: (avec unité) - Largeur height: (avec unité)
- - + (longueur définie, largeur originale) - - + (longueur définie, largeur originale)
- Champ non vide: Lien de l'image dans un nouvel onglet - + (Lien de l'image dans un nouvel onglet)
Exemple d'images affichées l'une à côté de l'autre Exemple d'images affichées l'une à côté de l'autre
@ -255,7 +257,7 @@ _code:python
``` ```
### IMPORT de code brut (sera exécuté par le navigateur) ### IMPORT de code brut (sera exécuté par le navigateur)
Définir en METAS Définir en METAS...
``` ```
brut : 1 : FILENAME brut : 1 : FILENAME
@ -267,8 +269,9 @@ _brut:1
``` ```
### Citation simple ### Citation simple
Définissez un bloc pour la citation. Utilisez ```---``` Commun aux citations :
Vous pouvez définir une classe CSS spécifique ```--- ma-classe-css``` - Définir un bloc pour la citation. Utilisez ```---```
- Définir une classe CSS spécifique ```--- ma-classe-css``` (optionnel)
Dans l'article... Dans l'article...
@ -310,7 +313,7 @@ _book: Esperanza 64
### Créer des listes ### Créer des listes
L'arborescence est "infinie". L'arborescence est "infinie".
- Définir le début d'une liste par ```<<``` et sa fin par ```>>``` - Définir le début d'une liste par ```<<``` et sa fin par ```>>```
- Définir une classe CSS après ```<< ``` - Définir une classe CSS après ```<< ``` (optionnel)
Dans l'article... Dans l'article...
- utilisez ```=``` pour définir une liste simple (ul) - utilisez ```=``` pour définir une liste simple (ul)

View File

@ -16,24 +16,25 @@ droits en écriture des dossiers
``` ```
# Pour le dossier du binaire # Pour le dossier du binaire
sudo rsync -a usr/local/bin/gsl /usr/local/bin/gsl sudo rsync -a usr/local/bin/gsl /usr/local/bin/gsl
sudo chown USER:GROUP/usr/local/bin/gsl sudo chown USER:GROUP /usr/local/bin/gsl
# Pour les dossiers de scripts # Pour les dossiers de scripts
sudo mkdir -p "/var/lib/gsl" sudo mkdir -p "/var/lib/gsl"
sudo chown -R USER:GROUP "/var/lib/gsl" sudo chown -R USER:GROUP /var/lib/gsl
rsync -a var/lib/gsl/ /var/lib/gsl/ rsync -a var/lib/gsl/ /var/lib/gsl/
# Pour le dossier de logs # Pour le dossier de logs
sudo mkdir -p "/var/log/gsl" sudo mkdir -p "/var/log/gsl"
sudo chown -R USER:GROUP "/var/log/gsl" sudo chown -R USER:GROUP /var/log/gsl
# Pour le dossier de configuration # Pour le dossier de configuration
sudo mkdir -p /etc/gsl sudo mkdir -p /etc/gsl
sudo chown -R USER:GROUP "/etc/gsl" sudo chown -R USER:GROUP /etc/gsl
rsync -a etc/gsl/ /etc/gsl/
# Pour l'autocompletion des articles dans la commande # Pour l'autocompletion des articles dans la commande
sudo rsync -a usr/share/bash-completion/completions/gsl /usr/share/bash-completion/completions/gsl sudo rsync -a usr/share/bash-completion/completions/gsl /usr/share/bash-completion/completions/gsl
sudo chown USER:GROUP "/usr/share/bash-completion/completions/gsl" sudo chown USER:GROUP /usr/share/bash-completion/completions/gsl
``` ```
Attention: GSL aura besoin de créer des sous-dossier dans le serveur, Attention: GSL aura besoin de créer des sous-dossier dans le serveur,
@ -42,7 +43,9 @@ donner les droits
# Arborescence des dossiers utilisés par GSL # Arborescence des dossiers utilisés par GSL
------------------------------------------------------------------------ ------------------------------------------------------------------------
Note: ```+``` indique que GSL créera ces dossiers Note:
- ```+``` indique que GSL créera ces dossiers
- DOMAIN représente le nom de domaine renseigné dans le questionnaire
- /etc/gsl - /etc/gsl
- /var/log/gsl - /var/log/gsl
@ -50,7 +53,7 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /help/ - - /help/
- - /scripts/ - - /scripts/
- - /domains - - /domains
- - - /DOMAIN - - - /DOMAIN +
- - - - /templates/ + - - - - /templates/ +
- - - - /files/ + - - - - /files/ +
- - - - /images/ + - - - - /images/ +
@ -60,11 +63,11 @@ Note: ```+``` indique que GSL créera ces dossiers
- - - /DOMAIN + - - - /DOMAIN +
- /SRV (i.e. /var/www) - /SRV (i.e. /var/www)
- - /DOMAIN - - /DOMAIN +
- - - /wip - - - /wip +
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) - - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) +
- - - /www - - - /www +
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) - - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) +
# Fichiers créés par GSL # Fichiers créés par GSL
@ -81,4 +84,4 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /db/ - - /db/
- - - domains.db (registred domains) - - - domains.db (registred domains)
- - - DOMAIN/ - - - DOMAIN/
- - - - (file).gsl.db (Un par article) - - - - (article).gsl.db (un par article)

View File

@ -7,7 +7,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters param | -p : Configure some parameters
css : Show used CSS classes css : Show used CSS classes
tips | -t : Show tips and advises you should know tips | -t : Show tips and advises you should know
@ -19,7 +18,7 @@ $ gsl (ARG)
setdir | -D : Show current directory DOMAIN or set it setdir | -D : Show current directory DOMAIN or set it
log | -L (OPTS) : Show logs from all sessions log | -L (OPT) : Show logs from all sessions
clean | -C : Logs saved to {DATE}.gsl.log and cleaned clean | -C : Logs saved to {DATE}.gsl.log and cleaned
all : clean all saved logs, keep current all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors) -i | -w | -e : from levels (infos, warnings, errors)
@ -36,16 +35,16 @@ $ gsl (ARG)
domain : Domains registred database domain : Domains registred database
(FILE) : (FILE) ; .gsl (FILE) : (FILE) ; .gsl
db (FILE) : Show DB statuses from (FILE) db (FILE) : Show DB datas from (FILE)
sync (OPT) : Sync Templates to www and wip sync (OPT) : Sync Templates to www and wip
wip : Only to wip server (also done with make) wip : Only to wip server (also done with make)
www : Only to www server (also done with www) www : Only to www server (also done with www)
check | -C (OPTIONS) : Check Post(s) errors from PWD folder check | -C (OPTI) : Check Post(s) errors from PWD folder
-N : Check only articles not in DB -N : Check only articles not in DB
-F : Force Check again ; Recreate in Database -F : Force Check again ; Create Database
(FILE) : Only this (FILE) (FILE) : Only this (FILE)
make | -M (OPTIONS) : Make all HTML articles or only (FILE) make | -M (OPTIONS) : Make all HTML articles or only (FILE)
@ -55,19 +54,21 @@ $ gsl (ARG)
www (OPT1) (OPT2) : Add/Remove Post(s) in www server www (OPT1) (OPT2) : Add/Remove Post(s) in www server
(OPT1): (OPT1):
sync : Same as "sync www" sync : Same as "sync www"
add : Add all/(FILE) to www server add : Add (OPT2) to www server
rmove : remove all/(FILE) from www server remove : remove (OPT2) from www server
(OPT2): (OPT2):
all : Select all post with wip statuses all : Select all post with wip statuses (FORCE !)
(FILE) : Select specific post (if wip status) (FILE) : Select specific post (if wip status)
wip : Same as www for wip wip : Same as www for wip server
add : Same as make -F (i.e. gsl wip add all)
sidebar | -S : Show Posts in list (ARG) (POS) (FILE) sidebar | -S : Show Posts in list (ARG) (POS) (FILE)
(ARG): (ARG):
add | -a : Put article at (POS). Remove last, roll from (POS) add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing) latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn -v : Show local versionn
--version : Like -v + changes --version : Like -v + changes

View File

@ -23,7 +23,7 @@ X is 1 to 6 from current title
- bold: xxx_bold - bold: xxx_bold
- strong: xxx_strong - strong: xxx_strong
- emphasis: xxx_em - emphasis: xxx_em
- strike: xxx_strike - strike: xxx_strike (span)
- inline code: xxx_icode - inline code: xxx_icode
### Paragraphs ### Paragraphs
@ -46,11 +46,11 @@ myclass is from content marker (i.e. _image:1:myclass:90:90:+)
### pre-codes from source file ### pre-codes from source file
X is the NAME/NBR registred in header X is the NAME/NBR registred in header
- pre: xxx_code-block xxx_code-block-X - pre: xxx_code-block xxx_code-block-X
- span line: xxx_code-line - span line: xxx_code-line
- span content: xxx_code-content - span content: xxx_code-content
- p after pre: xxx_code-p - div after pre: xxx_code-p
- link source: xxx_code-link - link source: xxx_code-link
### Liste (ol | ul | li) ### Liste (ol | ul | li)
X is the item mark nbr (i.e. "+++" = 3, "=" = 1) X is the item mark nbr (i.e. "+++" = 3, "=" = 1)

View File

@ -25,10 +25,22 @@ _image:1:+
_image:1:c:640px:+ _image:1:c:640px:+
``` ```
## Make (changes in source file) ## Make (changes in your template)
If you change the content of a file (script code, image...), you will If you change the content of a file in your template
have to make -F your article, and do www add after (script code, image, footer...), and you want ALL your articles to be
updated, you will have to :
- gsl sync
- gsl make -F
- gsl www add all
For only one article (myarticle).gsl:
- gsl sync
- gsl make -F (myarticle) (preview it first with wip server)
- gsl www remove (myarticle)
- gsl www add (myarticle)
## Sidebar ## Sidebar
If your remove a www or wip page, and you put it in sidebar, If your remove a www or wip page, and you have put it in the sidebar,
do not forget to replace it with another article do not forget to replace it with another article. You can also have an
automatic sidebar with
- gsl sidebar latest

View File

@ -1,69 +0,0 @@
# Créer un Template
------------------------------------------------------------------------
Vous devrez pour que votre site soit à vôtre goût créer et définir les
styles dans styles.css. Placez ce fichier (en fonction du choix de votre
configuration du DOMAIN) dans :
- HOME: ~/.config/gsl/domains/DOMAIN/templates/
- GLOBAL: /var/lib/gsl/domains/DOMAIN/templates/
Concernant les contenus images et fichiers dans vos articles, placez-les
dans les dossiers
- .../templates/images
- .../templates/files
Astuce: Une fois votre article créé, vous verrez dans sa source HTML que
beaucoup d'éléments ont une class="ACRONYM_uneclass". Utilisez
ces classes dans style.css pour décorer votre site à votre goût.
Pour mettre à jour et voir vos modifications de styles
```
gsl sync
```
GSL synchronisera votre template sur votre webserver.
Rechargez votre page dans votre navigateur
Si vous avez modifié header.html ou footer.html dans votre dossier
/templates, ou si de nouvelles fonctions sont arrivées et concernent les
pages HTML dans GSL, il vous faudra reconstruire toutes les pages
```
gsl make -F
```
## Listes de classes utilisées.
Rappel: les classes et IDs commencent par votre ACRONYM configuré,
lors de la création d'un domaine avec ```gsl new```, suivi par ```_```.
Pour une meilleure lisibilité, votre ACRONYM est marqué xxx.
### Dans body, header
- ID=
- - body: xxx_page
- - header: xxx_banner
- - logo dans header: xxx_site-logo
- - title dans header: xxx_site-title
- - name dans header: xxx_site-name
- - Description dans header: xxx_site-description
- - ```<section>``` avant ```<article>```: xxx_page-wrapper
- - article: xxx_SLUG (SLUG est le "slug: SLUG" de l'article)
- - div metas (auteur, date...): xxx_metas
- - p dans div metas: xxx_auteur
### Dans ```<article>```
- CLASS=
- hX: xxx_title-X
- - div après chaque titre ```<hX>```: xxx_content-p xxx_content-pX
- - p dans div content-p: xxx_paragraph
- - - si contenu ```( 1z```: xxx_paragraph-1z
- - code pour les inline-code avec ```¤...¤```: xxx_icode
- strikee: xxx_strike
- - li (liste) en fonction du nombre N de ```= | +```: xxx__list-li x_list-N
- - ul (liste) simple: xxx_list-ul
- - ol (liste) ordonnée: xxx_list-ol
... more to be listed here

View File

@ -1,4 +1,4 @@
## [0.0.93] ## [0.1.0]
## Please, see help (and documentations in help folder) ## Please, see help (and documentations in help folder)
@ -34,6 +34,7 @@
- - /var/log/gsl: for logs files (.gitkeep) - - /var/log/gsl: for logs files (.gitkeep)
- New help folder in - New help folder in
- - /var/lib/gsl/help (removed "helps" one) - - /var/lib/gsl/help (removed "helps" one)
- - - Renamed documentation files (not all translated ; some in french)
### Logs ### Logs
- Better logs harmony - Better logs harmony
@ -76,6 +77,7 @@
### new ARGUMENTS ### new ARGUMENTS
- new (page|post) (name): Create article, show its content + check it - new (page|post) (name): Create article, show its content + check it
- new domain: New domain configuration creator - new domain: New domain configuration creator
- new author: Same as author edit
- edit domains: Set/Edit registred domains database - edit domains: Set/Edit registred domains database
- edit author: Same as author edit - edit author: Same as author edit
- author edit: Opens nano to Add/Remove authors (one per line) by DOMAIN - author edit: Opens nano to Add/Remove authors (one per line) by DOMAIN
@ -83,8 +85,8 @@
- check -N: Only check newer articles not in DB - check -N: Only check newer articles not in DB
- clean all: Remove all backups (only) files - clean all: Remove all backups (only) files
- sidebar: add|replace|latest|oldest (See gsl help) - sidebar: add|replace|latest|oldest (See gsl help)
- www sync: Same as sync www - www sync: Same as sync www (see gsl help)
- wip ...: Same as www but for wip - wip ...: Same as www but for wip (see gsl help)
### Markers ### Markers
- css: MYCLASS Customize each article with your CSS (optional) - css: MYCLASS Customize each article with your CSS (optional)

View File

@ -54,19 +54,17 @@ cat <<EOFOOTER > "$gsl_dir_domain_tpl/footer.html"
<footer id="${site_css}_footer"> <footer id="${site_css}_footer">
<h1>$gsl_about $site_title</h1> <h1>$gsl_about $site_title</h1>
<div id="${site_css}_footer-infos"> <div id="${site_css}_footer-infos">
<p>...<p> <p>$site_about<p>
</div> </div>
<div id="${site_css}_footer-about"> <div id="${site_css}_footer-about">
<p class="${site_css_footer-p}"> <ul>
<ul>
<li><a href="$site_url"><b>$site_title</b></a>: $site_about</li> <li><a href="$site_url"><b>$site_title</b></a>: $site_about</li>
<li>Contact: $site_mail</li> <li>Contact: $site_mail</li>
<li>Copyright: $site_cr</li> <li>Copyright: $site_cr</li>
<li>$gsl_gen: <a href="https://git.a-lec.org/echolib/gsl" target="_blank"><b>GSL: Statique Littérateur</b></a></li> <li>$gsl_gen: <a href="https://git.a-lec.org/echolib/gsl" target="_blank"><b>GSL: Statique Littérateur</b></a></li>
<li>RSS: <a type="application/rss+xml" href="$site_url/rss.xml">$site_url/rss.xml</a></li> <li>RSS: <a type="application/rss+xml" href="$site_url/rss.xml">$site_url/rss.xml</a></li>
</ul> </ul>
</p>
</div> </div>
</footer> </footer>
EOFOOTER EOFOOTER

View File

@ -238,7 +238,7 @@ fi
HTML_icode_start="<code class=\"${site_css}_icode\">" HTML_icode_start="<code class=\"${site_css}_icode\">"
HTML_strong_start="<strong class=\"${site_css}_strong\">" HTML_strong_start="<strong class=\"${site_css}_strong\">"
HTML_em_start="<i class=\"${site_css}_em\">" HTML_em_start="<i class=\"${site_css}_em\">"
HTML_strike_start="<strike class=\"${site_css}_strike\">" HTML_strike_start="<span class=\"${site_css}_strike\">"
HTML_bold_start="<b class=\"${site_css}_bold\">" HTML_bold_start="<b class=\"${site_css}_bold\">"
#---------------------------------------------------------------------- #----------------------------------------------------------------------
@ -575,13 +575,13 @@ $(while read -r "code_ln" "code_content"
"<span $pre_css_content>$code_content</span>" "<span $pre_css_content>$code_content</span>"
done < <(cat -n "$gsl_dir_domain_files/$header_f2")) done < <(cat -n "$gsl_dir_domain_files/$header_f2"))
</pre> </pre>
<p $pre_css_p> <div $pre_css_p>
<a $pre_css_source <a $pre_css_source
target="_blank" target="_blank"
href="${srv_uri}files/$header_f2"$pre_title> href="${srv_uri}files/$header_f2"$pre_title>
$header_f3 $header_f3
</a> </a>
</p> </div>
EOCODE EOCODE
# for/from make__file_codes (Replace mark till no more) # for/from make__file_codes (Replace mark till no more)
@ -650,11 +650,11 @@ do
esac esac
case "$width" in case "$width" in
"+") target=true;unset height ;; "+") target=true;unset width ;;
esac esac
case "$height" in case "$height" in
"+") target=true ;; "+") target=true;unset height ;;
esac esac
image_css="class=\"${site_css}_image $image_class\"" image_css="class=\"${site_css}_image $image_class\""

View File

@ -37,8 +37,8 @@ do
case "$1" in case "$1" in
check) Checkers ;; check) Checkers ;;
make) Makers ;; make) Makers ;;
www) WWW__validate "$2" ;; www) WWW__OPTIONS "$2" ;;
wip) WIP__remove "$2" ;; wip) WIP__remove ;; # wip command is only a remove case || make
esac esac
# In DB, show logs for server # In DB, show logs for server

View File

@ -5,10 +5,14 @@
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007 # License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
#----------------------------------------------------------------------
# Manage server options
#----------------------------------------------------------------------
#====================================================================== #======================================================================
# w<< (ARGUMENT) # www|wip (ARGUMENT)
# $1: process # $1: process www/wip
# $2: file / all # $2: sync/add/remove
# $3: (file)/all
#====================================================================== #======================================================================
srv__OPTIONS() { srv__OPTIONS() {
case "$2" in case "$2" in
@ -23,44 +27,49 @@ case "$3" in
if__file "$3" post if__file "$3" post
gsl_post="$3" gsl_post="$3"
post_only="$3" post_only="$3"
case "$1" in
wip)
gsl make "$3"
exit
;;
esac
;; ;;
all) all)
case "$1" in echo "! You're about to $2 all $1 articles"
www) read -rp "- Continue (Y|*) ? " www_confirm
echo "! You're about to put online all wip articles" case "$www_confirm" in
read -rp "- Continue (YES|*)" www_confirm yes|YES|Y) gsl_all="$3" ;;
case "www_confirm" in *) echo "# Abandon"; exit ;;
YES) gsl_www="$3" ;;
*) echo "# Abandon"; exit ;;
esac
;;
wip)
gsl make
exit
;;
esac esac
;; ;;
"") "")
gsl__invalid_option "$3" "all|file" gsl__invalid_option "$3" "all|(file)"
;; ;;
esac esac
www_process=true # wip add [OPT]: A shortcut of make -F
case "$1" in
wip)
case "$2" in
add)
if [[ "$post_only" ]];then
gsl make -F "$3"
exit
elif [[ "$gsl_all" ]];then
gsl make -F
exit
fi
;;
esac
;;
esac
[[ "$gsl_post" ]] || log_info_all=" ALL" [[ "$gsl_post" ]] || log_info_all=" ALL"
log__process_begin "Server ($1 online)${log_info_all}" log__process_begin "Server ($1 online)${log_info_all}"
posts__loop "$1" "$2" posts__loop "$1" "$2"
[[ "$1" == "www" && "$www_new" ]] \
&& create__RSS_feed \
&& stats__datas # Statoolinfos
# For logs ; set post or unset if all # For logs ; set post or unset if all
[[ $log_info_all ]] && unset gsl_post [[ $log_info_all ]] && unset gsl_post
[[ $post_only ]] && gsl_post="$post_only" [[ $post_only ]] && gsl_post="$post_only"
@ -69,149 +78,6 @@ log__process_end "Server ($1 online)${log_info_all}"
} }
#======================================================================
# wip: remove online
#======================================================================
WIP__remove() {
case "$1" in
remove)
if [[ -f "$gsl_srv_post_wip" ]];then
rm -f "$gsl_srv_post_wip" && \
gsl__logs_print -w -srv wip \
"Article deleted ; no more online" \
"$gsl_srv_post_wip"
find "$gsl_srv_wip" -type d -empty -delete && \
gsl__logs_print -w -srv wip \
"Cleaned empty directories" \
"$gsl_srv_wip"
DB__set_status "wip-del"
fi
return
;;
esac
}
#======================================================================
# www: Valid online
#======================================================================
WWW__validate() {
case "$1" in
remove)
if [[ -f "$gsl_srv_post_www" ]];then
rm -f "$gsl_srv_post_www" && \
gsl__logs_print -w -srv www \
"Article deleted ; no more online" \
"$gsl_srv_post_www"
find "$gsl_srv_www" -type d -empty -delete && \
gsl__logs_print -w -srv www \
"Cleaned empty directories" \
"$gsl_srv_www"
DB__set_status "www-del"
fi
create__RSS_feed
stats__datas # Statoolinfos
return
;;
esac
if ! [[ $article_Status_chk ]];then
gsl__logs_print -e -srv www \
"Article not yet checked" \
"$PWD/$gsl_post"
return
elif (( $article_Status_chk != $article_Status_wip ));then
gsl__logs_print -e -srv www \
"Article not yet converted with make" \
"$gsl_srv_post_wip"
return
elif (( $article_Status_chk == $article_Status_www )) && \
[[ -f "$gsl_srv_post_www" ]];then
gsl__logs_print -w -srv www \
"Article already online" \
"$gsl_srv_post_www"
return
else
if (( $article_Status_chk == $article_Status_wip ));then
[[ "$article_Type" == "post" ]] \
&& mkdir -p "$gsl_slug_dir_www"
rsync -a "$gsl_srv_post_wip" "$gsl_srv_post_www" && \
gsl__logs_print -i -srv www \
"Article validated online" \
"$gsl_srv_post_www" && \
DB__set_status "www"
create__RSS_feed
stats__datas # Statoolinfos
fi
fi
}
#======================================================================
# Get arguments from COMMAND (sync)
# $2: process (wip|www|"")
#======================================================================
sync__OPTIONS() {
gsl_srv_wip="$site_server/$site_ndd/wip"
gsl_srv_www="$site_server/$site_ndd/www"
case "$1" in
""|www|wip)
! [[ "$1" ]] \
&& srv_proc="wip+www" \
|| srv_proc="$1"
log__process_begin "Sync $srv_proc"
case "$1" in
"")
sync__srv "$srv_proc" "$gsl_srv_wip"
sync__srv "$srv_proc" "$gsl_srv_www"
;;
www)
sync__srv "$srv_proc" "$gsl_srv_www"
;;
wip)
sync__srv "$srv_proc" "$gsl_srv_wip"
;;
esac
log__process_end "Sync $srv_proc"
;;
*)
gsl__invalid_option "$2" "www|wip"
;;
esac
exit
}
#======================================================================
# Sync Files from Templates to webserver
# $1: process (wip|www|wip+www)
# $2: Folder
#======================================================================
sync__srv() {
# Sync Files and Folders
mkdir -p "$2"
rsync -a --delete "$gsl_dir_domain_tpl" "$2"
rsync -a --delete "$gsl_dir_domain_files" "$2"
rsync -a --delete "$gsl_dir_domain_images" "$2"
rsync -a --delete "$gsl_dir_domain_listings" "$2"
gsl__logs_print -i -srv $1 \
"Sync: $gsl_dir_domain/" \
"$2/"
}
#====================================================================== #======================================================================
# Set Post/Page file for www+wip from page type and slug # Set Post/Page file for www+wip from page type and slug
# Find server post/page file and log # Find server post/page file and log
@ -302,39 +168,174 @@ esac
} }
#----------------------------------------------------------------------
# Manage wip option (Only remove, as add is same as make)
#----------------------------------------------------------------------
#====================================================================== #======================================================================
# Remove WIP page # wip: remove online
# If error from check and exists
#====================================================================== #======================================================================
wip__remove() { WIP__remove() {
! [[ -f "$gsl_srv_post_wip" ]] && return if [[ -f "$gsl_srv_post_wip" ]];then
rm -f "$gsl_srv_post_wip" && \
gsl__logs_print -w -srv wip \
"Article deleted ; no more preview online" \
"$gsl_srv_post_wip"
log_Type="in $article_Slug" find "$gsl_srv_wip" -type d -empty -delete && \
gsl__logs_print -w -srv wip \
"Cleaned empty directories" \
"$gsl_srv_wip"
# Remove from old slug, if new article Type set DB__set_status "wip-del"
[[ "$old_Type" ]] \ fi
&& article_Type="$old_Type" \ return
&& article_Slug="$old_Slug" \ }
&& log_Type="from old $old_Type"
rm -f "$gsl_srv_post_wip" && \
gsl__logs_print -w -S -wip \
"Article deleted ; no more preview" \
"$gsl_srv_post_wip"
find "$gsl_srv_wip" -type d -empty -delete && \ #----------------------------------------------------------------------
gsl__logs_print -w -S -wip \ # Manage www options
"Cleaned empty directories" \ #----------------------------------------------------------------------
"$gsl_srv_wip" #======================================================================
# www OPTIONS
# $1: add/remove
#======================================================================
WWW__OPTIONS() {
case "$1" in
add) WWW__online ;;
remove) WWW__remove ;;
esac
}
gsl__logs_print -w -R -wip \
"Found $1 $log_Type" \
"$gsl_srv_post_wip"
if [[ "$old_Type" ]];then #======================================================================
unset old_Type old_Slug log_Type # www remove online
#======================================================================
WWW__remove() {
if [[ -f "$gsl_srv_post_www" ]];then
rm -f "$gsl_srv_post_www" && \
gsl__logs_print -w -srv www \
"Article deleted ; no more online" \
"$gsl_srv_post_www"
[[ -f "$gsl_file_db_post" ]] \ find "$gsl_srv_www" -type d -empty -delete && \
&& source "$gsl_file_db_post" gsl__logs_print -w -srv www \
"Cleaned empty directories" \
"$gsl_srv_www"
DB__set_status "www-del"
www_new=true
fi
return
}
#======================================================================
# www: Valid online
#======================================================================
WWW__online() {
# Add wip article to www server
WWW__add() {
[[ "$article_Type" == "post" ]] \
&& mkdir -p "$gsl_slug_dir_www"
rsync -a "$gsl_srv_post_wip" "$gsl_srv_post_www" && \
gsl__logs_print -i -srv www \
"Article validated online" \
"$gsl_srv_post_www" && \
DB__set_status "www"
www_new=true
}
if ! [[ $article_Status_chk ]];then
gsl__logs_print -e -srv www \
"Article not yet checked" \
"$PWD/$gsl_post"
return
elif (( $article_Status_chk != $article_Status_wip ));then
gsl__logs_print -e -srv www \
"Article not yet converted with make" \
"$gsl_srv_post_wip"
return
else
if [[ ! -f "$gsl_srv_post_www" ]];then
WWW__add
else
if [[ "$gsl_all" ]];then
WWW__add
elif (( $article_Status_chk != $article_Status_www ));then
WWW__add
else
gsl__logs_print -w -srv www \
"Article already online" \
"$gsl_srv_post_www"
fi
fi
fi fi
} }
#----------------------------------------------------------------------
# Manage sync options
#----------------------------------------------------------------------
#======================================================================
# Get arguments from COMMAND (sync)
# $2: process (wip|www|"")
#======================================================================
sync__OPTIONS() {
gsl_srv_wip="$site_server/$site_ndd/wip"
gsl_srv_www="$site_server/$site_ndd/www"
case "$1" in
""|www|wip)
! [[ "$1" ]] \
&& srv_proc="wip+www" \
|| srv_proc="$1"
log__process_begin "Sync $srv_proc"
case "$1" in
"")
sync__srv "$srv_proc" "$gsl_srv_wip"
sync__srv "$srv_proc" "$gsl_srv_www"
;;
www)
sync__srv "$srv_proc" "$gsl_srv_www"
;;
wip)
sync__srv "$srv_proc" "$gsl_srv_wip"
;;
esac
log__process_end "Sync $srv_proc"
;;
*)
gsl__invalid_option "$2" "www|wip"
;;
esac
exit
}
#======================================================================
# Sync Files from Templates to webserver
# $1: process (wip|www|wip+www)
# $2: Folder
#======================================================================
sync__srv() {
# Sync Files and Folders
mkdir -p "$2"
rsync -a --delete "$gsl_dir_domain_tpl" "$2"
rsync -a --delete "$gsl_dir_domain_files" "$2"
rsync -a --delete "$gsl_dir_domain_images" "$2"
rsync -a --delete "$gsl_dir_domain_listings" "$2"
gsl__logs_print -i -srv $1 \
"Sync: $gsl_dir_domain/" \
"$2/"
}c
}