En-têtes des fichiers Zim

Quelques reflexions sur l'usage des en-têtes dans les fichiers plats.

Une page Zim est construite en respectant le standard des messages texte internet rfc822 avec une série d'en-têtes séparés du corps de la page par une ligne vide, ce qui est très bien.

Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2017-09-13T09:34:10+02:00

[body]
Page Zim.

J'écris moi-même mes contenus (pour ce site, au boulot, etc.) en respectant ce type de formalisme :

Title: My Title
Date: 2017-09-13
Cats: web
Tags: javascript
Summary: This is an introduction

[body]
Page personnelle

Ce qui veut dire que si j'essaye d'éditer ces pages avec Zim, toutes les en-têtes « disparaissent »...

Je me suis donc lancé dans l'écriture d'un plugin Zim permettant d'éditer les en-têtes de pages. Cela fonctionne plutôt bien ; j'évite l'édition des en-têtes écrites directement par Zim car certaines ne sont pas accessibles ('Content-Type', 'Wiki-Format') et en filtrant les autres ('Creation-Date').

Mais je ne suis pas entièrement satisfait du résultat. D'abord parce que le code est un peu « sale » (appel à une propriété « privée » d'une objet Zim), ensuite parce que l'édition n'est pas très « user friendly » (même si les metas données stockées dans les en-têtes sont généralement définies une fois au début du processus d'écriture).

J'ai donc essayé d'adopter la syntaxe « front matter » de Jekyll, le gestionnaire de pages web statiques développé par Github. Le résultat d'une page formatée de la sorte éditée par Zim est le suivant :

Content-Type: text/x-zim-wiki
Wiki-Format: zim 0.4
Creation-Date: 2017-09-13T09:34:10+02:00

---
Title: My Title
Date: 2017-09-13
Cats: web
Tags: javascript
Summary: This is an introduction
---

[body]
Structure d'une page avec « front matter » éditée par Zim.

Un petit peu verbeux. J'ai besoin de modifier mon script PHP chargé de lire les fichiers textes pour tenir compte de cette éventuelle structure mais rien de bien méchant.

Je diffuserai peut-être le plugin Zim si j'arrive à une version de base à peu près stable. Voir aussi:

Titre
Book Design : front matter
Editeur
Wikipedia
Titre
howto strip metadata header
Editeur
zim-wiki team mailing list
Date
Titre
Text file headers and Other Things
Editeur
zim-wiki team mailing list
Date