From b66769a20ad8ffdbc6d581cabb6605a244097268 Mon Sep 17 00:00:00 2001 From: Cyrille L Date: Thu, 17 Nov 2022 14:38:20 +0100 Subject: [PATCH] check: abbr (match term in article + stats) --- src/var/lib/tyto/help/CHANGELOG.md | 16 ++ src/var/lib/tyto/help/FR_Installation.md | 21 +++ src/var/lib/tyto/help/README.md | 180 +++++++++++++++++++++++ src/var/lib/tyto/program/check.py | 15 +- 4 files changed, 230 insertions(+), 2 deletions(-) create mode 100644 src/var/lib/tyto/help/CHANGELOG.md create mode 100644 src/var/lib/tyto/help/FR_Installation.md create mode 100644 src/var/lib/tyto/help/README.md diff --git a/src/var/lib/tyto/help/CHANGELOG.md b/src/var/lib/tyto/help/CHANGELOG.md new file mode 100644 index 0000000..75c6ac6 --- /dev/null +++ b/src/var/lib/tyto/help/CHANGELOG.md @@ -0,0 +1,16 @@ +# Changelog + +Tyto - Littérateur +- Repository: https://git.a-lec.org/echolib/tyto +- Issues: https://git.a-lec.org/echolib/tyto/-/issues +- Changelog: https://git.a-lec.org/echolib/tyto/-/blob/main/CHANGELOG.md +- License: https://git.a-lec.org/echolib/tyto/-/blob/main/LICENSE + +Tyto - Litterateur is a Libre project to create and manage multiple +websites from articles' files. Tyto uses its own syntax to convert +your articles in HTML5 static pages. Tyto works on a GNU/Linux system +and needs minimal dependancies. +- python3 rsync nano gawk curl + +## [0.9.0] First Commit version (pre-final) + diff --git a/src/var/lib/tyto/help/FR_Installation.md b/src/var/lib/tyto/help/FR_Installation.md new file mode 100644 index 0000000..f508aec --- /dev/null +++ b/src/var/lib/tyto/help/FR_Installation.md @@ -0,0 +1,21 @@ +# Installation manuelle + +Si vous utilisez Debian, il est plus que recommandé de procéder à +l'installation par le paquet .deb + +## Préparer les dossiers +```` +sudo mkdir -p /var/lib/tyto /etc/tyto /var/log/tyto +sudo touch /usr/local/bin/tyto +sudo chown -R USER:GROUP /var/lib/tyto /etc/tyto /var/log/tyto +sudo chown USER:GROUP /usr/local/bin/tyto +sudo chmod +x /usr/local/bin/tyto + +git clone https://git.a-lec.org/echolib/tyto +rsync -a folders'repo/ to /folders/ + +# Créer votre dossier pour le serveur web +# On utilise en général /var/www/ +# Celui-ci sera à renseigner lors de la création d'un domaine dans Tyto +sudo mkdir -p /var/www/ +```` diff --git a/src/var/lib/tyto/help/README.md b/src/var/lib/tyto/help/README.md new file mode 100644 index 0000000..9f49fa4 --- /dev/null +++ b/src/var/lib/tyto/help/README.md @@ -0,0 +1,180 @@ +# STL: Statique Littérateur +STL est une évolution du projet GSL. STL permet de créer un ou plusieurs +sites web/blogs statiques, en fonction de leur nom de domaine. + +Tout comme GSL, STL reprend une grande partie de l'écriture nouvelle de +vos articles, en apportant quelques évolutions. Les articles sont donc +au format .stl. + + +# Fonctionnement de STL ; le dossier de base +Contrairement à GSL, vos articles et les pages de votre site web sont +situés dans le même dossier de base. Pour obtenir ce dossier de base, +et configurer votre domaine, vous devez d'abord vous placer dans le +dossier de votre choix, puis lancer la commande de configuration. + +``` +cd MON-DOSSIER-PREFERE +stl domain new + +# Vous pouvez également pré-remplir votre domaine en fonction de l'URL +stl domain new https://mon-site.xyz +``` + +Dans ce dossier de base (MON-DOSSIER-PREFERE), après la configuration de +votre domaine, vous trouverez de nouveaux dossiers : +- articles/ +- - images/ +- - files/ + +Les sous-dossiers images/ et files/ sont proposés afin de faciliter la +réutilisation d'images et de fichiers (PDF, ou autres) déjà présents +dans un autre article. Lors de la synchronisation, il seront copiés à la +racine wip de votre serveur. Le but : faire en sorte que le +navigateur n'ait pas à recharger un même fichier depuis une URL +différente - ce qui plomberait la rapidité d'affichage de la page et +l'intérêt d'un site statique. L'utilisation de cette fonction dans vos +articles est simple ; voir la documentation expliquant comment écrire un +article dans le dossier help. + +Dans le dossier du serveur (/var/www est un exemple), vous trouverez +les dossiers suivants : +- /var/www/DOMAIN/wip/ +- - template (logos, styles.css, sidebar.html, footer.html, metas.html...) +- - images +- - files +- /var/www/DOMAIN/www/ (non créé pour une installation locale) +- - template/ +- - images +- - files + + +## Installation (server, ou local) +Il est possible d'utiliser STL de 2 manières différentes. Lors de la +configuation d'un nouveau domaine, vous devrez choisir entre une +installation faite sur un serveur distant, et une installation faite +en local (sur votre PC). Vous pouvez bien sûr choisir une installation +de type "server" sur votre PC, si celui-ci sert de serveur web. + +Concernant la décoration du site (styles.css, logos), les fichiers +devront être placés dans le dossier serveur /wip/template/ (créé par STL +lors de l'ajout d'un domaine). + + +### Installation "server" +À choisir si votre PC sert de serveur web, ou si vous avez installé STL +sur votre serveur distant. + +Lorsque vous installez STL, sur votre serveur distant, vous pouvez gérer +pour un même nom de domaine, votre site sur 2 adresses URL différentes. +La version WIP, permet de prévisualiser les modifications apportées à +vos pages (sans modifier celles sur WWW) avant de les valider sur votre +site officiel. + +Lorsque votre site prévisualisé sur WIP vous plaît, vous pouvez alors +synchroniser le dossier WIP sur WWW grâce à la commande : + +``` +# Pour publier un article précis +stl publish (ARTICLE) + +# Pour publier tous les articles dans WIP +stl publish all +``` + +Note : cette commande crée automatiquement le flux RSS dans WIP avant +de tous synchroniser sur WWW. + + +### Installation "local" +À choisir si vous voulez utiliser STL sur votre PC, et synchroniser +vous-même le dossier WIP sur votre serveur distant. Inutile donc, +d'installer STL sur le serveur distant. + +Lors d'une utilisation locale, STL ne crée pas le dossier WWW, et ne +synchronise donc pas le dossier WIP vers WWW. C'est à vous de le faire +(via ssh, par exemple). + +Vous devrez lorsque votre site vous plaît localement lancer la création +du flux RSS - avant de synchroniser votre site local sur votre serveur +distant - avec la commande : + +``` +stl rss +``` + + +# Utilisation de STL +Afin de gérer vos articles, vous devez vous placer dans MON-DOSSIER-PREFERE. +L'autocomplétion est activée et personnalisée pour vous aider à trouver +(ARTICLE.stl). + + +## Créer votre arborescence +Dans MON-DOSSIER-PREFERE, vous trouverez le dossier "articles". Celui-ci +sert de base à votre domain.xyz sur votre serveur. C'est dans ce dossier +"articles", que vous pouvez créer vos articles et vos sous-dossiers. +Il est à noter que le nom de l'article est important, puisque STL +l'utilisera en le transformant en .html. Il est donc recommandé - mais +pas obligatoire - de nommer vos articles index.stl, pour obtenir une page +index.html. Si vous voulez créer une page 404, nommez votre article 404.stl +à la racine du dossier "articles". + + +## Convertir votre article en HTML +Placez vous dans MON-DOSSIER-PREFERE. + +Avant de pouvoir convertir votre article, STL dispose d'un système de +vérification de la syntaxe STL. Si des erreurs sont trouvées, un système +de logs vous aidera à corriger ces erreurs. + +``` +# N'oubliez pas d'utiliser l'autocomplétion +stl check (ARTICLE.stl) +``` + +Vous pouvez maintenant le convertir en HTML dans le dossier wip + +``` +stl wip (ARTICLE.stl) +``` + + +## Utiliser la sidebar +C'est la seule partie du site qui est semi-statique. STL fait appel à +nginx, qui va se charger de traduire la balise HTML ``, +et afficher le rendu du fichier sidebar.html + +Chaque article, une fois convertit avec l'argument wip peut être placé +dans la sidebar à la position désirée, entre 1 et la valeur maximum +décidée, lors de la configuration du domaine. + +``` +stl sidebar add 1 (ARTICLE.stl) +``` + +Vous pouvez également décider de placer un article ausitôt convertit +avec l'argument wip sidebar=POSITON + +``` +stl wip sidebar=2 (ARTICLE.stl) +``` + +## Documentation de STL +Les fichiers de documentations sont dans le dossier help. +Le README est accessible depuis la ligne de commande, comme les arguments +utilisables. + +``` +stl help +stl readme +``` + + +## Dépendances +STL est écrit en bash, et a besoin des utilitaires +- gawk +- rsync +- nano +- curl + diff --git a/src/var/lib/tyto/program/check.py b/src/var/lib/tyto/program/check.py index b67f75a..1f185b3 100644 --- a/src/var/lib/tyto/program/check.py +++ b/src/var/lib/tyto/program/check.py @@ -325,14 +325,14 @@ def post_to_strings(post_uri): def check_post_header(headers): global Post_Err global stats_links_uniq, stats_files_uniq, stats_images_uniq, stats_abbrs_uniq - global stats_links_p, stats_files_p, stats_images_p + global stats_links_p, stats_files_p, stats_images_p, stats_abbrs_p global stats_links # Mandatory markers global title, about, author, tags, date # Set Stats stats_links_uniq = stats_files_uniq = stats_images_uniq = stats_abbrs_uniq = 0 - stats_links = stats_links_p = stats_files_p = stats_images_p = 0 + stats_links = stats_links_p = stats_files_p = stats_images_p = stats_abbrs_p = 0 # Set Mandatory marker. 0:True/False 1:ln 2: Content title = about = author = tags = date = ('','','') @@ -746,6 +746,16 @@ def check_abbrs(line, ln, stats_abbrs_uniq): check_new_marker(abbr_rep) if new_marker or not abbr_rep: abbr_rep = abbr_name + # Check NAME in article + if not abbr_name in article: + msg_log = 'Unused "%s" for marker "abbr:" in article"'%abbr_name + log.append_f(post_logs,msg_log,1) + Post_Err = True + return(1) + + # Statistics for all ABBR in article + stats_abbrs_p = stats_abbrs_p + stats_counter(abbr_name) + abbr_nbr = 'abbr_%s'%stats_abbrs_uniq abbr = ( abbr_name, @@ -1130,6 +1140,7 @@ def create_DB(post_db): 'links_p = %d'%stats_links_p, 'files_p = %d'%stats_files_p, 'images_p = %d'%stats_images_p, + 'abbrs_p = %d'%stats_abbrs_p, '\n# Statistics (Templates)', 'titles = %d'%stats_titles, 'anchors = %d'%stats_anchors,