AsciiDoc
Mise à jour :
Bienvenue dans ce guide complet dédié à AsciiDoc, un langage de balisage léger et puissant conçu pour rédiger des documents techniques, des guides, des manuels et bien plus encore. Que vous soyez développeur, écrivain technique ou simplement intéressé par la création de documents structurés, ce guide vous fournira toutes les informations nécessaires pour maîtriser AsciiDoc.
AsciiDoc se distingue par sa syntaxe simple et intuitive qui permet de produire des documents lisibles en texte brut tout en offrant des capacités de conversion en divers formats tels que HTML, PDF et DocBook.
Historique d’AsciiDoc
Pour bien comprendre et apprécier AsciiDoc, il est essentiel de se pencher sur son historique et ses origines. Le langage AsciiDoc a été créé en 2002 par Stuart Rackham. À l’époque, Rackham recherchait une solution pour rédiger des documents techniques de manière plus efficace et flexible que les outils existants comme DocBook, qui étaient souvent jugés trop complexes et verbeux.
Initialement, AsciiDoc a été conçu comme une syntaxe légère permettant de produire du DocBook. Cela signifie que les utilisateurs pouvaient écrire leurs documents en AsciiDoc, puis les convertir en DocBook pour des besoins de publication. Ce concept de conversion a été un des piliers de la popularité d’AsciiDoc, offrant une grande flexibilité sans sacrifier la simplicité.
Au fil des années, AsciiDoc a évolué pour devenir un langage de balisage à part entière. Son adoption par la communauté open source a été rapide, en particulier parmi les développeurs et les rédacteurs techniques qui recherchaient une solution de documentation lisible en texte brut tout en étant puissante et extensible.
AsciiDoc a gagné en popularité grâce à sa capacité à être intégré dans des outils de versionnement de code comme Git, facilitant ainsi la collaboration sur des documents techniques. Les plateformes de développement comme GitHub et GitLab ont rapidement adopté AsciiDoc, permettant aux utilisateurs de visualiser directement leurs fichiers AsciiDoc en ligne.
L’introduction d’AsciiDoctor en 2013, une implémentation moderne et maintenue activement d’AsciiDoc en Ruby, a marqué une étape importante dans l’évolution du langage. AsciiDoctor a simplifié et accéléré la conversion des documents, offrant de nouvelles fonctionnalités et une meilleure performance. Cela a conduit à une adoption encore plus large et à une augmentation de la contribution de la communauté.
Aujourd’hui, AsciiDoc est utilisé dans une multitude de contextes, allant de la documentation de logiciels et d’API à la rédaction de livres et de manuels techniques. Il est apprécié pour sa syntaxe claire et concise, sa capacité de conversion en de nombreux formats et son extensibilité via des plugins et des scripts personnalisés.
AsciiDoc continue d’évoluer grâce à une communauté active et des contributions régulières. Des projets comme Antora, une plateforme de documentation multi-repository, montrent la capacité d’AsciiDoc à s’adapter aux besoins modernes de la documentation technique.
Concepts de Base
Avant de plonger dans la syntaxe d’AsciiDoc, il est important de comprendre certains concepts fondamentaux. Ces concepts vous aideront à mieux structurer vos documents et à tirer pleinement parti des fonctionnalités offertes par AsciiDoc.
Metadonnées
Les métadonnées fournissent des informations supplémentaires sur votre document, comme le titre, l’auteur et la date. Elles sont généralement placées en haut du fichier.
Blocs
Les blocs sont les éléments de base de tout document AsciiDoc. Ils structurent le contenu de manière logique et organisée. Voici quelques types de blocs couramment utilisés :
- Paragraphes : Les paragraphes sont des blocs de texte simples, séparés par une ligne vide. Ils constituent le contenu principal de votre document.
- Titres : Les titres structurent votre document en sections et
sous-sections. Ils sont créés en utilisant des symboles égaux (
=
). - Listes : Les listes permettent de présenter des éléments de manière ordonnée ou non ordonnée. AsciiDoc prend en charge les listes à puces, numérotées et de définition.
Attributs
Les attributs en AsciiDoc permettent de définir des variables que vous pouvez réutiliser dans tout le document. Ils facilitent la maintenance de vos documents en centralisant les informations réutilisables.
Commentaires
Les commentaires en AsciiDoc sont utilisés pour ajouter des notes ou des
explications dans le document qui ne seront pas visibles dans le rendu final.
Ils commencent par deux slashes (//
).
Style de Texte
AsciiDoc permet d’appliquer divers styles de texte pour améliorer la lisibilité et l’impact de votre document. Voici quelques exemples :
- Gras : Utilisez les astérisques (
*
) pour le texte en gras. - Italique : Utilisez les underscores (
_
) pour le texte en italique. - Monospace : Utilisez les backticks (“) pour le texte en monospace.
Fonctionnalités
AsciiDoc est un langage de balisage riche en fonctionnalités qui le rendent particulièrement puissant et flexible pour la création de documents de différents types et complexités. Dans ce chapitre, je vais vous présenter les principales fonctionnalités qui font d’AsciiDoc un outil incontournable pour la rédaction technique et bien plus encore.
Lisibilité
L’une des principales forces d’AsciiDoc est sa lisibilité. Les documents écrits en AsciiDoc sont faciles à lire même dans leur format brut, ce qui les rend accessibles à tous, y compris ceux qui ne connaissent pas le langage. Par exemple, un paragraphe en AsciiDoc ressemble à du texte normal :
Flexibilité
AsciiDoc est extrêmement flexible et peut être utilisé pour créer une variété de documents, des simples articles de blog aux livres techniques complexes. Voici quelques exemples :
- Articles de Blog : Utilisez AsciiDoc pour rédiger des articles de blog avec des sections, des images, des liens et plus encore.
- Documentation Technique : Créez des manuels, des guides et des documentations techniques avec des tableaux, des blocs de code et des listes numérotées.
- Livres : Rédigez des livres entiers en structurant vos chapitres et sections avec des titres de différents niveaux.
Portabilité
AsciiDoc est hautement portable. Les fichiers AsciiDoc peuvent être convertis en plusieurs formats de sortie, ce qui vous permet de publier votre contenu sur différentes plateformes sans avoir à réécrire ou reformater le texte. Voici quelques formats couramment utilisés :
- HTML : Convertissez vos fichiers AsciiDoc en HTML pour les publier sur des sites web.
- PDF : Générez des documents PDF pour la distribution imprimée ou numérique.
- EPUB : Créez des livres électroniques au format EPUB pour les lire sur des liseuses.
Personnalisation
Avec AsciiDoc, vous pouvez personnaliser de nombreux aspects de votre document en utilisant des attributs et des styles. Par exemple, vous pouvez définir des attributs globaux pour contrôler l’apparence et le comportement de votre document.
Dans cet exemple, l’attribut toc
place la table des matières à gauche, et
l’attribut icons
utilise des icônes basées sur des polices.
Gestion des Projets
AsciiDoc facilite la gestion des projets de documentation volumineuse. Vous pouvez organiser votre contenu en fichiers séparés et les inclure dans un document principal. Cela rend la maintenance et la mise à jour de votre documentation beaucoup plus simples.
Support des Macros
AsciiDoc supporte des macros qui ajoutent des fonctionnalités supplémentaires à vos documents. Par exemple, vous pouvez utiliser des macros pour inclure des fichiers, générer des tableaux dynamiques, ou insérer des images conditionnellement.
Interopérabilité
AsciiDoc est compatible avec plusieurs autres outils et formats de documentation. Vous pouvez intégrer AsciiDoc dans des pipelines de génération de documentation existants ou l’utiliser conjointement avec d’autres outils pour améliorer votre flux de travail.
Syntaxe de Base
Dans ce chapitre, je vais vous présenter la syntaxe de base d’AsciiDoc. Vous apprendrez comment structurer vos documents avec des titres, des paragraphes, des listes et comment formater votre texte pour le rendre plus attrayant et lisible.
Titres
Les titres en AsciiDoc sont créés en utilisant le symbole égal (=
). Plus
il y a de symboles égaux, plus le niveau de titre est bas. Les titres permettent
de structurer votre document en sections et sous-sections de manière
hiérarchique.
Par exemple :
Paragraphes et Sauts de Ligne
Les paragraphes sont des blocs de texte séparés par une ligne vide. Si vous
avez besoin de forcer un saut de ligne à l’intérieur d’un paragraphe, vous
pouvez utiliser le symbole plus (+
) à la fin de la ligne.
Mise en Forme du Texte
AsciiDoc offre plusieurs options pour la mise en forme du texte. Voici comment appliquer du gras, de l’italique et du monospace à votre texte :
- Gras : Utilisez les astérisques (
*
) autour du texte. - Italique : Utilisez les underscores (
_
) autour du texte. - Monospace : Utilisez les backticks (“) autour du texte.
Listes
Les listes en AsciiDoc peuvent être à puces, numérotées ou de définition. Voici comment créer chacun de ces types de listes :
Liste à Puces :
Liste Numérotée :
Liste de Définition :
Blocs de Code
Les blocs de code sont utilisés pour inclure du code source dans votre
document. Ils sont délimités par des triples backticks (```) ou par le
mot-clé [source]
suivi du langage de programmation entre crochets.
Ou en utilisant les triples backticks :
Blocs de Citations
Les blocs de citations sont utilisés pour inclure des citations ou des
extraits de texte. Ils commencent par une double quote ("
).
Blocs de Tableaux
AsciiDoc permet de créer des tableaux en utilisant des pipes (|
) pour
séparer les colonnes et des lignes de délimitation pour séparer les rangées.
Notes et Astuces (Admonitions)
Vous pouvez ajouter des notes et astuces en utilisant des blocs spécifiques pour attirer l’attention sur des informations importantes.
Blocs Avancés
AsciiDoc propose des blocs avancés qui permettent de structurer vos documents de manière plus complexe et d’ajouter des fonctionnalités supplémentaires. Dans ce chapitre, nous allons explorer les blocs de code, les blocs de citations, les blocs de tableaux et d’autres types de blocs avancés.
Blocs de Citations
Les blocs de citations permettent d’inclure des citations ou des extraits de texte avec un formatage distinctif. Ils sont utiles pour mettre en avant des citations importantes ou des références.
Blocs de Tableaux
Les blocs de tableaux permettent de présenter des données structurées sous
forme de tableaux. Les colonnes sont séparées par des pipes (|
) et les lignes
sont délimitées par des lignes de séparation.
Vous pouvez également personnaliser l’alignement des colonnes et ajouter des en-têtes.
Blocs de Listings
Les blocs de listings sont similaires aux blocs de code, mais ils sont utilisés pour afficher du texte ou des commandes qui ne nécessitent pas de coloration syntaxique.
Blocs de Formulaires
Les blocs de formulaires permettent de créer des formulaires interactifs. Bien que cette fonctionnalité soit moins courante, elle peut être utilisée dans des contextes spécifiques.
Blocs d’Exemples
Les blocs d’exemples sont utilisés pour fournir des exemples de texte ou de code. Ils sont encadrés pour se distinguer du reste du contenu.
Blocs de Verbatim
Les blocs de verbatim affichent le texte exactement comme il est écrit, sans aucune mise en forme. Ils sont utiles pour montrer des exemples de texte brut.
Blocs de Notes
Les blocs de notes permettent d’ajouter des informations supplémentaires ou des remarques importantes. Ils sont formatés pour attirer l’attention du lecteur.
Blocs de Tips et d’Informations Importantes
AsciiDoc permet d’utiliser des blocs spécifiques pour les astuces (tips) et les informations importantes (important). Ces blocs sont formatés de manière distincte pour se démarquer du texte principal.
Images et Liens
Dans ce chapitre, je vais vous montrer comment insérer des images et des liens dans vos documents AsciiDoc. Ces éléments enrichissent votre contenu en ajoutant des visuels et des références utiles.
Images
Les images peuvent être insérées dans un document AsciiDoc en utilisant la
syntaxe image::
suivie du chemin de l’image et d’un texte alternatif entre
crochets. Les images peuvent être locales ou hébergées en ligne.
Insertion d’une Image Locale
Pour insérer une image locale, spécifiez le chemin relatif ou absolu vers le fichier image.
Insertion d’une Image en Ligne
Pour insérer une image hébergée en ligne, utilisez l’URL de l’image.
Redimensionnement et Alignement des Images
Vous pouvez redimensionner et aligner les images en utilisant des attributs. Par exemple, pour redimensionner une image à 200 pixels de largeur :
Pour aligner une image au centre :
Exemple Complet
Voici un exemple complet combinant plusieurs attributs :
Liens
Les liens sont essentiels pour référencer d’autres documents, sites web, ou sections au sein du même document. AsciiDoc supporte plusieurs types de liens, notamment les liens hypertexte, les liens vers des fichiers locaux et les ancres internes.
Liens Hypertexte
Pour créer un lien hypertexte, utilisez les crochets pour le texte du lien et les parenthèses pour l’URL.
Liens vers des Fichiers Locaux
Vous pouvez également créer des liens vers des fichiers locaux.
Liens avec Attributs
Les liens peuvent être enrichis avec des attributs tels que window
pour ouvrir
le lien dans une nouvelle fenêtre.
Ancres Internes
Les ancres internes permettent de créer des liens vers des sections spécifiques
du même document. Définissez une ancre avec un double crochet ([[]]
) et créez un
lien en utilisant cette ancre.
Définition d’une ancre :
Création d’un lien vers l’ancre :
Exemple Complet
Un exemple combinant différents types de liens :
Images et Liens dans les Tableaux
Vous pouvez insérer des images et des liens dans les tableaux pour rendre vos données plus interactives et visuelles.
Image dans un Tableau
Lien dans un Tableau
Attributs
Les attributs en AsciiDoc permettent de personnaliser et de configurer divers aspects de votre document. Ils fonctionnent comme des variables que vous pouvez définir et réutiliser dans tout le document, facilitant ainsi la gestion et la maintenance de votre contenu.
Définition des Attributs
Les attributs sont définis en utilisant les deux points (:
) suivis du nom de
l’attribut et de sa valeur. Ils sont généralement placés au début du document,
mais peuvent être définis à n’importe quel endroit si nécessaire.
Utilisation des Attributs
Pour utiliser un attribut défini, placez son nom entre accolades ({}
).
Attributs Pré-définis
AsciiDoc comprend plusieurs attributs pré-définis que vous pouvez utiliser pour configurer divers aspects du document, comme le titre, l’auteur et les options de table des matières.
Attributs de Document
doctitle
: Définit le titre du document.author
: Définit l’auteur du document.revdate
: Définit la date de révision du document.
Exemple Complet
Voici un exemple d’utilisation d’attributs pré-définis pour configurer les métadonnées du document :
Attributs Personnalisés
Vous pouvez définir vos propres attributs pour une personnalisation plus poussée. Par exemple, pour définir une URL de base que vous utilisez fréquemment :
Remplacement d’Attributs
Les attributs peuvent être redéfinis au cours du document. La dernière définition de l’attribut sera utilisée.
Attributs Conditionnels
AsciiDoc permet d’utiliser des attributs conditionnels pour inclure ou exclure du contenu en fonction de la présence ou de la valeur d’un attribut. Ceci est particulièrement utile pour la gestion de contenu dynamique ou multilingue.
Définition d’Attributs Conditionnels
Utilisation d’Attributs Conditionnels
Attributs dans les Blocs de Texte
Les attributs peuvent être utilisés pour personnaliser des blocs de texte ou des éléments spécifiques, comme les titres, les paragraphes et les listes.
Exemple d’Attributs dans les Titres
Exemple d’Attributs dans les Listes
Attributs et Macros
Les attributs peuvent être combinés avec des macros pour créer des documents dynamiques et réutilisables.
Inclusion de Fichiers avec des Attributs
Macros et Extensions
AsciiDoc supporte les macros et les extensions, qui ajoutent des fonctionnalités supplémentaires à vos documents. Les macros permettent d’inclure d’autres fichiers, de générer des tableaux dynamiques, ou d’insérer des éléments conditionnels. Les extensions, quant à elles, ajoutent des fonctionnalités avancées qui ne sont pas disponibles par défaut.
Inclusion de Fichiers
Les macros d’inclusion vous permettent d’insérer le contenu d’un fichier externe dans votre document AsciiDoc. Cela est particulièrement utile pour la gestion de documentation volumineuse ou pour réutiliser du contenu.
Inclusion Simple
Pour inclure un fichier externe, utilisez la macro include::
suivie du chemin
du fichier et des crochets vides.
Inclusion avec Attributs
Vous pouvez utiliser des attributs pour rendre les inclusions plus dynamiques.
Inclusion Conditionnelle
Les inclusions conditionnelles permettent d’inclure du contenu uniquement si certaines conditions sont remplies. Cela est utile pour créer des documents adaptés à différents contextes ou audiences.
Utilisation d’ifdef et d’ifndef
Tableaux Dynamiques
Les macros permettent également de créer des tableaux dynamiques en utilisant des attributs ou des variables. Vous pouvez définir des attributs pour les en-têtes de colonne et les valeurs, puis les utiliser dans votre tableau.
Exemple de Tableau Dynamique
Extensions AsciiDoc
Les extensions ajoutent des fonctionnalités avancées à AsciiDoc. Elles peuvent être utilisées pour générer des diagrammes, des graphiques et d’autres éléments interactifs. L’une des extensions les plus populaires est AsciiDoctor, qui offre de nombreuses fonctionnalités supplémentaires.
Utilisation de Mermaid
Mermaid est une extension qui permet de créer des diagrammes et des graphiques
avec une syntaxe simple. Pour utiliser Mermaid avec AsciiDoc, vous devez définir
un bloc source avec la syntaxe mermaid
.
Exemple de Diagramme Mermaid
Ce code génère un diagramme de flux simple montrant les connexions entre les nœuds A, B, C et D.
Extensions AsciiDoctor
AsciiDoctor est une implémentation moderne d’AsciiDoc qui ajoute de nombreuses fonctionnalités avancées. Voici quelques exemples d’extensions populaires :
AsciiDoctor Diagram
AsciiDoctor Diagram permet de générer des diagrammes à partir de plusieurs langages de description de diagrammes, y compris PlantUML et Graphviz.
Exemple de Diagramme PlantUML
AsciiDoctor Reveal.js
AsciiDoctor Reveal.js permet de créer des présentations interactives en utilisant la syntaxe AsciiDoc. Vous pouvez structurer vos diapositives avec des titres et des sections.
Exemple de Présentation Reveal.js
Macros Utiles
Voici quelques macros utiles pour enrichir vos documents :
Inclusion de Lignes
Inclure uniquement certaines lignes d’un fichier.
Inclusion de Sections
Inclure une section spécifique d’un fichier.
Définition de Tags
Définir des tags dans le fichier source pour des inclusions conditionnelles.
Conclusion
J’espère que ce guide complet sur AsciiDoc vous a permis de comprendre les bases et les fonctionnalités avancées de ce langage de balisage puissant et flexible. En maîtrisant AsciiDoc, vous serez capable de créer des documents de haute qualité, qu’il s’agisse de simples articles de blog, de documentation technique complexe, ou même de livres entiers.
Plus d’infos
Pour approfondir vos connaissances et explorer davantage les possibilités offertes par AsciiDoc, voici quelques ressources utiles :
- Site Officiel ↗ : Le site officiel d’AsciiDoc, où vous pouvez trouver des informations générales et des liens vers d’autres ressources.
- Documentation ↗ : La documentation officielle, qui couvre en détail toutes les fonctionnalités d’AsciiDoc.
- Projet GitHub ↗ : Le dépôt GitHub du projet AsciiDoc, où vous pouvez trouver le code source et contribuer au développement.