À propos du projet

Folio est présenté comme un format Markdown et un ensemble d'outils permettant d'écrire un programme à l'intérieur du document qui l'explique. Un document peut commencer par un en-tête YAML contenant des champs tels que format, id, type, status et tangle root. Les blocs de code peuvent être nommés et peuvent spécifier un fichier cible. Le tangling rassemble les blocs de code d'un document dans des fichiers sources, écrit un en-tête généré dans le style de commentaire de chaque fichier, et enregistre un fichier compagnon tangle-map indiquant quel bloc a produit quel fichier. Les blocs peuvent être épissés en plaçant une référence de bloc sur une ligne, collant ce bloc à l'indentation de la référence. Le weaving rend le même document sous forme de page de lecture. Le checker valide les métadonnées du document par rapport à un vocabulaire fourni ou défini dans les documents. Le vocabulaire fourni décrit les documents, les logiciels et leurs relations, et peut être étendu ou remplacé. Les documents peuvent déclarer des concepts et des instances à l'aide de blocs Turtle ou YAML. Les publications sélectionnent des documents et du code à partir d'une collection plus large et produisent un dépôt autonome, avec les origines enregistrées dans PROVENANCE.json et un refus des dépendances aux crates en dehors de la sélection. Ce dépôt a été produit de cette manière et inclut l'outil ainsi que les documents sources qui l'ont généré. Le Rust généré est commité, sehingga un clone récent peut être construit avec cargo. Des guides couvrent l'intégration, l'orientation des documents vers du code existant et les limitations actuelles. La CI peut re-tangler et échouer si l'arborescence change. La licence est MIT, et les licences de dépendances conservent leurs propres termes. Le README donne également un exemple de prompt pour demander à un agent d'évaluer où Folio pourrait aider dans un projet.