diff --git a/ecrire/inc/filtres.php b/ecrire/inc/filtres.php
index db26a9dd940086f7a0af03856d25a8e9881d4c1d..8d5ffd0a3ac19c1da2c4855a481f79ebbc3774be 100644
--- a/ecrire/inc/filtres.php
+++ b/ecrire/inc/filtres.php
@@ -2068,11 +2068,31 @@ function urls_absolues_css($contenu, $source) {
 		), $contenu);
 }
 
-// recuperere le chemin d'une css existante et :
-// 1. regarde si une css inversee droite-gauche existe dans le meme repertoire
-// 2. sinon la cree (ou la recree) dans _DIR_VAR/cache_css/
-// SI on lui donne a manger une feuille nommee _rtl.css il va faire l'inverse
-// http://doc.spip.org/@direction_css
+
+/**
+ * Inverse le code CSS (left <--> right) d'une feuille de style CSS
+ *
+ * Récupère le chemin d'une CSS existante et :
+ *
+ * 1. regarde si une CSS inversée droite-gauche existe dans le meme répertoire
+ * 2. sinon la crée (ou la recrée) dans `_DIR_VAR/cache_css/`
+ *
+ * Si on lui donne à manger une feuille nommée `*_rtl.css` il va faire l'inverse.
+ *
+ * @filtre direction_css
+ * @example
+ *     ```
+ *     [<link rel="stylesheet" href="(#CHEMIN{css/perso.css}|direction_css)" type="text/css" />]
+ *     ```
+ * @param string $css
+ *     Chemin vers le fichier CSS
+ * @param string $voulue
+ *     Permet de forcer le sens voulu (en indiquant `ltr`, `rtl` ou un
+ *     code de langue). En absence, prend le sens de la langue en cours.
+ * 
+ * @return string
+ *     Chemin du fichier CSS inversé
+**/
 function direction_css ($css, $voulue='') {
 	if (!preg_match(',(_rtl)?\.css$,i', $css, $r)) return $css;
 
diff --git a/ecrire/public/balises.php b/ecrire/public/balises.php
index 06d6a702aedb778cef4cb03509d06bf3a698cce0..ec7d2227d16f6afebb28116d9d7de7eab4495cbc 100644
--- a/ecrire/public/balises.php
+++ b/ecrire/public/balises.php
@@ -18,6 +18,9 @@
  * `balise_TOTO()` respectant la même API : elle reçoit en entrée un objet
  * de classe `Champ`, le modifie et le retourne. Cette classe est définie
  * dans public/interfaces.
+ *
+ * Des balises dites «dynamiques» sont également déclarées dans le
+ * répertoire ecrire/balise/
  * 
  * @package SPIP\Core\Compilateur\Balises
 **/
@@ -50,24 +53,59 @@ function interprete_argument_balise($n,$p) {
 	else
 		return NULL;
 }
+
+
 //
-// Definition des balises
+// Définition des balises
 //
-// http://doc.spip.org/@balise_NOM_SITE_SPIP_dist
+
+/**
+ * Compile la balise `#NOM_SITE_SPIP` retournant le nom du site
+ *
+ * @balise NOM_SITE_SPIP
+ * @link http://www.spip.net/4622
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_NOM_SITE_SPIP_dist($p) {
 	$p->code = "\$GLOBALS['meta']['nom_site']";
 	#$p->interdire_scripts = true;
 	return $p;
 }
 
-// http://doc.spip.org/@balise_EMAIL_WEBMASTER_dist
+/**
+ * Compile la balise `#EMAIL_WEBMASTER` retournant l'adresse courriel
+ * du webmestre
+ *
+ * @balise EMAIL_WEBMASTER
+ * @link http://www.spip.net/4586
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_EMAIL_WEBMASTER_dist($p) {
 	$p->code = "\$GLOBALS['meta']['email_webmaster']";
 	#$p->interdire_scripts = true;
 	return $p;
 }
 
-// http://doc.spip.org/@balise_DESCRIPTIF_SITE_SPIP_dist
+/**
+ * Compile la balise `#DESCRIPTIF_SITE_SPIP` qui retourne le descriptif
+ * du site !
+ *
+ * @balise DESCRIPTIF_SITE_SPIP
+ * @link http://www.spip.net/4338
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_DESCRIPTIF_SITE_SPIP_dist($p) {
 	$p->code = "\$GLOBALS['meta']['descriptif_site']";
 	#$p->interdire_scripts = true;
@@ -97,7 +135,27 @@ function balise_CHARSET_dist($p) {
 	return $p;
 }
 
-// http://doc.spip.org/@balise_LANG_LEFT_dist
+/**
+ * Compile la balise `#LANG_LEFT` retournant 'left' si la langue s'écrit
+ * de gauche à droite, sinon 'right'
+ *
+ * @note
+ *     Peut servir à l'écriture de code CSS dans un squelette, mais
+ *     pour inclure un fichier css, il vaut mieux utiliser le filtre
+ *     `direction_css` si on le souhaite sensible à la langue utilisé.
+ * 
+ * @balise LANG_LEFT
+ * @link http://www.spip.net/4625
+ * @see lang_dir()
+ * @see balise_LANG_RIGHT_dist()
+ * @see balise_LANG_DIR_dist()
+ * @see direction_css()
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_LANG_LEFT_dist($p) {
 	$_lang = champ_sql('lang', $p);
 	$p->code = "lang_dir($_lang, 'left','right')";
@@ -105,7 +163,22 @@ function balise_LANG_LEFT_dist($p) {
 	return $p;
 }
 
-// http://doc.spip.org/@balise_LANG_RIGHT_dist
+/**
+ * Compile la balise `#LANG_RIGHT` retournant 'right' si la langue s'écrit
+ * de gauche à droite, sinon 'left'
+ * 
+ * @balise LANG_RIGHT
+ * @link http://www.spip.net/4625
+ * @see lang_dir()
+ * @see balise_LANG_LEFT_dist()
+ * @see balise_LANG_DIR_dist()
+ * @see direction_css()
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_LANG_RIGHT_dist($p) {
 	$_lang = champ_sql('lang', $p);
 	$p->code = "lang_dir($_lang, 'right','left')";
@@ -113,7 +186,27 @@ function balise_LANG_RIGHT_dist($p) {
 	return $p;
 }
 
-// http://doc.spip.org/@balise_LANG_DIR_dist
+/**
+ * Compile la balise `#LANG_DIR` retournant 'ltr' si la langue s'écrit
+ * de gauche à droite, sinon 'rtl'
+ * 
+ * @balise LANG_DIR
+ * @link http://www.spip.net/4625
+ * @see lang_dir()
+ * @see balise_LANG_LEFT_dist()
+ * @see balise_LANG_RIGHT_dist()
+ * @example
+ *     ```
+ *     <html dir="#LANG_DIR" lang="#LANG"
+ *         xmlns="http://www.w3.org/1999/xhtml"
+ *         xml:lang="#LANG" class="[(#LANG_DIR)][ (#LANG)] no-js">
+ *     ```
+ * 
+ * @param Champ $p
+ *     Pile au niveau de la balise
+ * @return Champ
+ *     Pile complétée par le code à générer
+**/
 function balise_LANG_DIR_dist($p) {
 	$_lang = champ_sql('lang', $p);
 	$p->code = "lang_dir($_lang, 'ltr','rtl')";