HTML dans le code wiki : Différence entre versions
De Salve Regina
(Page créée avec « Il est possible d'insérer des codes HTML dans le code wiki, ce qui peut s'avérer pratique pour les personnnes habituées au HTML. Toutefois, le rendu ne sera pas toujours i... ») |
(Aucune différence)
|
Version actuelle datée du 18 janvier 2011 à 13:44
Il est possible d'insérer des codes HTML dans le code wiki, ce qui peut s'avérer pratique pour les personnnes habituées au HTML. Toutefois, le rendu ne sera pas toujours identique à celui du code wiki ; le code HTML est à utiliser surtout lorsque le code wiki ne suffit plus.
Sommaire
HTML autorisé
Les éléments HTML suivants sont actuellement autorisés par MediaWiki :
L'extrait suivant de Sanitizer.php montre quels attributs sont permis.
Mise à jour : depuis la version 1.4rc1, la fonction removeHTMLtags se trouve dans Parser.php
Mise à jour : depuis la version 1.5, la fonction removeHTMLtags se trouve dans Sanitizer.php.
Pour de nombreux éléments HTML, il existe un code wiki disponible, plus facile à utiliser ; voir Aide:Syntaxe wiki. D'un autre côté, les éléments HTML autorisent la création d'un attribut "id" utiles pour les ancres.
/* private */ function removeHTMLtags( $text ) { wfProfileIn( "OutputPage::removeHTMLtags" ); $htmlpairs = array( # Tags that must be closed "b", "i", "u", "font", "big", "small", "sub", "sup", "h1", "h2", "h3", "h4", "h5", "h6", "cite", "code", "em", "s", "strike", "strong", "tt", "var", "div", "center", "blockquote", "ol", "ul", "dl", "table", "caption", "pre", "ruby", "rt" , "rb" , "rp" ); $htmlsingle = array( "br", "p", "hr", "li", "dt", "dd" ); $htmlnest = array( # Tags that can be nested--?? "table", "tr", "td", "th", "div", "blockquote", "ol", "ul", "dl", "font", "big", "small", "sub", "sup" ); $tabletags = array( # Can only appear inside table "td", "th", "tr" ); $htmlsingle = array_merge( $tabletags, $htmlsingle ); $htmlelements = array_merge( $htmlsingle, $htmlpairs ); $htmlattrs = array( # Allowed attributes--no scripting, etc. "title", "align", "lang", "dir", "width", "height", "bgcolor", "clear", /* BR */ "noshade", /* HR */ "cite", /* BLOCKQUOTE, Q */ "size", "face", "color", /* FONT */ "type", "start", "value", "compact", /* For various lists, mostly deprecated but safe */ "summary", "width", "border", "frame", "rules", "cellspacing", "cellpadding", "valign", "char", "charoff", "colgroup", "col", "span", "abbr", "axis", "headers", "scope", "rowspan", "colspan", /* Tables */ "id", "class", "name", "style" /* For CSS */ );
Par exemple, l'élément "a" n'est pas autorisé dans le code wiki :
<a href="meta.wikimedia.org/wiki/Main_Page">Main Page</a>
donne le code :
<a href="meta.wikimedia.org/wiki/Main_Page">Main Page</a>
qui est rendu tel quel sans créer de lien.
Éléments span / font / div
span
Span est autorisé maintenant. Cette balise sert à :
- Régler le style CSS pour un bout de texte.
- Régler la langue pour une partie du texte.
- Régler la direction du texte.
- Éviter certaines balises comme "s" et "strike".
- Éviter les balises "font".
- Insérer des attributs "class" et "id".
Il est aussi possible d'utiliser <div style="display:inline"> à la place mais, curieusement, seulement dans une liste :
*a <div style="display:inline; color:red">red </div> word #a <div style="display:inline; color:red">red </div> word a <div style="display:inline; color:red">red </div> word
donne
- a redword
- a redword
En dehors d'une liste, "display:inline" est en effet désactivé.
font
Pour certains attributs comme la couleur, il est aussi possible d'utiliser :
a <font style="color: red">red</font> word
ou
a <font color=red>red</font> word.
donnant respectivement
a red word
a red word
L'élément font peut aussi remplacer span, par exemple :
une hauteur de 20 000 <font title="30.48 cm" class="title">pieds</font> au dessus du niveau de la mer
donnant
une hauteur de 20 000 pieds au dessus du niveau de la mer
(notez l'info-bulle au-dessus de "pieds").
Utilisez une ligne CSS comme
.title {color: red; }
Pour voir quel texte a une info-bulle.
div
Pour assigner, par exemple, la classe "red" à un texte, on peut utiliser :
<div class="red">texte d'exemple</div>qui donne
.red {color:red}
est appliquée.
Ceci est utilisable si la couleur est voulue rouge ; s'il s'agit juste de mettre en évidence le texte, un attribut plus général pour la classe serait plus approprié, puisque le CSS permet d'autres méthodes de mise en valeur (couleurs, gras, large...)
Certains lecteurs n'auront pas le code CSS ".red {color:red}", donc il n'est pas possible de faire une référence comme "le texte rouge ci-dessus".
Voir aussi
Liens externes