Étude de syntaxes possibles pour Instant MD
L'objectif est de créer des balises courtes, sans chevrons HTML, pour mettre en forme du texte.
1. Analyse des propositions
| Syntaxe | Markdown standard | Usage possible dans Instant MD |
|---|---|---|
*texte* |
Oui | Italique |
**texte** |
Oui | Gras |
_texte_ |
Oui | Italique |
__texte__ |
Oui | Gras |
~~texte~~ |
Oui | |
_*texte*_ |
Oui, combinaison possible | Gras et italique |
*_texte_* |
Oui, combinaison possible | Italique et gras |
^texte^ |
Non | Exposant ou autre style |
#texte# |
Non | Mise en valeur personnalisée |
%texte% |
Non | Mise en valeur personnalisée |
=texte= |
Non | Surlignage personnalisé |
''texte'' |
Non | Soulignement ou autre style |
2. Attention aux conflits avec Markdown
Certaines syntaxes proposées sont déjà utilisées par Markdown :
*texte*et_texte_: italique.**texte**et__texte__: gras._*texte*_et*_texte_*: gras et italique, selon l'analyseur et le contexte.
Les autres syntaxes ne font pas partie du Markdown standard. Elles peuvent être définies dans Instant MD, mais il faudra programmer leur interprétation en JavaScript.
Quelques précautions
#est déjà utilisé pour les titres Markdown :# Titre.=peut servir à souligner un titre dans certaines variantes Markdown.^est utilisé pour les exposants dans certaines extensions.%est relativement peu utilisé en Markdown.''est ambigu : deux apostrophes peuvent apparaître naturellement dans un texte.
3. Proposition pour Instant MD
Je conserverais les syntaxes Markdown existantes et réserverais les caractères moins conflictuels aux nouvelles fonctions.
| Syntaxe envisagée | Fonction |
|---|---|
*texte* |
Italique |
**texte** |
Gras |
~~texte~~ |
Barré |
=texte= |
Surligné |
%texte% |
Souligné |
^texte^ |
Exposant |
~texte~ |
Indice |
Cette proposition est une convention propre à Instant MD, et non du Markdown standard. Elle doit être implémentée dans le moteur JavaScript.
4. Ma recommandation
Pour éviter les conflits et conserver une syntaxe facile à taper sur Android, je retiendrais :
*texte*: italique ;**texte**: gras ;~~texte~~: barré ;=texte=: surligné ;%texte%: souligné ;^texte^: exposant ;~texte~: indice.
Point important : les caractères =, %, ^ et ~ ne sont pas tous libres de tout usage dans les variantes de Markdown. Il faudra donc définir précisément les règles d'ouverture, de fermeture et les cas où ces caractères doivent rester du texte ordinaire.
L'avantage est de conserver les chevrons HTML uniquement pour les cas particuliers, tout en disposant d'une syntaxe compacte pour les mises en forme courantes.
}