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
- 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]
### New
- Basic RSS feed created at each www (COMMAND)

View File

@ -1,10 +1,11 @@
# GSL: Statique Littérateur
------------------------------------------------------------------------
GSL est un générateur de blogs/sites-web basé sur leur nom de domaine,
écrit en bash, afin de réduire ses dépendances au minimum. Les pages
générées sont presque entièrement statiques, à l'exception du module de
liste des derniers articles (sidebar) placé en include. Nginx peut être
GSL est un générateur de blogs/sites-web multiples basé sur leur nom de
domaine. Il est écrit en bash, afin de réduire ses dépendances au minimum.
Les pages générées sont presque entièrement statiques, à l'exception du
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.
@ -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
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
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
------------------------------------------------------------------------
Préparer un fichier de logo. L'important sera de renseigner le nom du
fichier lors du questionnaire.
Préparer un fichier de logo. L'important sera de renseigner un nom du
fichier sinon, lors du questionnaire.
Attention: GSL aura besoin de créer des sous-dossier dans le serveur,
renseigné dans le questionnaire. (i.e. /var/www/). Il faut donc lui
donner les droits
Attention: GSL aura besoin de créer des sous-dossiers (par DOMAIN) dans
le serveur, renseigné dans le questionnaire. (i.e. /var/www/). Il faut
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
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
------------------------------------------------------------------------
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
@ -61,19 +62,19 @@ cd MYFOLDER
gsl setdir
```
ou:
ou manuellement:
- 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
------------------------------------------------------------------------
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
gsl author edit
gsl new author
```
@ -91,18 +92,19 @@ gsl help -w
## Procédures de prévisualisation et mise en ligne
------------------------------------------------------------------------
- gsl check monarticle.gsl (vérifie l'écriture en gsl)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip)
- gsl www add monarticle.gsl (copiel la page dans le dossier www)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip dans le serveur)
- gsl www add monarticle.gsl (copie la page dans le dossier www)
# Comment gérer la sidebar
------------------------------------------------------------------------
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
configuration du domaine (DOMAIN.conf)
configuration du domaine (DOMAIN.conf) (via le questionnaire)
```
gsl sidebar latest
gsl sidebar replace 2 monarticle.gsl
```
@ -118,6 +120,8 @@ gsl www add mona<TAB>
# Help
------------------------------------------------------------------------
```
# GSL: Statique Littérateur
$ gsl (ARG)
readme : Show README.md instructions
help | -h (OPT) : This Help and how to
@ -125,7 +129,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters
css : Show used CSS classes
tips | -t : Show tips and advises you should know
@ -137,7 +140,7 @@ $ gsl (ARG)
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
all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors)
@ -154,16 +157,16 @@ $ gsl (ARG)
domain : Domains registred database
(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
wip : Only to wip server (also done with make)
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
-F : Force Check again ; Recreate in Database
-F : Force Check again ; Create Database
(FILE) : Only this (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
(OPT1):
sync : Same as "sync www"
add : Add all/(FILE) to www server
rmove : remove all/(FILE) from www server
add : Add (OPT2) to www server
remove : remove (OPT2) from www server
(OPT2):
all : Select all post with wip statuses
all : Select all post with wip statuses (FORCE !)
(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)
(ARG):
add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn
--version : Like -v + changes
-vv : Shown local and repo Versions
```

View File

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

View File

@ -56,12 +56,11 @@ gsl_files_help=(
$gsl_dir_help/comment_ecrire-article.md
$gsl_dir_help/gsl_help.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-add_remove_authors.md
$gsl_dir_help/how_to-parameters_conf.md
$gsl_dir_help/how_to-CSS_classes.md
$gsl_dir_help/how_to-Tips_Advises.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_parameters_conf.md
$gsl_dir_help/how-to_CSS_classes.md
$gsl_dir_help/how-to_Tips_Advises.md
)
gsl_dirs_w=(
@ -147,7 +146,7 @@ gsl_marker_link='link:'
gsl_marker_flink='file:'
# Closed HTML static code
HTML_strike_close='</strike>'
HTML_strike_close='</span>'
HTML_icode_close='</code>'
HTML_em_close='"</i>'
HTML_strong_close='</strong>'

View File

@ -3,7 +3,7 @@
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
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.
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.
```
# Crréer une page nommée index (deviendra /index.html)
# Créer une page nommée index (deviendra /index.html)
gsl new page index
# 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
utilisant l'autocompletion (<tab>)
Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion
(<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"
@ -41,11 +43,11 @@ l'article à partir de ce repère (servant de titre h1).
```
type: page
title: POST TITLE
slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD
tags: TAG1,Mon TAG2,TAG3 (séparé par une virgule)
slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD (ou DD-MM-YYY si DOMAIN configuré en fr)
tags: TAG1,Mon TAG2 (séparé par une virgule)
```
### Page ou Article ?
@ -53,14 +55,14 @@ Vous devez spécifier pour chaque article si c'est une **page** ou un
**post**
#### 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
slug: 404
```
#### Post (monarticle)
#### Post (mon article)
Création HTML dans un dossier selon le slug: /MY-SLUG/index.html
**! 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
```
abbr: COURT : LONG
abbr: COURT : Long
file: NOM : NOM-DU-FICHIER : Text alternatif
link: NOM : URL : Text alternatif
code: NUMERO : NOM-DU-FICHIER : Text alternatif
@ -90,7 +92,7 @@ image: NUMERO : NOM-DU-FICHIER : TEXT-ALTERNATIF
```
## 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**.
Les marqueurs à retenir et leur Combinaison de touches sur un clavier
@ -115,7 +117,7 @@ il ad•juge• : pas de pub !
Dans l'article...
```
·Tout est en gras·
·Texte en gras·
```
### Écrire en Italique
@ -153,9 +155,8 @@ Les propriétés CSS ne sont pas définies
```
### Paragraphes
Au début d'une nouvelle ligne, ouvrez avec ( et fermez avec ).
Vous pouvez définir le nom de la classe du paragraphe en ajoutant la
valeur désirée ; par exemple : p3
- Ouvrir avec ```(``` et fermez avec ```)``` **Au début d'une nouvelle ligne**.
- Définir le nom de la classe du paragraphe,par exemple : "p3" (optionnel)
Dans l'article...
```
@ -164,19 +165,19 @@ Paragraphe avec une classe p3 en css
)
(
Paragraphe sans classe
Paragraphe sans classe personnalisée
)
```
### Liens
Définir en METAS
Définir en METAS...
```
link: Mon lien : URL : Alt text
link: https://a-lec.org/ : URL : Alt text
```
Dans l'article..
Dans l'article...
- Écrivez ```_``` devant le nom du lien
- Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet
@ -193,7 +194,7 @@ file: Mon fichier : FILENAME : ALT-TEXT
Dans l'article...
```
__Mon fichier
__Mon fichier est super léger
```
### Images
@ -205,19 +206,20 @@ image: 2 : FILENAME : ALT-TEXT
```
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
nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire
Les valeurs:
- Numero d'image
- 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")
- Longueur width: (avec unité)
- - + (taille originale)
- Largeur height: (avec unité)
- - + (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
@ -255,7 +257,7 @@ _code:python
```
### IMPORT de code brut (sera exécuté par le navigateur)
Définir en METAS
Définir en METAS...
```
brut : 1 : FILENAME
@ -267,8 +269,9 @@ _brut:1
```
### Citation simple
Définissez un bloc pour la citation. Utilisez ```---```
Vous pouvez définir une classe CSS spécifique ```--- ma-classe-css```
Commun aux citations :
- Définir un bloc pour la citation. Utilisez ```---```
- Définir une classe CSS spécifique ```--- ma-classe-css``` (optionnel)
Dans l'article...
@ -310,7 +313,7 @@ _book: Esperanza 64
### Créer des listes
L'arborescence est "infinie".
- 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...
- utilisez ```=``` pour définir une liste simple (ul)

View File

@ -16,24 +16,25 @@ droits en écriture des dossiers
```
# Pour le dossier du binaire
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
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/
# Pour le dossier de logs
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
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
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,
@ -42,7 +43,9 @@ donner les droits
# 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
- /var/log/gsl
@ -50,7 +53,7 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /help/
- - /scripts/
- - /domains
- - - /DOMAIN
- - - /DOMAIN +
- - - - /templates/ +
- - - - /files/ +
- - - - /images/ +
@ -60,11 +63,11 @@ Note: ```+``` indique que GSL créera ces dossiers
- - - /DOMAIN +
- /SRV (i.e. /var/www)
- - /DOMAIN
- - - /wip
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/)
- - - /www
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/)
- - /DOMAIN +
- - - /wip +
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) +
- - - /www +
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) +
# Fichiers créés par GSL
@ -81,4 +84,4 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /db/
- - - domains.db (registred domains)
- - - 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
setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters
css : Show used CSS classes
tips | -t : Show tips and advises you should know
@ -19,7 +18,7 @@ $ gsl (ARG)
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
all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors)
@ -36,16 +35,16 @@ $ gsl (ARG)
domain : Domains registred database
(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
wip : Only to wip server (also done with make)
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
-F : Force Check again ; Recreate in Database
-F : Force Check again ; Create Database
(FILE) : Only this (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
(OPT1):
sync : Same as "sync www"
add : Add all/(FILE) to www server
rmove : remove all/(FILE) from www server
add : Add (OPT2) to www server
remove : remove (OPT2) from www server
(OPT2):
all : Select all post with wip statuses
all : Select all post with wip statuses (FORCE !)
(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)
(ARG):
add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn
--version : Like -v + changes

View File

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

View File

@ -25,10 +25,22 @@ _image:1:+
_image:1:c:640px:+
```
## Make (changes in source file)
If you change the content of a file (script code, image...), you will
have to make -F your article, and do www add after
## Make (changes in your template)
If you change the content of a file in your template
(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
If your remove a www or wip page, and you put it in sidebar,
do not forget to replace it with another article
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. 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)
@ -34,6 +34,7 @@
- - /var/log/gsl: for logs files (.gitkeep)
- New help folder in
- - /var/lib/gsl/help (removed "helps" one)
- - - Renamed documentation files (not all translated ; some in french)
### Logs
- Better logs harmony
@ -76,6 +77,7 @@
### new ARGUMENTS
- new (page|post) (name): Create article, show its content + check it
- new domain: New domain configuration creator
- new author: Same as author edit
- edit domains: Set/Edit registred domains database
- edit author: Same as author edit
- 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
- clean all: Remove all backups (only) files
- sidebar: add|replace|latest|oldest (See gsl help)
- www sync: Same as sync www
- wip ...: Same as www but for wip
- www sync: Same as sync www (see gsl help)
- wip ...: Same as www but for wip (see gsl help)
### Markers
- css: MYCLASS Customize each article with your CSS (optional)

View File

@ -1,5 +1,5 @@
#!/bin/bash
# Version: 0.0.93
# Version: 0.1.0
# file: gsl
# Folder: /usr/local/bin
# By echolib (XMPP: im@echolib.re)
@ -69,11 +69,11 @@ case "$1" in
write|-w) cat "$gsl_dir_help/comment_ecrire-article.md" ;;
tpl|-T) cat "$gsl_dir_help/template-comment-creer.md" ;;
install|-i) cat "$gsl_dir_help/comment_installer-GSL.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" ;;
param|-p) cat "$gsl_dir_help/how_to-parameters_conf.md" ;;
css) cat "$gsl_dir_help/how_to-CSS_classes.md" ;;
tips|-t) cat "$gsl_dir_help/how_to-Tips_Advises.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" ;;
param|-p) cat "$gsl_dir_help/how-to_parameters_conf.md" ;;
css) cat "$gsl_dir_help/how-to_CSS_classes.md" ;;
tips|-t) cat "$gsl_dir_help/how-to_Tips_Advises.md" ;;
""|*) cat "$gsl_dir_help/gsl_help.md" ;;
esac
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
- 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]
### New
- Basic RSS feed created at each www (COMMAND)

View File

@ -1,10 +1,11 @@
# GSL: Statique Littérateur
------------------------------------------------------------------------
GSL est un générateur de blogs/sites-web basé sur leur nom de domaine,
écrit en bash, afin de réduire ses dépendances au minimum. Les pages
générées sont presque entièrement statiques, à l'exception du module de
liste des derniers articles (sidebar) placé en include. Nginx peut être
GSL est un générateur de blogs/sites-web multiples basé sur leur nom de
domaine. Il est écrit en bash, afin de réduire ses dépendances au minimum.
Les pages générées sont presque entièrement statiques, à l'exception du
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.
@ -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
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
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
------------------------------------------------------------------------
Préparer un fichier de logo. L'important sera de renseigner le nom du
fichier lors du questionnaire.
Préparer un fichier de logo. L'important sera de renseigner un nom du
fichier sinon, lors du questionnaire.
Attention: GSL aura besoin de créer des sous-dossier dans le serveur,
renseigné dans le questionnaire. (i.e. /var/www/). Il faut donc lui
donner les droits
Attention: GSL aura besoin de créer des sous-dossiers (par DOMAIN) dans
le serveur, renseigné dans le questionnaire. (i.e. /var/www/). Il faut
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
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
------------------------------------------------------------------------
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
@ -61,19 +62,19 @@ cd MYFOLDER
gsl setdir
```
ou:
ou manuellement:
- 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
------------------------------------------------------------------------
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
gsl author edit
gsl new author
```
@ -91,18 +92,19 @@ gsl help -w
## Procédures de prévisualisation et mise en ligne
------------------------------------------------------------------------
- gsl check monarticle.gsl (vérifie l'écriture en gsl)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip)
- gsl www add monarticle.gsl (copiel la page dans le dossier www)
- gsl make monarticle.gsl (Connvertit en HTML - dossier wip dans le serveur)
- gsl www add monarticle.gsl (copie la page dans le dossier www)
# Comment gérer la sidebar
------------------------------------------------------------------------
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
configuration du domaine (DOMAIN.conf)
configuration du domaine (DOMAIN.conf) (via le questionnaire)
```
gsl sidebar latest
gsl sidebar replace 2 monarticle.gsl
```
@ -118,6 +120,8 @@ gsl www add mona<TAB>
# Help
------------------------------------------------------------------------
```
# GSL: Statique Littérateur
$ gsl (ARG)
readme : Show README.md instructions
help | -h (OPT) : This Help and how to
@ -125,7 +129,6 @@ $ gsl (ARG)
authors | -a : Add/Remove authors for this DOMAIN
setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters
css : Show used CSS classes
tips | -t : Show tips and advises you should know
@ -137,7 +140,7 @@ $ gsl (ARG)
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
all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors)
@ -154,16 +157,16 @@ $ gsl (ARG)
domain : Domains registred database
(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
wip : Only to wip server (also done with make)
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
-F : Force Check again ; Recreate in Database
-F : Force Check again ; Create Database
(FILE) : Only this (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
(OPT1):
sync : Same as "sync www"
add : Add all/(FILE) to www server
rmove : remove all/(FILE) from www server
add : Add (OPT2) to www server
remove : remove (OPT2) from www server
(OPT2):
all : Select all post with wip statuses
all : Select all post with wip statuses (FORCE !)
(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)
(ARG):
add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn
--version : Like -v + changes
-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
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
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.
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.
```
# Crréer une page nommée index (deviendra /index.html)
# Créer une page nommée index (deviendra /index.html)
gsl new page index
# 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
utilisant l'autocompletion (<tab>)
Vous pouvez l'éditer dans le terminal en utilisant l'autocompletion
(<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"
@ -41,11 +43,11 @@ l'article à partir de ce repère (servant de titre h1).
```
type: page
title: POST TITLE
slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD
tags: TAG1,Mon TAG2,TAG3 (séparé par une virgule)
slug: MY-SLUG (si espaces, GSL les convertira en -)
info: DESCRIPTION (À propos de cet article)
author: NAME (doit être enregistré via la commande: gsl author edit
date: YYYY-MM-DD (ou DD-MM-YYY si DOMAIN configuré en fr)
tags: TAG1,Mon TAG2 (séparé par une virgule)
```
### Page ou Article ?
@ -53,14 +55,14 @@ Vous devez spécifier pour chaque article si c'est une **page** ou un
**post**
#### 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
slug: 404
```
#### Post (monarticle)
#### Post (mon article)
Création HTML dans un dossier selon le slug: /MY-SLUG/index.html
**! 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
```
abbr: COURT : LONG
abbr: COURT : Long
file: NOM : NOM-DU-FICHIER : Text alternatif
link: NOM : URL : Text alternatif
code: NUMERO : NOM-DU-FICHIER : Text alternatif
@ -90,7 +92,7 @@ image: NUMERO : NOM-DU-FICHIER : TEXT-ALTERNATIF
```
## 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**.
Les marqueurs à retenir et leur Combinaison de touches sur un clavier
@ -115,7 +117,7 @@ il ad•juge• : pas de pub !
Dans l'article...
```
·Tout est en gras·
·Texte en gras·
```
### Écrire en Italique
@ -153,9 +155,8 @@ Les propriétés CSS ne sont pas définies
```
### Paragraphes
Au début d'une nouvelle ligne, ouvrez avec ( et fermez avec ).
Vous pouvez définir le nom de la classe du paragraphe en ajoutant la
valeur désirée ; par exemple : p3
- Ouvrir avec ```(``` et fermez avec ```)``` **Au début d'une nouvelle ligne**.
- Définir le nom de la classe du paragraphe,par exemple : "p3" (optionnel)
Dans l'article...
```
@ -164,19 +165,19 @@ Paragraphe avec une classe p3 en css
)
(
Paragraphe sans classe
Paragraphe sans classe personnalisée
)
```
### Liens
Définir en METAS
Définir en METAS...
```
link: Mon lien : URL : Alt text
link: https://a-lec.org/ : URL : Alt text
```
Dans l'article..
Dans l'article...
- Écrivez ```_``` devant le nom du lien
- Ajoutez ```+``` pour ouvrir le lien dans un nouvel onglet
@ -193,7 +194,7 @@ file: Mon fichier : FILENAME : ALT-TEXT
Dans l'article...
```
__Mon fichier
__Mon fichier est super léger
```
### Images
@ -205,19 +206,20 @@ image: 2 : FILENAME : ALT-TEXT
```
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
nouvelle fenêtre. Seuls le "numéro d'image" est obligatoire
Les valeurs:
- Numero d'image
- 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")
- Longueur width: (avec unité)
- - + (taille originale)
- Largeur height: (avec unité)
- - + (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
@ -255,7 +257,7 @@ _code:python
```
### IMPORT de code brut (sera exécuté par le navigateur)
Définir en METAS
Définir en METAS...
```
brut : 1 : FILENAME
@ -267,8 +269,9 @@ _brut:1
```
### Citation simple
Définissez un bloc pour la citation. Utilisez ```---```
Vous pouvez définir une classe CSS spécifique ```--- ma-classe-css```
Commun aux citations :
- Définir un bloc pour la citation. Utilisez ```---```
- Définir une classe CSS spécifique ```--- ma-classe-css``` (optionnel)
Dans l'article...
@ -310,7 +313,7 @@ _book: Esperanza 64
### Créer des listes
L'arborescence est "infinie".
- 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...
- utilisez ```=``` pour définir une liste simple (ul)

View File

@ -16,24 +16,25 @@ droits en écriture des dossiers
```
# Pour le dossier du binaire
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
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/
# Pour le dossier de logs
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
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
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,
@ -42,7 +43,9 @@ donner les droits
# 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
- /var/log/gsl
@ -50,7 +53,7 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /help/
- - /scripts/
- - /domains
- - - /DOMAIN
- - - /DOMAIN +
- - - - /templates/ +
- - - - /files/ +
- - - - /images/ +
@ -60,11 +63,11 @@ Note: ```+``` indique que GSL créera ces dossiers
- - - /DOMAIN +
- /SRV (i.e. /var/www)
- - /DOMAIN
- - - /wip
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/)
- - - /www
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/)
- - /DOMAIN +
- - - /wip +
- - - - /TEMPLATE (sync wip (command) from /var/lib/gsl/domains/DOMAIN/) +
- - - /www +
- - - - /TEMPLATE (sync www (command) from /var/lib/gsl/domains/DOMAIN/) +
# Fichiers créés par GSL
@ -81,4 +84,4 @@ Note: ```+``` indique que GSL créera ces dossiers
- - /db/
- - - domains.db (registred domains)
- - - 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
setdir | -d : Set a directory for article's DOMAIN
write | -w : Write a Post
tpl | -T : Create your template
param | -p : Configure some parameters
css : Show used CSS classes
tips | -t : Show tips and advises you should know
@ -19,7 +18,7 @@ $ gsl (ARG)
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
all : clean all saved logs, keep current
-i | -w | -e : from levels (infos, warnings, errors)
@ -36,16 +35,16 @@ $ gsl (ARG)
domain : Domains registred database
(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
wip : Only to wip server (also done with make)
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
-F : Force Check again ; Recreate in Database
-F : Force Check again ; Create Database
(FILE) : Only this (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
(OPT1):
sync : Same as "sync www"
add : Add all/(FILE) to www server
rmove : remove all/(FILE) from www server
add : Add (OPT2) to www server
remove : remove (OPT2) from www server
(OPT2):
all : Select all post with wip statuses
all : Select all post with wip statuses (FORCE !)
(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)
(ARG):
add | -a : Put article at (POS). Remove last, roll from (POS)
replace | -r : Replace (POS) with article
latest | -l : Create sidebar with latest (remove all existing)
oldest | -o : Same as above, but with oldest first
-v : Show local versionn
--version : Like -v + changes

View File

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

View File

@ -25,10 +25,22 @@ _image:1:+
_image:1:c:640px:+
```
## Make (changes in source file)
If you change the content of a file (script code, image...), you will
have to make -F your article, and do www add after
## Make (changes in your template)
If you change the content of a file in your template
(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
If your remove a www or wip page, and you put it in sidebar,
do not forget to replace it with another article
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. 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)
@ -34,6 +34,7 @@
- - /var/log/gsl: for logs files (.gitkeep)
- New help folder in
- - /var/lib/gsl/help (removed "helps" one)
- - - Renamed documentation files (not all translated ; some in french)
### Logs
- Better logs harmony
@ -76,6 +77,7 @@
### new ARGUMENTS
- new (page|post) (name): Create article, show its content + check it
- new domain: New domain configuration creator
- new author: Same as author edit
- edit domains: Set/Edit registred domains database
- edit author: Same as author edit
- 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
- clean all: Remove all backups (only) files
- sidebar: add|replace|latest|oldest (See gsl help)
- www sync: Same as sync www
- wip ...: Same as www but for wip
- www sync: Same as sync www (see gsl help)
- wip ...: Same as www but for wip (see gsl help)
### Markers
- 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">
<h1>$gsl_about $site_title</h1>
<div id="${site_css}_footer-infos">
<p>...<p>
<p>$site_about<p>
</div>
<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>Contact: $site_mail</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>RSS: <a type="application/rss+xml" href="$site_url/rss.xml">$site_url/rss.xml</a></li>
</ul>
</p>
</ul>
</div>
</footer>
EOFOOTER

View File

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

View File

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

View File

@ -5,10 +5,14 @@
# License: GNU AFFERO GENERAL PUBLIC LICENSE Version 3, 19 November 2007
#----------------------------------------------------------------------
# Manage server options
#----------------------------------------------------------------------
#======================================================================
# w<< (ARGUMENT)
# $1: process
# $2: file / all
# www|wip (ARGUMENT)
# $1: process www/wip
# $2: sync/add/remove
# $3: (file)/all
#======================================================================
srv__OPTIONS() {
case "$2" in
@ -23,44 +27,49 @@ case "$3" in
if__file "$3" post
gsl_post="$3"
post_only="$3"
case "$1" in
wip)
gsl make "$3"
exit
;;
esac
;;
all)
case "$1" in
www)
echo "! You're about to put online all wip articles"
read -rp "- Continue (YES|*)" www_confirm
case "www_confirm" in
YES) gsl_www="$3" ;;
*) echo "# Abandon"; exit ;;
esac
;;
wip)
gsl make
exit
;;
echo "! You're about to $2 all $1 articles"
read -rp "- Continue (Y|*) ? " www_confirm
case "$www_confirm" in
yes|YES|Y) gsl_all="$3" ;;
*) echo "# Abandon"; exit ;;
esac
;;
"")
gsl__invalid_option "$3" "all|file"
gsl__invalid_option "$3" "all|(file)"
;;
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"
log__process_begin "Server ($1 online)${log_info_all}"
posts__loop "$1" "$2"
[[ "$1" == "www" && "$www_new" ]] \
&& create__RSS_feed \
&& stats__datas # Statoolinfos
# For logs ; set post or unset if all
[[ $log_info_all ]] && unset gsl_post
[[ $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
# 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
# If error from check and exists
# wip: remove online
#======================================================================
wip__remove() {
! [[ -f "$gsl_srv_post_wip" ]] && return
log_Type="in $article_Slug"
# Remove from old slug, if new article Type set
[[ "$old_Type" ]] \
&& article_Type="$old_Type" \
&& 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 \
"Cleaned empty directories" \
"$gsl_srv_wip"
gsl__logs_print -w -R -wip \
"Found $1 $log_Type" \
"$gsl_srv_post_wip"
WIP__remove() {
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"
if [[ "$old_Type" ]];then
unset old_Type old_Slug log_Type
find "$gsl_srv_wip" -type d -empty -delete && \
gsl__logs_print -w -srv wip \
"Cleaned empty directories" \
"$gsl_srv_wip"
[[ -f "$gsl_file_db_post" ]] \
&& source "$gsl_file_db_post"
DB__set_status "wip-del"
fi
return
}
#----------------------------------------------------------------------
# Manage www options
#----------------------------------------------------------------------
#======================================================================
# www OPTIONS
# $1: add/remove
#======================================================================
WWW__OPTIONS() {
case "$1" in
add) WWW__online ;;
remove) WWW__remove ;;
esac
}
#======================================================================
# 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"
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"
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
}
#----------------------------------------------------------------------
# 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
}