Syntaxe wiki

Spécifications d'une syntaxe wiki utilisée depuis 2004 pour rédiger le contenu du site et la plupart de mes notes. Elle s'inspire très largement de ce qui existe déjà.

Information: 2018-01-22: Pages en cours de fusion et de réécriture.

Projet initié en 2004 afin de rédiger le contenu de ce site web, cette syntaxe wiki est devenue depuis le format de prédilection de la quasi-totalité de mes documents écrits, vu que je passe les 3/4 du temps à lire et/ou écrire des documents web et que le principal logiciel de prise de notes que j'utilise, Zim, fonctionne aussi avec des fichiers formatés en syntaxe wiki.

Les spécifications s'enrichissent au fur et à mesure des besoins mais restent guider par deux impératifs : la cible principale de rendu (le HTML) et les possibilités techniques de les traduire, notamment par le principal outil de gestion en PHP, StxManager.

Elle n'est ni mieux ni moins bien qu'une autre syntaxe wiki ; elle reprend d'ailleurs de nombreuses conventions que l'on retrouve ailleurs, certaines depuis le temps (béni) des emails sans HTML. C'est seulement celle qui m'a permis jusqu'à maintenant d'écrire tout ce que je voulais en gardant 2 objectifs en tête : simplicité et lisibilité.

Eléments blocs

Tout élément bloc doit être précédé/suivit d'une ligne vide, à l'exception des éléments « complexes » comme les listes ou les tableaux. Pour créer un paragraphe, il suffit de sauter une ligne. Pour le reste...

Bloc générique

Spécifications

  • Un bloc doit commencer par « [block] ».
  • Toutes les lignes du bloc doivent commencer par 4 espaces (U+0020).

Exemples

[block]
    Block avec un paragraphe.
Bloc simple.
<div>
    <p>Block avec un paragraphe.</p>
</div>
Rendu HTML d'un bloc simple.
[block]
    Block avec un paragraphe.
    
    * Item 1
    * item 2
Bloc avec plusieurs éléments.
<div>
    <p>Block avec un paragraphe.</p>
    <ul>
        <li>Item 1</li>
        <li>Item 2</li>
    </ul>
</div>
Rendu HTML d'un bloc à plusieurs éléments.

Titres

Spécifications

^(<?level>#){1,6}\s+(<?title>.+)$
Regex d'une ligne de titre

Les lignes de titres commencent par une série de une à six croisillons (U+0023).

Exemples

# Titre de niveau 1

## Titre de niveau 2

### Titre de niveau 3

#### Titre de niveau 4

##### Titre de niveau 5

###### Titre de niveau 6
Syntaxe wiki des titres.
<h1>Titre de niveau 1</h1>
<h2>Titre de niveau 2</h2>
<h3>Titre de niveau 3</h3>
<h4>Titre de niveau 4</h4>
<h5>Titre de niveau 5</h5>
<h6>Titre de niveau 6</h6>
Rendu HTML de la syntaxe wiki des titres.

Références

Bloc de citation

Spécifications

  • Chaque ligne d'un bloc de citation commence par le caractère « > » (U+003E) suivit d'un espace (U+0020).
  • Le bloc est ensuite traité comme une série d'éléments blocs.
\U+003E\U+0020.+
Syntaxe d'une ligne de bloc de citation.

Examples

> Premier paragraphe de la citation.
> 
> Deuxième paragraphe de la citation.
Syntaxe wiki des blocs de citation.
<blockquote>
    <p>Premier paragraphe de la citation.</p>
    <p>Deuxième paragraphe de la citation.</p>
</blockquote>
Rendu HTML de la syntaxe wiki des citations.

Discussions

Cette notation est celle utilisée dés 1992 par Setext.

Références

Blocs préformatés

Spécifications

Les blocs préformatés sont marqués par des lignes commençant par 4 espaces (U+0020).

\U+0020{4}.+
Syntaxe d'une ligne de block préformaté.

Exemples

    bloc préformaté
    bloc préformaté
Syntaxe wiki des blocs préformatés.
<pre>bloc préformaté
bloc préformaté</pre>
Rendu HTML de la syntaxe wiki des blocs préformatés.

Références

Listes à puces

Listes ordonées

Liste de description

Listes de tâches

Tableau

Figure

Spécifications

  • Une ligne de 4 tirets (U+002D) délimite le début de la figure et la séparation entre le contenu et la légende.
  • Le contenu est traité comme un bloc.
  • La légende est considérée comme une collection d'éléments textuels.

Exemples

----
content
----
legend
Syntaxe wiki pour les figures.
<figure>
    content
    <figcaption>legend</figcaption>
</figure>
Rendu HTML5 de la syntaxe wiki des figures.

Discussions

La syntaxe a été principalement pensé pour pouvoir définir une image accompagnée de sa légende. Elle entre en conflit avec la définition d'une ligne de séprataion (hr) de certaines syntaxes.

Références

Titre
HTML 5
Chapitre
4.5.11 The figure element
Auteurs
Hickson IAN
Auteurs
Berjon ROBIN
Auteurs
Faulkner STEVE
Auteurs
Leithead TRAVIS
Auteurs
Doyle Navara ERIKA
Auteurs
O'Connor EDWARD
Auteurs
Pfeiffer SILVIA
Editeur
W3C
Date

Details

Spécifications

  • Le bloc commence par un double caractère « > » (U+003E) suivit d'un espace (U+0020) puis du contenu du sommaire.
  • Le détail est ensuite inséré en dessous avec une indentation minimale de 4 espaces.
  • Le détail est considéré comme une suite d'éléments blocs.

Exemples

>> summary
    
    First paragraph.
    
    Second paragraph.
Syntaxe wiki pour les détails.
<details>
    <summary>summary</summary>
    <p>First paragraph.</p>
    <p>Second paragraph.</p>
</details>
Rendu HTML5 de la syntaxe wiki des détails.

Références

Titre
HTML 5
Chapitre
4.11.1 The details element
Auteurs
Hickson IAN
Auteurs
Berjon ROBIN
Auteurs
Faulkner STEVE
Auteurs
Leithead TRAVIS
Auteurs
Doyle Navara ERIKA
Auteurs
O'Connor EDWARD
Auteurs
Pfeiffer SILVIA
Editeur
W3C
Date
Titre
HTML : details
Editeur
Omacronides
Date

Éléments textuels

Syntaxes particulières

Extensions

Ressources et références

Markdown et évolutions

Autres syntaxes wiki

Autres types de syntaxe

Historique

2014-01
2013-05
  • add Nouvelles syntaxes pour les listes : (1), (a), 1..
  • add Syntaxe pour les changelog.
  • upd Adoption de la notation « directive » de reStructuredText pour certaines syntaxe (inclusion, table des matières).
2013-03
2012-12
  • upd Les listes supportent des états plié / déplié.
2012-10
2012-09
  • upd Syntaxe des notes, pour coller à la syntaxe markdown.
2012-07
  • add Syntaxe pour les iframes.
  • upd Syntaxe code identique à reStructuredText et markdown.
2012-05
2012-03
2011-08
2011-07
  • upd Nouvelle syntaxe de figure : 4 tirets au lieu de 3.
2011-01
  • upd Syntaxe alternative de titres.
2010-08
  • upd Possibilité d'indenter un bloc dans un élément de description
2010-07
  • upd Nouvelle syntaxe pour figure : encadrée par un triple tiret.
2010-05
  • add Syntaxe pour les références.
2007-02
2006-01
  • upd Tableaux : lignes et cellules préfixées de double pipe.
  • upd Changement pour l'emphase forte : **texte**.
  • upd Changement pour les notes : [ftn].
2005-09
  • upd Syntaxe enrichie par le wiki2xhtml de Dotclear avec le passage au PHP.
  • add Données brutes entourées d'un triple slash.
  • add Attributs d'éléments : °°attributs°°.
  • add ??acronymes??, %%citation%%, --suppression--, ++ajout++.
  • upd Changement pour les images : ((src|alt|width|height)).
  • upd Changement pour le préformaté : indentation de 4 espaces.
2005-04
  • add Listes à puces / ordonnées imbriquées.
  • upd blockquote à plusieurs paragraphes.
2004-12