Principe
Les raccourcis typographiques ont —comme leur nom ne l’indique pas vraiment— un rôle sémantique (on devrait peut-être justement les appeler des raccourcis sémantiques, non ?).
Le nombre d’accolades qui entoure un mot ou une expression est proportionnel à l’emphase [1] que l’on veut y mettre. Ainsi, lorsque l’on insiste un peu sur une expression on l’entoure de simples accolades. Dans SPIP cela va se traduire par un affichage en {
italiques}
(et c’est comme cela que c’est indiqué dans la barre de raccourcis typographiques). Lorsque l’on veut insister plus, on utilise les accolades doubles, ce qui donne du {{
gras}}
. Le stade ultime de l’emphase (ou de l’insistance) dans SPIPc’est trois accolades, ce qui crée un titre [2].
Ne vous méprenez pas, cet affichage de l’emphase n’est pas universel, et les malvoyants —en utilisant des périphériques de synthèse audio— ne les perçoivent pas de la même façon, mais bien comme de l’insistance. On peut aussi changer complètement la façon dont c’est affiché dans les CSS. Il faut donc veiller à ne pas utiliser ces raccourcis typographiques pour de la décoration, mais bien pour donner plus de sens à votre texte. Ces raccourcis, servent donc à baliser les zones du textes sur lesquelles on veut insister un peu beaucoup à la folie, ou pas du tout.
Si le texte est balisé, un petit programme peut très bien retrouver ces balises et identifier les différents éléments du texte : isoler les titres, faire ressortir les mots et expressions sur lesquelles l’auteur a voulu insister.
Et c’est là que l’on revient dans le vif du sujet car c’est précisément le rôle des filtres de cette contrb’.
Le code des filtres
Les filtres vont donc chercher les occurrences des balisages dus aux raccourcis typographiques. Le premier filtre recherche toutes les expressions entourées de triples accolades (soit les titres). Ensuite, il liste ces titres en les précédant chacun d’un tiret. L’intérêt de cette façon de faire est que si on laisse à SPIP le soin de traiter ce qui sort de ce filtre on aura au final une liste de puces.
{{{titre}}}
traité par le filtre de la contrib’ donne : -titre
qui une fois traité par le filtre « propre » de SPIP donne :
- titre
Si vous utilisez l’excellente contribution de chtitux et mortimer Génération automatique de numérotation, table des matières et références qui permet —enfin— d’avoir dans SPIP plusieurs niveaux de titre, je vous conseille d’adopter quelques petites modifications de mon cru (citées ici) qui rendent la contrib’ plus cohérente avec SPIP (les dièses « # » servent pour les objets numérotés et les étoiles « * » pour les objets non numérotés, les titres sont sémantiques sous forme de h3
, h4
, h5
, etc.). Vous obtiendrez alors à la sortie du filtre ci-dessous une liste de puces (numérotées ou non, selon la qualité de votre titre) qui reflétera la hiérarchie du plan de l’article (qui certes, double la balise #TABLEMATIEREs apportée par la contrib’).
Voici le code qui utilise principalement une expression régulière pour retrouver les textes encadrées par des triplets d’accolades.
<?php
function extrait_titres($texte) {
preg_match_all("/\{\{\{(.*?)\}\}\}/",$texte,$matches);
$key = key($matches[1]);
$val = current($matches[1]);
while(list ($key, $val) = each ($matches[1]))
{
$sortie .= "- ".$val."\n";
};
return $sortie;
}
?>
La sortie de ce filtre est donc une liste de titre précédés d’un tiret et suivis d’un retour à la ligne. Pour obtenir la liste de puces, il faut faire passer ce résultat dans le filtre « propre » de SPIP. Dans vos squelettes vous écrirez [(#TEXTE*|extrait_titres|propre)]
[3].
Pour les emphases fortes (doubles accolades), on fait exactement pareil. Excepté que cette fois on ne va pas rajouter de tiret, mais rajouter des guillemets typographiques français.
Notez que l’on ne veut pas que notre expression régulière relève les triples accolades (qui contiennent aussi des doubles accolades) qui encadrent les titres, il y a donc une première expression régulière (preg_replace) qui les enlève du texte à traiter.
<?php
function extrait_emphaseforte($texte) {
$texte=preg_replace("/(\{\{\{)(.*?)(\}\}\})/","",$texte);
preg_match_all("/\{\{(.*?)\}\}/",$texte,$matches);
$key = key($matches[1]);
$val = current($matches[1]);
while(list ($key, $val) = each ($matches[1]))
{
$sortie .= "«".$val."»; ";
};
return $sortie;
}
?>
Même principe pour finir avec les emphases normales (et on élimine cette fois les titres et les emphases fortes).
<?php
function extrait_emphase($texte) {
$texte=preg_replace("/(\{\{\{)(.*?)(\}\}\})/","",$texte);
$texte=preg_replace("/(\{\{)(.*?)(\}\})/","",$texte);
preg_match_all("/\{(.*?)\}/",$texte,$matches);
$key = key($matches[1]);
$val = current($matches[1]);
while(list ($key, $val) = each ($matches[1]))
{
$sortie .= "«".$val."»; ";
};
return $sortie;
}
?>
Pour les liens la démarche est à peu près la même. Ce filtre va rechercher et extraire dans le texte tous les raccourcis typos de liens et ne lister qu’eux, en sautant une ligne entre-eux.
Comme précédemment, pour éviter les notes, élimine d’abord les textes entre doubles crochets pour s’intéresser à ceux qui sont entre simples crochets...
<?php
function extrait_liens($texte) {
$texte=preg_replace("/(\[\[)(.*?)(\]\])/","",$texte);
preg_match_all("/(\[.*?\])/",$texte,$matches);
$key = key($matches[1]);
$val = current($matches[1]);
while(list ($key, $val) = each ($matches[1]))
{
$sortie .= $val."\n\n";
};
return $sortie;
}
?>
Soyons clairs, la programmation, c’est pas mon truc, et je n’y connais rien. Ça marche dans la plupart des cas, chez moi. Ça devrait donc fonctionner parfois, voire souvent chez vous (mais évitez les liens dans les notes, par exemple)...
installation et intégration dans les squelettes
L’installation est très simple elle se fait en recopiant le code du filtre voulu dans le fichier mes_fonctions.php[[pour SPIP<1.9> http://www.spip.net/fr_article901.html?var_recherche=mes_fonctions.php3].
Ensuite dans vos squelettes, il vous suffit d’appeler les filtres sur vos balises qui contiennent du texte (avec des raccourcis typographiques). Avec la balise #TEXTE cela donne :
- [(#TEXTE*|extrait_titres|propre)]
pour extraire la liste des titres,
- [(#TEXTE*|extrait_emphaseforte|propre)]
pour extraire la liste des mots sur lesquels l’auteur a voulu beaucoup insister,
- [(#TEXTE*|extrait_emphase|propre)]
pour extraire la liste des mots sur lesquels l’auteur a voulu insister,
- [(#TEXTE*|extrait_liens|propre)]
pour extraire la liste des liens contenus dans #TEXTE.
N’oubliez surtout pas de repasser le résultats de vos filtres dans « propre » comme dans l’exemple ci-dessus.
Voici un exemple de squelette qui analyse le contenu d’un article passé en contexte.
<BOUCLE_Article(ARTICLES){id_article}>
<h2>Résumé synthétique de l'article : "#TITRE".</h2>
[<div class="bloc-analyse">
<h3>Descriptif :</h3>
(#DESCRIPTIF)
</div>]
[<div class="bloc-analyse">
<h3>Plan :</h3>
(#TEXTE*|extrait_titres|propre)
</div>]
[<div class="bloc-analyse">
<h3>Expressions les plus importantes :</h3>
(#TEXTE*|extrait_emphaseforte|propre)
</div>]
[<div class="bloc-analyse">
<h3>Autres expressions importantes :</h3>
(#TEXTE*|extrait_emphase|propre)
</div>]
[<div class="bloc-analyse">
<h3>Liens à visiter cités dans l'article :</h3>
(#TEXTE*|extrait_liens|propre)
</div>]
<div class="bloc-analyse">
<h3>Documents d'illustration ou de référence :</h3>
<BOUCLE_Photos(DOCUMENTS){id_article}{par titre}>
<div style="float: left; width: 120px; margin: 0.2em;">
[(#LOGO_DOCUMENT|#URL_DOCUMENT||reduire_image{120,0})]
#TITRE
</div>
</BOUCLE_Photos>
</div>
</BOUCLE_Article>
Intérêt pédagogique
L’intérêt principal que je vois à cette batterie de filtres est de faire comprendre aux rédacteurs combien il est important d’écrire sémantique dans SPIP, c’est-à-dire de ne pas tenir compte de la présentation de leur article (prise en charge automatiquement par SPIP), mais seulement du sens de leur texte, dans lequel les raccourcis leur permettent d’identifier et de baliser des éléments.
Discussions par date d’activité
2 discussions
Web sémantique. Cette notion est relativement nouvelle pour moi. A approfondir, mais déjà merci pour ce cours fort intéressant.
Connaissez-vous Scenari ?. Scenari est une suite logicielle libre de conception et d’utilisation de chaînes éditoriales pour la création de documents multimédia, justement basée sur le sémantique et xml.
Que pensez-vous de la pertinence d’une passerelle Spip-Scenari en tant que ce dernier permet la publication multicanal au format odt (Le coeur de métier de Spip se situant surtout sur la publication Web ?!)
Répondre à ce message
Cher Beurt,
excellente idée que ce jeu de filtres. Et si tes propos sur l’insistance se fondent sur le bon sens, ils mettent à rude épreuve les règles typo.
Quelques règles dont je me souviens :
- l’italique signale des titres (de journaux : Le Monde, Libération), marque les citations (beurt dit : « Voici un jeu de filtres […] »), etc. ;
- le gras, s’il sert parfois à insister, s’utilise plutôt pour la titraille que dans le corps du texte. Un intertitre, par exemple, doit attirer l’œil et l’esprit, pas forcément par la profondeur de son sens mais parce qu’il est accrocheur et peut relancer l’intérêt du lecteur.
Un post trop agressif ?
Pas question ici de nier l’intérêt de ta contrib, non. Mais plutôt prévenir les potentiels expérimentateurs qu’ils doivent, pour tirer la substantifique moelle de ton œuvre, se référer à ton approche de l’insistance plutôt qu’aux règles de la typo pour alimenter leurs sites.
m
En réalité, que sont les raccourcis dits typographiques (remarque l’utilisation de l’italique) ?
- Soit, comme leur nom l’indique depuis toujours dans Spip, un moyen d’enrichir la typographie du texte (et sous-entendu de respecter des règles de typographie, comme celles qui sont propres à l’édition). Donc un moyen de présentation.
- Soit, comme leur nom ne l’indique pas, mais comme le fonctionnement de Spip le montre : transformation des doubles accolades en
<strong></strong>
et des simples accolades en<em></em>
.em
signifiant emphasis, etstrong
strong emphasis. Un moyen de donner du sens par l’insistance.Où en sommes-nous alors ? Je pense que Spip a beaucoup muri depuis qu’il existe et qu’il inventa les raccourcis typos. Je crois aussi que le web sémantique a pris de plus en plus de place dans Spip (notamment à cause du souci de validation XHTML). Aujourd’hui, la terminologie « raccourcis typographiques » me parait moins adaptée qu’avant dans la mesure où il a été choisi de considérer que les accolades étaient de l’emphase (donc sémantiques) et non de la présentation (ce qui aurait pu se faire en remplaçant les doubles accolades par des
<b></b>
et les simples par<i></i>
ce qui était tout autant valide XHTML).C’est mon avis, et... je le partage ! Mais je comprends bien qu’on pense continuer à utiliser les raccourcis de Spip comme de la présentation.
Pour ma part, je gère un Spip institutionnel, et l’accessibilité est une réelle préoccupation. À ce titre j’exige que les rédacteurs aient une utilisation sémantique des raccourcis. D’où cette contrib’ et l’intérêt pédagogique que je lui trouve.
Pour finir, quand on regarde comment tu suggères d’utiliser ces raccourcis pour respecter les règles typographiques dont tu te souviens, et comment je les utilise pour insister plus ou moins sur certaines expressions, on constate une certaine homologie. Et cela s’explique bien simplement : la typographie est déjà sémantique !
Répondre à ce message
Ajouter un commentaire
Avant de faire part d’un problème sur un plugin X, merci de lire ce qui suit :
Merci d’avance pour les personnes qui vous aideront !
Par ailleurs, n’oubliez pas que les contributeurs et contributrices ont une vie en dehors de SPIP.
Suivre les commentaires : |