# Langage de balisage léger

Un langage de balisage léger est un type de langage de balisage utilisant une syntaxe simple, conçu pour être facile à saisir avec un simple éditeur de texte, et facile à lire dans sa forme non formatée.

## Présentation

On utilise les langages de balisage légers dans des applications où les utilisateurs peuvent être amenés à lire le document source aussi bien que le document rendu de manière appropriée. Par exemple, les articles de Wikipédia sont écrits grâce à un langage de balisage léger, le wikitexte.
Autre exemple : une personne téléchargeant une bibliothèque logicielle peut préférer lire la documentation dans un éditeur de texte plutôt que dans un navigateur web.
L'application principale pour ces langages est la saisie de contenu pour un site web avec contributions d'auteurs variés, tels que les blogs et les wikis, pour lesquels la seule interface garantie disponible pour tous les auteurs est une simple zone de texte.
Le logiciel du serveur convertit ce texte en un langage de balisage commun tel que XML, HTML ou XHTML.
Certains langages de programmation ont comme sous-langage un langage de balisage léger, afin de permettre d'insérer la documentation en commentaire dans le code source. Cela facilite la programmation lettrée au moyen de générateurs de documentation. Par exemple, Plain Old Documentation est le format de documentation pour Perl, et ReStructuredText est le format utilisé dans la documentation de Python.

## Types

Les langages de balisage légers peuvent être catégorisés selon le type de balises qu'ils utilisent. Comme le HTML, certains langages utilisent des balises d'ouverture et de fermeture nommées de la même façon (par exemple : <b>gras</b> en HTML ou [b]gras[/b] en BBcode), tandis que d'autres utilisent les marques de ponctuation et autres caractères spéciaux ASCII en guise de balises. D'autres encore utilisent les deux façons de faire (par exemple : Textile) ou permettent l'enchâssement de HTML (par exemple : Markdown), parfois en ajoutant des éléments (par exemple : <ref>source</ref> en MediaWiki).
La plupart des langages comportent des balises pour des lignes ou des blocs, et d'autres pour de plus petites portions de textes (quelques mots), mais certains n'offrent que des balises pour de grands blocs de textes.
Certains langages sont conçus pour un usage particulier comme la documentation d'un code de programmation (par exemple : POD, RD) ou ne peuvent être convertis qu'en un seul format (généralement HTML). D'autres offrent un plus large éventail de possibilités.
Les langages suivants servent à produire des documents : AsciiDoc, atx, BBCode, Creole, Epytext, Gemtext, Haml, JsonML, MakeDoc, Markdown, Org-mode, POD, RD, ReStructuredText, Setext, SISU, SPIP, Texy!, Textile, Txt2tags, UDO, Wikitexte et Xupl.
Ceux-ci servent plutôt à la représentation de données : Curl, JSON, OGDL et YAML.

## Historique

À l'origine, les langages de balisage léger ont été utilisés sur des écrans non graphiques qui ne pouvaient pas afficher des caractères en italique ou en gras. Il a fallu des méthodes informelles pour que ces mises en valeur soient indiquées. Ce choix de formatage a été ensuite employé dans les communications par courriel.
En 1986, la norme internationale SGML fournissait les moyens de définir et d'analyser les langages de balisage légers.
L'histoire des langages de balisage léger est fortement liée aux technologies de publication, que ce soit dans les domaines de la documentation technique ou de l'édition.