src | ||
.envrc | ||
.gitignore | ||
.rustfmt.toml | ||
Cargo.lock | ||
Cargo.toml | ||
flake.lock | ||
flake.nix | ||
LICENSE | ||
README.md |
redac
_____ __ _ _
| __ \ /_/ | | ( )
| |__) |___ __| | __ _ ___|/
| _ // _ \/ _` |/ _` |/ __|
| | \ \ __/ (_| | (_| | (__
|_| \_\___|\__,_|\__,_|\___|
redac
est un utilitaire visant à faciliter la vie de la rédaction d'un BOcal. Il a pour but de
supplanter la plupart des scripts haut-niveau utilisés actuellement (2024-03-31).
Installation
Si vous utilisez Nix, redac
fournit un flake avec le paquet prêt. Sinon, vous pouvez installer
redac
à la main.
Compilation
Pour compiler redac
, vous avez besoin d'un compilateur Rust, ainsi que de Cargo. Cargo se
charge de télécharger les dépendances. Une fois que vous êtes dans le dossier contenant le code
source de redac
, lancez cargo build --release
. La compilation crée un dossier target
, où
tous les artifacts produits sont stockés. L'exécutable se trouve à target/release/redac
.
Pour compiler sur le NFS, utilisez
CARGO_HOME=/tmp/cargo CARGO_TARGET_DIR=/tmp/target cargo build --release
puis
cp /tmp/target/release/redac /users/guests/bocal/.local/bin/redac
pour compiler en un temps raisonnable.
Déploiement
Pour installer redac
, copiez simplement l'exécutable dans un dossier qui se trouve dans votre
$PATH
. Si vous êtes sur la session du BOcal, vous pouvez simplement le mettre dans
~/.local/bin
.
Autocomplétion
redac
supporte les autocomplétions pour quelques shells couramment utilisées. Pour les générer,
utilisez la sous-commande redac completions
.
Bash
Bash va chercher les complétions utilisateur dans le dossier ~/.local/share/bash-completion
. Une
fois vous être assuré que ce dossier existe, vous pouvez y installer les complétions pour redac
en faisant redac completions bash >~/.local/share/bash-completion/redac
.
Zsh
Quelqu'un sait surement où Zsh cherche les complétions. Trouvez une telle personne, et
demandez-lui où mettre le résultat de redac completions zsh
.
Configuration
redac
a un fichier de configuration globale, et un fichier de configuration par projet.
Configuration globale
Vous pouvez générer un fichier de configuration, avec toutes les options disponibles et leur
valeur par défaut, en lançant redac genere-config
. Le fichier généré sera probablement
~/.config/redac/config.toml
, mais cela dépend de votre configuration XDG. Le fichier est aussi
automatiquement généré si redac
a besoin d'y lire des valeurs, et que le fichier n'existe pas.
Si des variables n'y sont pas définie, redac
prendra leur valeur par défaut.
Si vous êtes en train d'éditer le BOcal sur la session du BOcal, vous n'avez probablement pas besoin de toucher à ce fichier. Si vous travaillez autre part, les variables supportées sont les suivantes:
abobocal_template_path
: chemin vers le template des mails, pour la diffusion par mail du BOcal via abobocal. Les trous@VARIABLE
seront remplacés par la valeur deVARIABLE
. Les variables sont:DIRPUB
: le nom du directeur de publication, comme donné parredac dir-pub
.URL
: l'URL publique du BOcal en train d'être publié sur le site du BOcal.
bocal_root
: le dossier où sont stockés tous les BOcals. C'est là qu'un BOcal initialisé est créé.squelette_path
: le dossier contenant le squelette du BOcal, qui sera copié lors d'une initialisation.compilation_path
: le dossier contenant les dépendances nécessaires à la compilation, qui seront copiées dans.compilation
lors de l'initialisation.
Configuration locale
Un fichier de configuration locale dans un projet est généré lors de l'initialisation d'un BOcal.
Il est aussi recréé s'il est supprimé, et que redac
essaye d'y lire des variables. Il se situe
à .compilation/config.toml
. Les variables supportées sont les suivantes:
files_for_compilation
: un tableau de patterns, indiquant les fichiers queredac
doit inclure dans la compilation d'un BOcal.number_of_passes
: nombre de passes minimum du compilateur LaTeX. Principalement utile lorsqu'il y a des références; à terme,redac
détectera automatiquement lorsque plusieurs passes seront nécessaires.
Commandes
abobocal
Envoie le BOcal sur la liste de diffusion. Voir redac publier
.
aled
Affiche de l'aide sur l'utilisation de redac
.
arbre
Affiche l'arrangement actuel de contenu par pages, sous forme d'un arbre.
calendrier
Affiche la date en calendrier républicain d'aujourd'hui.
delier
Remplace les articles qui sont des liens vers des articles stockés sur le compte de quelqu'un d'autre par une copie de celui-ci. Conserve une sauvegarde du lien.
dirpub
Affiche le directeur de publication du BOcal.
faire
Compile le BOcal.
frigo
Gestion du frigo du BOcal.
liste
Affiche le contenu du frigo. Permet aussi de filtrer le contenu sur la base du nombre de mots, et de l'âge de l'article.
prendre
Déplace un article depuis le BOcal dans le frigo.
mettre
Déplace un article depuis le frigo dans le BOcal.
init
Initialise un nouveau BOcal.
maj-siteweb
Met à jour la version publiée sur le site web d'un BOcal qui aurait été modifié depuis sa publication. Houlàlà c'est pas bien, pas bien du tout, ne faites pas ça!
nouvel-an
Initialise un dossier pour la nouvelle année.
verif
Vérifie que rien n'a été oublié dans le BOcal, et qu'il est prêt pour être publié. Les critères vérifiés sont les suivants:
- oubli d'un article: un article est présent dans le BOcal, mais n'a été inclut dans aucune page
- duplicata d'un article: un article a été inclut deux fois
- erreur typographique:
- une espace normale a été utilisée au lieu d'une espace fine insécable avant un signe de ponctuation qui, d'après les règles typographiques française, devrait en avoir une. Ne pas mettre d'espace du tout fonctionne aussi, parce que dans ce cas LaTeX s'occupe d'en mettre une.
- utilisation d'un point bas au lieu d'un point médian pour inclusiviser un mot. Essaye de ne pas faire de faux positifs, mais bon, personne n'est parfait...
- une utilisation des mauvais guillemets. Le BOcal essaye d'utiliser uniquement les guillemets français.
- utilisation de commandes LaTeX pour insérer un accent plutôt que d'insérer directement l'accent dans le fichier source, pour les lettres accentuées que l'on peut être en droit de trouver sur une disposition clavier française.
- non-utilisation d'une commande LaTeX spécifique au BOcal pour un terme spécifique
normalien. Les commandes disponibles sont (avec leurs variantes):
- BOcal:
\BOcal
- BOcals:
\BOcals
- BOcaux:
\BOcaux
- BOcale (?):
\BOcale
- BOcals:
- BOcaleux·se:
- BOcaleux:
\BOcaleux
- BOcaleuse:
\BOcaleuse
- BOcaleuses:
\BOcaleuses
- BOcaleux·se:
\BOcaleuxse
- BOcaleux·ses:
\BOcaleuxses
- BOcaleux:
- K-Fet:
\kfet
- en plus petit:
\kfett
- en plus petit:
- BUscal:
\BUscal
- BOUM:
\BOUM
- NdlR:
\ndlr{}
(d'arité 1) - COF:
\cof
- en plus petit:
\coft
- en plus petit:
- BOcal:
- oubli d'une partie essentielle du BOcal:
- le planning
- l'édito
- l'ours
- la première page
- la dernière page
- faute "orthographique" liée au changement d'orthographe lors d'années bisextiles. Les mots
suivants changes d'orthographe lors d'une année bisextile:
- BOcals → BOcaux
- turne → thurne
- variable non ou mal définies: certaines variables peuvent ne pas avoir été définies, ou alors
elles peuvent être mal définies. Les variables vérifiées sont:
- la date:
dateBOcal
- le nombre de pages:
nombrePages
- le numéro du BOcal:
numeroBOcal
- la date:
- présence d'un lien symbolique: les articles qui sont des liens symboliques doivent être copiés
avant l'archivage du BOcal, en faisant
redac delie
- modèle non ou partiellement rempli: un modèle pas été complètement rempli. Les modèles vérifiés
sont:
- les brèves
- l'édito
- la Une (et son titre)
- le planning
- des TODO restants: chaque TODO doit être résolu avant que le BOcal puisse être publié (eh oui, espèce de feignant, au boulot, chop chop!)
- taille du BOcal excessive: les images peuvent prendre beaucoup de place si elles ont une résolution excessive
publier
Publie le BOcal, c'est-à-dire le diffuse par mail (comme redac abobocal
) et le publie sur le
site web (comme redac siteweb
).
siteweb
Publie le BOcal sur le site web. Voir redac publier
Licence
redac
est licensé sous GPL-3.0 (dont une copie est disponible dans ce dépôt). À noter que cette
licence ne s'applique que sur le code contenu dans ce dépôt: elle n'inclut pas les classes LaTeX
du BOcal nécessaire à sa compilation, et ne couvre pas les résultats de la compilation d'un BOcal.