MarkIt

Problématique

Lors de ma dernière mission chez EDF à Lyon, j'ai été amené à travailler sur un projet de génération automatique de notes de calcul. Ce projet avait pour but de programmer avec Python une interface pour générer des notes de calcul de neutronique en utilisant Pandoc ou Sphinx pour créer les documents.

Après un travail de recherche sur les fonctionnalités de ces programmes et de développement en Python j'en suis arrivé à un bilan plutôt mitigé sur la possibilité de générer des documents de qualités avec ces outils. Les raisons en sont multiples:

Projet

Fort de ces constats, j'ai commencé en février 2019 à réfléchir à un langage de marquage qui serait dédié aux notes à caractère scientifique et qui supporterait toutes les fonctionnalités manquantes de Markdown et ReST.

Parmi ces fonctionnalités, il devra y avoir:

Le fonctionnement de ce programme sera globalement le même que celui de LaTeX. L'utilisateur se concentrera sur le fond du document (contenu) et non sur la forme (apparence).

L'apparence du document pourra être modifiée lors de la compilation afin de produire des documents avec différents rendus.

Le programme principal devra être capable d'effectuer les tâches suivantes:

Développement

Bien évidemment, j'ai commencé le développement avec Haskell afin d'avoir un programme fiable et facile à faire évoluer.

Parti de rien en Mars 2018, avec une phase d'analyse de faisabilité et de mise au point assez longue durant l'année 20181, le développement a beaucoup progressé en 2019/2020 pour accélérer encore en 2021.

Évolution du nombre de lignes de codes

Exemples de codes

!!! File MarkIt _Code_Source_2022-03-09_2.png not found !!!!!! File MarkIt _Code_Source_2022-03-09_3.png not found !!!

!!! File MarkIt _Code_Source_2022-03-09_5.png not found !!!!!! File MarkIt _Code_Source_2022-03-09_7.png not found !!!

Fonctionnement global du programme

Le fonctionnement global du programme est présenté dans les schémas ci-dessous :

Markit
,
 
Fonctionnement
,
 
Markup
,
 
HTML
,
 
ODT
,
 
LaTeX
Markit
,
 
Fonctionnement
,
 
Markup
,
 
HTML
,
 
ODT
,
 
LaTeX

Markit
,
 
Block
,
 
Inline
,
 
Math
,
 
Paragraph
Markit
,
 
Block
,
 
Inline
,
 
Math
,
 
Paragraph

Stade actuel

La plupart des fonctionnalités sont implémentées et MarkIt est déjà capable de produire des documents au format HTML, LaTeX et ODT (Open Document).

Il est désormais possible de générer des articles, des rapports, des livres et avec quelques modifications l'ensemble de mon site internet.

Ci-dessous, quelques documents générés avec MarkIt :


Notes

1.

Je travaillais sur d'autres sujets en parallèle et la phase de définition du langage a pris plus de temps que prévu.