FORMATS DE FICHIERS OUVERTS OPEN FILE FORMATS

ProAppli utilise des formats texte basés sur Markdown — lisibles dans n'importe quel éditeur, versionnables avec Git, utilisables sans ProAppli. ProAppli uses Markdown-based text formats — readable in any editor, versionable with Git, usable without ProAppli.

.doc.md .table.md .pres.md
Spécification ouverte — vos données vous appartiennent Open specification — your data belongs to you
Accueil Solutions Formats ouverts

PhilosophiePhilosophy

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 :

FormatPour l'afficher dans un navigateurVerdict
.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.

Document

.doc.md Writer

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

rapport-annuel.doc.mdDocument
---
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

ChampValeurDescription
titletexte libreTitre affiché dans l'interface
authortexte libreAuteur du document
dateYYYY-MM-DDDate de création ou révision
typedocument (défaut)Type de rendu
langfr, enLangue (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.

cours-hybride.doc.mdDocument + 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

Tableau

.table.md Tabler

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

budget-2025.table.mdTableau
---
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.

quiz-photosynthese.table.mdQuiz interactif
---
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 ?            |                                   |             |

Types de colonnes

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.
contacts.table.mdColonnes typées
---
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=

typeRendu / comportement
textTexte libre (défaut)
numberNombre, aligné à droite, trié numériquement
dateSélecteur de date, format YYYY-MM-DD
timeHeure au format HH:MM
datetimeDate et heure combinées
emailLien mailto:, validation format
urlLien cliquable, validation URL
phoneNuméro de téléphone
booleanVrai/faux — case à cocher si input=checkbox
percentValeur numérique affichée avec %
currencyMontant avec symbole (€ par défaut, configurable via currency=)
imageURL d'image avec aperçu miniature inline
colorCode couleur hexadécimal avec aperçu visuel
fileChemin ou URL de fichier

Widgets de saisie — input=

inputWidgetPropriétés associées
inputChamp texte standard (défaut)
selectListe déroulantevalues=A,B,C
radioBoutons radio horizontauxvalues=A,B,C
checkboxCase à cocher (boolean)
textareaZone de texte multiligne
formulaFormule calculée (lecture seule)
ratingÉtoiles 1–5Stocké comme number

Autres propriétés

PropriétéExempleDescription
labellabel=Nom complet · label="Code postal"Libellé affiché (guillemets si espace)
valuesvalues=Actif,Inactif,ArchivéValeurs autorisées pour select ou radio
aggregationsaggregations=sum,averageCalculs affichés en pied de colonne
currencycurrency=$Symbole monétaire pour type=currency

Présentation

.pres.md Presenter

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 ---.

formation-qigong.pres.mdPrésentation Marp
---
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]]
ChampValeurDescription
marptrueActive le mode Marp (requis)
titletexte libreTitre de la présentation
themedefault · gaia · uncoverThème Marp appliqué
paginatetrue / falseNumérotation des slides
authortexte libreAuteur 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.

Transclusion

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.

Directive d'inclusion
![[nom-du-fichier.table.md]]
type du .table.md inclusRendu produit
table (défaut)Tableau HTML avec en-têtes et lignes
quizWidget 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.

Types de questions quiz

type (ligne)MécaniqueColonnes 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

Front matter YAML

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.

Structure générale
---           # délimiteur d'ouverture
clé: valeur
clé2: valeur2
---           # délimiteur de fermeture

Contenu Markdown...

RécapitulatifSummary

.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