Les formats propriétaires binaires (.docx, .xlsx, .pptx) ont été conçus pour l'impression dans les années 90.
Proprietary binary formats (.docx, .xlsx, .pptx) were designed for printing in the 1990s. Ils stockent vos données dans des archives ZIP opaques, illisibles
sans un logiciel spécifique. Les formats ProAppli sont du Markdown pur —
du texte UTF-8, avec un en-tête YAML optionnel pour les métadonnées.
Pourquoi le texte brut est le format du futur
Adapté à l'IA
Les modèles de langage (GPT, Claude, Gemini…) traitent du texte. Modifier un
.doc.md par IA est immédiat — l'IA lit, comprend et réécrit directement.
Modifier un .docx nécessite de le décompresser, parser le XML interne,
modifier en aveugle et recompresser — opération fragile, coûteuse et souvent incorrecte.
Le Markdown est le format natif de l'IA.
Adapté à Git
Git est conçu pour versionner du texte : il affiche les différences ligne par ligne,
fusionne les modifications concurrentes, conserve l'historique complet.
Un .docx est un binaire opaque — Git peut le stocker mais ne peut pas
en afficher les différences ni fusionner deux versions. Avec .doc.md,
chaque modification IA ou humaine est traçable, réversible, auditable.
Adapté aux web apps
Une web app charge, affiche et modifie du texte nativement. Pas de conversion,
pas de plugin, pas de binaire à parser. .doc.md s'affiche dans un
<textarea>, se rend via une lib Markdown légère, se sauvegarde
en une ligne de PHP. Un .docx nécessite LibreOffice ou une API payante
pour être lu ou rendu côté serveur.
Vos fichiers fonctionnent sans ProAppli : lisibles avec VS Code, Obsidian, Typora,
vim, ou cat. Compatibles Git. Archivables à long terme sans risque
d'obsolescence logicielle.
Le test de l'affichage — la preuve par l'absurde
Pour afficher un fichier dans un navigateur ou une web app,
voici ce que chaque format nécessite :
| Format | Pour l'afficher dans un navigateur | Verdict |
| .doc.md |
Lire le fichier texte → passer par une lib Markdown légère (~50 Ko) → afficher |
✓ Natif web |
| .table.md |
Lire le fichier texte → parser le tableau Markdown → afficher |
✓ Natif web |
| .pres.md |
Lire le fichier texte → passer par Marp/Reveal.js → afficher |
✓ Natif web |
| .docx |
Décompresser le ZIP → parser le XML Office Open → convertir en HTML → afficher — ou installer LibreOffice / Microsoft Office / API payante |
✗ Conversion obligatoire |
| .xlsx |
Décompresser le ZIP → parser le XML de classeur → recalculer les formules → convertir → afficher — ou installer LibreOffice / Excel / API payante |
✗ Conversion obligatoire |
| .pptx |
Décompresser le ZIP → parser le XML de diapositives + thèmes + médias → convertir → afficher — ou installer LibreOffice / PowerPoint / API payante |
✗ Conversion obligatoire |
Des formats du siècle dernier
.docx, .xlsx et .pptx ont été introduits en 2007 comme successeurs des formats
binaires Office 97. Ils ont été conçus pour l'impression, pas pour le web,
pas pour l'IA, pas pour le versioning. Le fait qu'il faille obligatoirement les
convertir pour les afficher dans n'importe quelle application web est la preuve
qu'ils sont architecturalement inadaptés au logiciel moderne.
Le Markdown n'a pas ce problème — il est déjà du texte.
Les trois formats ProAppli partagent la même structure : un front matter YAML
délimité par ---, suivi du contenu Markdown standard. Le champ
type dans le front matter détermine comment ProAppli interprète le fichier.
Format principal de Writer. Un document texte enrichi en Markdown, avec support
des inclusions de tableaux et quiz via la syntaxe de transclusion,
et d'une structure de présentation via des blocs [SLIDE].
Exemple
---
title: Rapport annuel 2025
author: Marie Dupont
date: 2025-12-01
type: document
---
# Introduction
Le bilan de l'exercice 2025 confirme une croissance de **12 %**.
## Résultats par région
![[resultats-regions.table.md]]
## Évaluation des connaissances
![[quiz-bilan.table.md]]
Front matter — champs reconnus
| Champ | Valeur | Description |
| title | texte libre | Titre affiché dans l'interface |
| author | texte libre | Auteur du document |
| date | YYYY-MM-DD | Date de création ou révision |
| type | document (défaut) | Type de rendu |
| lang | fr, en… | Langue (pour l'IA et la correction) |
Mode hybride — blocs [SLIDE]
Un .doc.md peut contenir des blocs [SLIDE] pour être utilisé
à la fois comme document et comme présentation. Le texte hors [SLIDE]
est ignoré lors du rendu en mode présentation.
---
title: Introduction au Markdown
type: document
---
<!-- Visible en mode document, ignoré en présentation -->
Ce document peut s'ouvrir dans Writer ou être présenté slide par slide.
[SLIDE]
## Slide 1 — Qu'est-ce que Markdown ?
Markdown est un langage de balisage **léger** créé en 2004.
[SLIDE]
## Slide 2 — Pourquoi l'utiliser ?
- Lisible sans outil
- Versionnable avec Git
- Universel
Format de Tabler. Un tableau de données en Markdown standard, avec un front matter
YAML qui détermine son comportement. Le champ type bascule entre
un rendu tableur classique et un widget quiz interactif.
Tableau de données standard
---
title: Budget prévisionnel 2025
type: table
start_date: type=date label="Date de début"
amount: type=currency aggregations=sum label=Montant
status: input=select values=Prévu,Validé,Annulé label=Statut
---
| start_date | amount | status |
|------------|--------|--------|
| 2025-01-01 | 12 000 | Validé |
| 2025-04-01 | 3 500 | Prévu |
Quiz — type: quiz
Quand type: quiz, Tabler rend le fichier comme un widget interactif.
Chaque ligne du tableau est une question. Le champ type de la ligne
(colonne type) détermine la mécanique de la question.
---
title: Quiz — La photosynthèse
type: quiz
---
| id | type | question | options | answer |
|----|------------------|--------------------------------------|-----------------------------------|-------------|
| q1 | qcm_simple | Quel gaz est produit ? | Azote,Oxygène,CO2,Argon | Oxygène |
| q2 | tri_sequence | Remettre les étapes dans l'ordre | Absorption,Réaction,Libération O2 | Absorption,…|
| q3 | question_ouverte | Rôle de la chlorophylle ? | | |
Chaque colonne d'un .table.md peut être annotée dans le front matter
avec des propriétés clé=valeur sur la même ligne que le nom de la colonne.
Ces types et widgets sont identiques à ceux utilisés dans les métadonnées
des tables SQLite des applications ProAppli (CRM, ERP, formulaires…).
Un tableau .table.md et une table de base de données ProAppli
partagent le même système de typage — ce qui permet des imports/exports directs
entre les deux sans conversion.
---
title: Contacts clients
name: label=Nom
email: type=email label=Email
phone: type=phone label=Téléphone
category: input=select values=client,prospect,partenaire label=Catégorie
birthdate: type=date label="Date de naissance"
balance: type=currency aggregations=sum label=Solde
rating: type=number input=rating label=Note
notes: input=textarea label=Notes
active: type=boolean input=checkbox label=Actif
---
Types de données — type=
| type | Rendu / comportement |
| text | Texte libre (défaut) |
| number | Nombre, aligné à droite, trié numériquement |
| date | Sélecteur de date, format YYYY-MM-DD |
| time | Heure au format HH:MM |
| datetime | Date et heure combinées |
| email | Lien mailto:, validation format |
| url | Lien cliquable, validation URL |
| phone | Numéro de téléphone |
| boolean | Vrai/faux — case à cocher si input=checkbox |
| percent | Valeur numérique affichée avec % |
| currency | Montant avec symbole (€ par défaut, configurable via currency=) |
| image | URL d'image avec aperçu miniature inline |
| color | Code couleur hexadécimal avec aperçu visuel |
| file | Chemin ou URL de fichier |
Widgets de saisie — input=
| input | Widget | Propriétés associées |
| input | Champ texte standard (défaut) | — |
| select | Liste déroulante | values=A,B,C |
| radio | Boutons radio horizontaux | values=A,B,C |
| checkbox | Case à cocher (boolean) | — |
| textarea | Zone de texte multiligne | — |
| formula | Formule calculée (lecture seule) | — |
| rating | Étoiles 1–5 | Stocké comme number |
Autres propriétés
| Propriété | Exemple | Description |
| label | label=Nom complet · label="Code postal" | Libellé affiché (guillemets si espace) |
| values | values=Actif,Inactif,Archivé | Valeurs autorisées pour select ou radio |
| aggregations | aggregations=sum,average | Calculs affichés en pied de colonne |
| currency | currency=$ | Symbole monétaire pour type=currency |
Format de Presenter. Compatible avec Marp — les fichiers
.pres.md s'ouvrent directement dans VS Code avec l'extension Marp,
ou dans tout outil compatible. Les slides sont séparés par ---.
---
marp: true
title: Introduction au Qigong
theme: default
paginate: true
---
# Introduction au Qigong
Formation certifiante — Niveau 1
---
## Les origines
Le Qigong est une pratique millénaire fondée sur la circulation du **qi**.
---
## Évaluation
![[quiz-qigong-niveau1.table.md]]
| Champ | Valeur | Description |
| marp | true | Active le mode Marp (requis) |
| title | texte libre | Titre de la présentation |
| theme | default · gaia · uncover | Thème Marp appliqué |
| paginate | true / false | Numérotation des slides |
| author | texte libre | Auteur affiché dans les métadonnées |
La transclusion ![[fichier.table.md]] est résolue côté serveur avant
le rendu Marp. Les quiz sont injectés comme HTML dans la slide.
La transclusion permet d'inclure un fichier .table.md dans
un document ou une présentation. La syntaxe est inspirée d'Obsidian.
La résolution est effectuée côté serveur.
![[nom-du-fichier.table.md]]
| type du .table.md inclus | Rendu produit |
| table (défaut) | Tableau HTML avec en-têtes et lignes |
| quiz | Widget quiz interactif avec correction et enregistrement des résultats |
Le fichier inclus doit se trouver dans le même dossier que le document
qui le référence. Si introuvable, un commentaire HTML est injecté à la place — aucune
erreur fatale.
| type (ligne) | Mécanique | Colonnes requises |
| qcm_simple |
Choix unique parmi plusieurs options (boutons radio). Une seule réponse correcte. |
id · question · options (virgule) · answer |
| tri_sequence |
Glisser-déposer pour remettre des éléments dans le bon ordre. Options mélangées à l'affichage. |
id · question · options (ordre correct) · answer |
| question_ouverte |
Zone de texte libre. Réponse corrigée manuellement ou par l'IA. |
id · question |
Tous les formats acceptent un en-tête YAML facultatif délimité par ---
au début du fichier. Un fichier sans front matter est valide et rendu avec les valeurs
par défaut. Les clés non reconnues sont ignorées silencieusement.
--- # délimiteur d'ouverture
clé: valeur
clé2: valeur2
--- # délimiteur de fermeture
Contenu Markdown...
.doc.md
Document — Writer
- Markdown standardStandard Markdown
- Transclusion
![[]]
- Blocs
[SLIDE] hybridesHybrid [SLIDE] blocks
- Génération IA intégréeBuilt-in AI generation
- Versioning Git
.table.md
Tableau / QuizTable / Quiz — Tabler
- Tableau Markdown standardStandard Markdown table
type: table ouor quiz
- 14 types de colonnescolumn types
- 3 types de questionsquestion types
- Export .xlsx prévuplanned
.pres.md
PrésentationPresentation — Presenter
- Compatible MarpMarp compatible
- Slides séparés parSlides separated by
---
- Transclusion
![[]]
- Thèmes Marp natifsNative Marp themes
- Import .pptx prévuplanned