%title Comparatif mdown / ZCode
%keywords projets/mdown/index
%comment Comparaison de mdown et du ZCode. Spécialement pour les visiteurs du Site du Zéro !
%id $Id: compar-zcode.text,v 1.4 2008/05/04 15:15:40 minh Exp $
Pour les zéros et autres personnes venant du .SdZ. dans l'intention de
jeter un coup d'œil à [mdown](a:index), j'ai écrit ce petit comparatif
rapide. Il va de soi qu'étant donné que je suis l'auteur de mdown, ce
comparatif est /biaisé/.
Vous trouverez ci-dessous deux sections ; la première liste le pour et
le contre de chacune des deux solutions, tandis que la deuxième offre
une petite table d'équivalence des syntaxes.
%tableofcontents
= Pourquoi mdown ? [pourquoi]
== Fiche technique [tech]
| | *ZCode* | *mdown*
| Type | proche du XML | proche du texte naturel
| Marquage | balises XML | ponctuation
| Support | Site du Zéro | .SdZ., .XHTML., LaTeX
| Interface | +web+(en) | console
== Quelques raisons de ne pas utiliser mdown [contre]
- Vous ne savez pas (ou ne voulez pas) vous servir d'un utilitaire en
mode console. Dans le premier cas, vous pourriez apprendre mais je
doute que vous en ayez l'envie juste pour mdown.
- Vous préfèrez composer vos textes dans un formulaire +web+(en) tel
que la zForm plutôt qu'un éditeur de texte externe. C'est un choix
tout à fait raisonnable pour les écrits courts, notamment, bien que
je croie sincèrement que, pour un tutoriel ou pour une news, vous
avez tout autant intérêt à garder une copie locale sur votre
machine, et l'éditer à partir de là, pour en garder une trace chez
vous et ne pas dépendre des aléas de disponibilité du serveur.
- Vous êtes plus à l'aise avec la syntaxe du ZCode, ressemblant à du
XML. C'est une opinion que je ne partage pas, mais que je peux
comprendre. Cependant, je persiste dans l'idée que mdown n'est pas
plus difficile à apprendre que le ZCode ou un autre langage de
rédaction.
== Quelques raisons d'utiliser mdown [pour]
- Vous trouvez le ZCode trop long à écrire sans la zForm et vous
n'avez aucune envie de vous servir de votre souris pour cliquer sur
les boutons. La syntaxe de mdown, inspirée des langages de rédaction
légers et des conventions utilisées lors de la mise en forme de
documents en format texte pur, est facile à écrire.
- Vous voulez avoir un fichier de travail clair et bien présenté en
texte brut. Les langages basés sur XML sont réputés simples pour les
machines, mais ne sont pas si agréables à lire pour les
humains. mdown, de par sa syntaxe légère vous permet de travailler
avec un langage facile à lire.
- Vous voulez vous abstraire du ZCode, pour par exemple publier votre
travail sur votre propre site. Avez mdown, vous pouvez générer du
XHTML valide et sémantique ou même du XML brut. De plus mdown est
/libre/ (licence BSD).
= Équivalences de syntaxes [syn]
Ceci n'est qu'un rapide comparatif de la syntaxe du ZCode et de
mdown. Pour un tour d'horizon plus complet du langage mdown, je vous
invite à consulter le [tutoriel](a:intro). Le tableau qui suit n'est
pas suffisant pour /apprendre/ mdown, mais peut vous servir
d'aide-mémoire si vous êtes habitué au ZCode ou recherchez une
équivalence.
Dans les extraits ci-dessous, le caractère `'␣'` indique une espace
importante, sans laquelle le sens du code changerait !
== Balises de texte [texte]
| *ZCode* | *mdown*
| `texte` | `*texte*` /(forte emphase)/
| `texte` | `/texte/` /(emphase)/
| `url` | `[légende](!url)`
| `texte` | `[texte](url)`
| `texte` | `[texte](wpfr:art)`
| `texte` |
`[texte](wpen:art)`
| `XYZ` | `.XYZ.(nom)`
== Listes [listes]
# Exemple : Liste à puces en ZCode
Puce 1
Puce 2
Puce 2 (suite)
Puce 3
# Exemple : Liste à puces en mdown
-␣Puce 1
-␣Puce 2
␣␣Puce 2 (suite)
-␣Puce 3
# Exemple : Liste numérotée en ZCode
Puce 1
Puce 2
Puce 2 (suite)
Puce 3
# Exemple : Liste numérotée en mdown
1.␣Puce 1
2.␣Puce 2
␣␣Puce 2 (suite)
3.␣Puce 3
# Exemple : Liste associative en ZCode (émulée)
Terme 1
Contenu 1
Terme 2
Contenu 2
Contenu 2 (suite)
# Exemple : Liste associative en mdown
: Terme 1 : Contenu 1
: Terme 2 : Contenu 2
␣␣Contenu 2 (suite)
== Tableaux [tabs]
Par rapport au ZCode, mdown ne supporte que les tableaux simples :
vous ne pouvez placer que du texte et des balises de texte
à l'intérieur d'une cellule.
# Exemple : Tableau en ZCode
Cellule 1
Cellule 2
Cellule 3
Cellule 4
Cellule 5
Cellule 6
# Exemple : Tableau en mdown
| Cellule 1 | Cellule 2 | Cellule 3
| Cellule 4 | Cellule 5 | Cellule 6
== Citations et blocs de code [citscodes]
# Exemple : Citation en ZCode
Texte cité
Texte cité (suite)
# Exemple : Citation en mdown
>␣Texte cité
>␣Texte cité (suite)
# Exemple : Bloc de code en ZCode
Code
Code (suite)
# Exemple : Bloc de code en mdown
␣␣Code
␣␣Code (suite)
Contrairement au ZCode, mdown ne supporte pas de paramètres aux
différents blocs ; cela signifie que vous ne pouvez pas avoir accès
directement à la coloration syntaxique ou intégrer un nom d'auteur
à une citation.
== Environnements simples [envs]
Pour toutes ces balises, la syntaxe est la même en ZCode et se traduit
de la même manière en mdown. Remplacez le nom de la balise ZCode par
le nom de l'environnement correspondant en mdown.
Version ZCode :
...
Version mdown :
# balise
␣␣...
La table de correspondance est la suivante :
| *ZCode* | *mdown*
| secret | secret
| information | information
| erreur | erreur
| question | question
Et voici un exemple pour la route :
# Exemple : Secret en ZCode
Mon secret
# Exemple : Secret en mdown
# secret
␣␣Mon secret
== Positionnement [pos]
mdown n'accepte que trois types de positionnements, lorsqu'il est
traduit en ZCode : le centrage et les flottements à gauche et droite.
# Exemple : Centrage en ZCode
...
# Exemple : Centrage en mdown
# centre
␣␣...
# Exemple : Flottement à gauche en ZCode
...
# Exemple : Flottement à gauche en mdown
# flottantgauche
␣␣...
# Exemple : Flottement à droite en ZCode
...
# Exemple : Flottement à droite en mdown
# flottantdroit
␣␣...
== Titres [titres]
Les titres en mdown ont une syntaxe analogue aux listes, excepté que
le tiret est remplacé des signes `'='`. Il y en a autant que le niveau
de profondeur du titre. mdown supporte les titres de niveau 1 à 5, en
utilisant les balises `` et `` du ZCode pour les deux
premiers, et en émulant les autres.
# Exemple : Titre de second niveau en ZCode
Titre
Titre (suite)
# Exemple : Titre de second niveau en mdown
== Titre
␣␣Titre (suite)
%-