9

Nouvelles en vrac et Makefile

Bientôt les vacances! Cette période aura décidément été fatiguante à tout préparer en flux tendu. J'ai hâte de retrouver un rythme plus serein notamment pour mener à bien quelques projets.

Ces projets, parlons-en justement.

Concernant prose, le moteur de ce blog, Fred Galusik m'a alerté sur un problème au niveau du sitemap. Les liens vers les pages n'étaient pas bons. Ce qui est "chouette", c'est que le correctif était facile à réaliser : il suffisait de retirer du code :P Merci Fred!

J'ai remarqué que smu, l'outil permettant de convertir du markdown que j'aime utiliser pour sa simplicité, a reçu des correctifs le rendant plus compatible avec commonmark.

Sinon, je continue de bidouiller pour publier une nouvelle version d'isotop. J'ai plein d'idées, il me faut juste le temps pour les réaliser. Il y aura du tmux, du xfe avec des scripts, de l'inspiration de la kiss0s d'arpinux, le tout avec au maximum une OpenBSD de base.

Enfin, je travaille sur la version 6.7 de la doc pour s'auto-héberger avec OpenBSD. Voilà un moment que je l'ai publié sur dokuwiki, mais force est de constater qu'il n'y a pas de contributions. Héberger ça sur un wiki est donc inutile. Je reprends donc mon texte pour publier des pages statiques html très sobres pour faciliter l'impression. (J'ai d'ailleurs quelques projets pour faciliter la lecture sur divers supports.) J'en profite pour corriger des liens et vérifier que les procédures décrites fonctionnent toujours avec la dernière version d'OpenBSD.

Désormais, c'est un simple fichier Makefile qui me permet de convertir tous les fichiers markdown de la documentation, et seulement s'ils ont changés.

Voici le Makefile :

.SUFFIXES: .md .html

# markdown converter
MDTOHTML = cmark --to html --smart
SRC != find . -type f -name \*.md
OUT = ${SRC:.md=.html}

all: $(OUT)

clean:
	find . -name \*.html -delete

.md.html:
	@echo $<
	@cat header.tpl > $@
	@$(MDTOHTML) $< >> $@
	@cat footer.tpl >> $@
	@set_vars.sh $@

Les deux lignes magiques sont celles-ci :

SRC != find . -type f -name \*.md
OUT = ${SRC:.md=.html}

La première permet de lister tous les fichiers ".md" à convertir. La seconde remplace l'extension de ces fichiers par ".html" : ils sont les fichiers cibles à construire.

Lorsqu'ils sont modifiés, alors cmark va les convertir. Chaque page est encapsulée dans un entête (header.tpl) et un pied de page (footer.tpl). Enfin, le script set_vars.sh me permet de définir le titre de la page et indiquer la date de modification :

#!/bin/sh
# set title according to h1
# set date

case $1 in 
	./fr/*)
		MAIN="Auto-héberger son serveur avec OpenBSD" ;;
	./en/*)
		MAIN="Self-host your server with OpenBSD" ;;
esac

TITLE="$(grep -m 1 "<h1>" $1 | sed -n -e 's/.*<h1>\(.*\)<\/h1>.*/\1/p')"
sed -i "s;__PAGETITLE__;${TITLE} - ${MAIN};g" $1

DATE="$(date +%x)"
sed -i "s;__DATE__;${DATE};g" $1

Bref, c'est ce qui m'occupe le plus actuellement. Vous en entendrez certainement parler à nouveau ;)

01/07/2020 14:17

📧 Un commentaire?