Comme vous l'avez probablement vu dans les articles précédents, chez MakeUseOf, nous sommes fans de Markdown. En apprenant ce format simple et intuitif, vous êtes en mesure de créer facilement une sortie attrayante. Des PDF aux pages Web, votre humble fichier texte brut devient un document sophistiqué.
Mais Markdown n'est pas le seul jeu en ville. Il existe un certain nombre d'autres langages de balisage dits légers similaires à Markdown mais avec des ensembles de fonctionnalités différents. L'un d'eux est Asciidoc. Si vous aimez Markdown mais que vous cherchez un peu plus sous le capot, cela vaut la peine d'être considéré. Voici quelques raisons.
Un langage de balisage est un ensemble de codes qui, lorsqu'il est appliqué à du texte autrement brut, vous permet d'ajouter une ou plusieurs des propriétés suivantes (entre autres) :
Un langage de balisage que vous rencontrez tous les jours (sauf si vous êtes un ermite) est le langage de balisage hypertexte, ou HTML. Les sites Web et les applications qui vous apportent des nouvelles et vous montrent votre courrier électronique sont construits, au moins en partie, avec un balisage HTML. HTML utilise des balises comme mécanisme de balisage du contenu du texte brut. Par exemple, considérez l'extrait de code HTML suivant :
Présentation du HTML
Voici un paragraphe en HTML... nous savons que c'est un paragraphe
car les balises \
environnantes le définissent comme un.
Ici, la balise
spécifie que tout le texte à suivre, jusqu'à sa balise de fermeture
, est un paragraphe. En ce sens, il définit le texte sous forme de paragraphe.Mais notez également les balises
... elles servent souvent à définir la mise en page d'une page Web, comme la marge qu'il y a du côté de l'écran.
Et les balises décoreront le mot "paragraphe" dans une police en gras, tandis que les balises peuvent à la fois mettre en page le titre (en l'espacant du texte environnant) et définir une police plus grande.
Le problème avec certains langages de balisage (HTML parmi eux) est que taper ces balises manuellement est une affaire très fastidieuse. Et avec d'autres langages comme XML, les balises et leurs attributs constituent une plus grande partie du contenu global que le texte lui-même ! Jetez un œil à l'extrait de code DocBook suivant, un dialecte XML utilisé pour créer de nombreuses publications techniques :
Tout le texte en violet représente des balises que vous devez saisir vous-même. Le premier paragraphe ne commence qu'au bas de cette image. Et si ce n'est pas fait exactement selon la norme DocBook, vous ne pourrez pas le convertir en un joli document PDF qui est généralement l'objectif final.
Si vous vouliez tirer parti des langages de balisage, par exemple en publiant une page HTML sur le Web ou en convertissant un fichier DocBook au format PDF afin qu'il puisse être imprimé, vous deviez faire l'une des deux choses. D'une part, vous pourriez investir du temps en apprenant ces langues de fond en comble, en les écrivant à la main, puis en vérifiant trois fois votre travail. Ou vous pouvez investir de l'argent dans un outil qui gère la complexité de ceux-ci pour vous.
Heureusement, certains développeurs entreprenants ont proposé une troisième option. Ils ont créé de nouveaux langages de balisage qui contenaient de nombreuses (dans certains cas la plupart ou la totalité) des fonctionnalités des homologues plus lourds, mais simplifiaient considérablement la syntaxe. Ces langages "légers" incluent le familier Markdown ainsi que Asciidoc, le format Org-Mode d'Emac et la syntaxe Mediawiki.
L'une des caractéristiques de ces langages est que leurs "balises" (telles qu'elles sont) doivent être intuitives. Jetons un coup d'œil à l'extrait précédent, cette fois écrit en Asciidoc :
Présentation d'Asciidoc
--------------------
Où sont les balises *paragraphe* ? Nous n'en avons pas besoin... Asciidoc est assez intelligent
réaliser ceci est un paragraphe !
Beaucoup plus lisible, non ? En commençant par le haut, nous pouvons identifier le titre car il est "souligné" avec des tirets. Vous pourriez le faire si vous écriviez à la main, dessinez simplement un soulignement sous le titre de la page de votre cahier. Il n'y a pas non plus de balises de paragraphe - Asciidoc considère tout ce qui se trouve entre deux lignes vides qui n'a pas d'autre balisage dessus comme étant du texte de paragraphe "ordinaire". Enfin, les astérisques autour du mot "paragraphe" indiquent un gras. Levez la main si vous l'avez fait dans un message texte pour signifier exactement la même chose.
Les langages de balisage "lourds" ont généralement une application dédiée pour les interpréter pour vous. Sur le Web, c'est votre navigateur ainsi qu'éventuellement le serveur Web qui transformera le code en pages Web flashy. Pour les documents en XML, il peut s'agir de quelque chose comme Microsoft Word, qui lit et écrit son format DOCX (qui est un autre dialecte XML). Ainsi, vous n'aurez jamais à interagir directement avec la source de ces documents, seules les jolies façades que vos applications vous montrent.
Pendant ce temps, les documents écrits dans des langages légers sont lisibles par l'homme sous forme source (un autre locataire), mais seuls les vrais nerds pourraient penser qu'ils sont beaux. Afin d'obtenir une belle sortie, vous devez utiliser un processeur . Ce sont des applications qui parcourront votre balisage ligne par ligne et le convertiront en quelque chose d'autre qui a l'air bien. Les mêmes projets qui développent le langage lui-même produiront généralement un utilitaire pour l'accompagner. Le projet Markdown propose un script Perl du même nom, et le programme compagnon d'Asciidoc est écrit en Python. De plus, d'autres utilitaires de conversion prendront en charge certaines de ces langues. L'un d'entre eux est l'excellent Pandoc, qui prendra Markdown ainsi que des balises légères restructurées Text, Mediawiki et Org-Mode et les convertira en PDF, DOCX, ODT, etc.
Le résultat est que les langages de balisage légers vous permettent de travailler en texte brut, le format de données le plus portable de la planète, tout en produisant une sortie agréable au final. Maintenant que vous êtes convaincu de ses mérites, quelle langue choisir ? Markdown est sans aucun doute le plus populaire et a ses avantages (plus sur ceux-ci plus tard). Mais Asciidoc en particulier est une alternative valable. Dans la section suivante, nous explorerons quelques raisons.
Le format Asciidoc a été créé afin d'apporter une simplicité légère à DocBook, l'un des formats les plus courants dans l'écriture longue (surtout technique). L'une de ses prétentions à la renommée est qu'il s'agit d'une traduction un à un, ce qui signifie que pour chaque élément de DocBook, il existe une représentation correspondante dans Asciidoc. Ci-dessous, nous examinerons certains des avantages et des inconvénients d'Asciidoc par rapport à Markdown.
Dès le départ, l'objectif de Markdown était d'être un format simple pour les rédacteurs Web. En tant que tel, les éléments d'écriture qu'il prend en charge (au moins l'implémentation d'origine, voir ci-dessous) se concentrent sur l'automatisation des aspects les plus chronophages de l'écriture HTML (les listes par exemple, qui nécessitent les balises
Asciidoc les contient également, mais propose également des éléments DocBook plus avancés tels que des avertissements (par exemple, des blocs de légende "Remarque :" ou "Info :") et des mises en page de tableau complexes. Cela ne signifie pas que vous avez besoin de les utiliser tout le temps, mais ils seront là et disponibles si jamais vous en avez besoin.
Lorsque la popularité de Markdown a commencé à décoller, certains de ses utilisateurs ont commencé à rencontrer certaines des lacunes décrites ci-dessus. Ces utilisateurs ont donc commencé à développer leurs propres extensions pour résoudre ces problèmes, comme la possibilité d'ajouter des tableaux ou des notes de bas de page/de fin. Bientôt, il y eut de nombreuses "saveurs" de Markdown, dont (entre autres) :
Le résultat est que votre document peut nécessiter des éléments qui ne sont pas tous couverts par une seule saveur. En revanche, Asciidoc ne souffre pas de la même fragmentation que Markdown actuellement.
Markdown est idéal pour sortir rapidement un article de blog de votre tête et sur la page. Mais prêt à l'emploi, il n'est pas conçu pour structurer des œuvres plus longues, comme un livre. Asciidoc est conçu pour cela, et un exemple est ses fonctions "include". Ces déclarations vous permettent d'inclure tout le contenu d'un fichier dans un autre :
include::somefile.adoc
Ce n'est pas très différent de la façon dont les documents maîtres fonctionnent dans les traitements de texte. Cela vous permet, par exemple, de rédiger chaque chapitre dans un fichier séparé, puis de les "inclure" tous dans un seul fichier représentant le livre. Lorsque vous traitez ce "fichier de livre", la sortie sera comme si tous les chapitres étaient écrits directement dans ce document.
Markdown couvre toutes les bases pour une plus grande partie des utilisateurs. Pour ceux qui cherchent simplement à bloguer ou à taper des notes au format texte brut, Markdown prend en charge tous les éléments dont ils auront besoin. Les références croisées ne signifient pas grand-chose pour un utilisateur qui souhaite simplement créer un simple mémo ou une page Web. Vous pouvez même utiliser Markdown pour des travaux plus longs avec des mises en page simples, comme un roman, et les combiner vous-même à la fin.
Étant donné que Markdown répond aux besoins d'un plus grand segment d'utilisateurs, il est finalement mieux pris en charge en ce qui concerne les éléments suivants :
Alors que Markdown est en quelque sorte un choix de facto parmi les langages de balisage légers, Asciidoc contient tous les mêmes éléments, puis certains. Les extras d'Asciidoc nécessitent un certain temps d'apprentissage, car ils peuvent mieux vous préparer à des projets d'écriture plus importants et plus complexes.
Qu'en pensez-vous ? Êtes-vous satisfait de la simplicité de Markdown ? Ou créer votre propre workflow de publication multicanal avec Asciidoc est-il tentant ? Peut-être que vous détestez le texte brut et que c'est Word jusqu'au bout pour vous ? Faites-le nous savoir dans les commentaires ci-dessous !