# PlanFacile

PlanFacile est un compilateur libre permettant de créer un document à partir d'idées liées entre elles par des dépendances à la manière d'une carte heuristique (mind map en anglais). L'algorithme de PlanFacile s'occupe alors d'agencer ces idées afin que la lecture du document soit le plus linéaire possible, c'est-à-dire contenant le moins de références possibles vers des parties plus lointaines dans le document, et en s'occupant également de la hiérarchie de ces idées. PlanFacile propose donc au rédacteur du code source un plan optimisé pour exposer ses idées. Son interface est en ligne de commande.
La version 2.0 de PlanFacile est publiée sous licence GPL depuis 2006, et fonctionne sur les systèmes Gnu/Linux, *BSD, Windows (en utilisant Cygwin), et ce sur les plateformes i386, i686 et PPC, qu'elles soient en 32bits ou en 64bits. La dernière version du logiciel date de 2007 et semble abandonnée par son mainteneur depuis.

## Spécificités du langage

Le langage de PlanFacile permet de décrire des idées et leurs dépendances, mais également la manière de formater le texte pour la génération du document (toutefois des définitions standards permettent d'obtenir simplement des documents en HTML ou en LaTeX), et propose également un puissant système de macro-définition permettant d'automatiser la génération de structures répétitives et de rendre le code source indépendant des spécificités des différents formats de sortie.

## Exemple de document PlanFacile

Voici un exemple complet de code source PlanFacile :
* LaTeX :
Compilation pour LaTeX :
Résultat pour LaTeX :
* HTML :
Compilation pour le HTML :
Résultat pour le HTML :
Le plan obtenu comporte les mêmes idées que celles présentes dans le code source, à l'exception de l'« idée racine ». Cette idée est en réalité traitée par le compilateur en interne, mais les formatages appliqués lui ordonnent de ne pas produire de texte pour cette idée.
De plus, l'idée « LaTeX » se retrouve avant l'idée « PlanFacile », car cette dernière comprend dans son texte une commande #dep indiquant que la compréhension de l'idée « LaTeX » est nécessaire à la compréhension de l'idée « PlanFacile ». Ces deux idées se retrouvent donc dans un ordre rendant plus fluide la lecture du document.
Les autres dépendances présentes dans le code source permettent au compilateur de retrouver l'organisation hiérarchique du document. Toutefois, de telles dépendances ont une justification sémantique propre, qui n'a aucun lien avec la hiérarchie du document. En effet, il est nécessaire de toujours pouvoir justifier une dépendance par des arguments liés au contenu des idées, et non pas en rapport avec la position que l'on souhaite donner à une idée dans le document.
Enfin, le code source utilisant des macro-définition du compilateur permet de produire des documents sous différents formats sans avoir à retoucher le code, une option permettant de sélectionner les commandes de formatage souhaitées. Ainsi, il est également possible sans aucune modification de code de créer le document dans d'autres formats, tels que la syntaxe wiki, en modifiant via une variable d'environnement le fichier source inclus par la commande #standard présente en début de code source.