5

prose en version 0.2 : markup activé

On m’a fait remarquer, à juste titre, que l’intérêt de rédiger tout ses billets sans conversions ultérieure était peu pratique car :

J’ai donc ajouté une option à prose qui permet d’appeler un convertisseur externe lors de la génération d’une page. Par exemple pour utiliser smu:

static const char *markup = "/usr/local/bin/smu";

Comme vous pouvez le voir, le texte brut reste ainsi plus lisible.

Cela m’a toutefois poussé à apporter des modifications aux appels d’unveil et pledge uniquement si l’option “markup” est définie:

if (markup == NULL) {
	UNVEILORDIE(argv[1], "rwc");
	PLEDGEORDIE("stdio rpath cpath wpath");
} else {
	UNVEILORDIE(argv[1], "rwc");
	UNVEILORDIE(markup, "x");
	UNVEILORDIE("/bin/sh", "x");
	PLEDGEORDIE("stdio rpath cpath wpath exec proc");
}

Comme vous pouvez le voir, on rajoute des appels à unveil pour autoriser lexécution de la commande définie dans “markup” ainsi que pour appeler “/bin/sh” nécessaire à la fonction popen qui récupère le billet de blog converti en html.

De plus, on ajoute des promesses à pledge pour permettre d’éxécuter un programme tiers.

C’est donc moins sécurisé, mais avec le combo unveil + pledge je suis assez tranquille sir ce que prose peut faire si quelqu’un y trouvait une faille :)

Et comparé à d’autres outils pour publier des billets de blog, il n’y a pas photo…

15/06/2020 16:10

📧 Un commentaire?