Alors que Gilles se met au XHTML 1.1 et après ses quelques questions, j'ai décidé d'y passer aussi.
Mais, étant valide XHTML 1.0, il me fallait devenir valide XHTML 1.1, du coup j'en ai profité pour modifier la classe PHP d'O.Meunier : Wiki2xhtml.
Pourquoi ai-je modifié Wiki2xhtml ?
Tout simplement car les FootNotes[1] utilisent un ID non unique. J'ai donc ajouté un paramètre à la fonction transform, qui, s'il est non vide, est insérer dans l'ID de la note.
J'aurais pu utiliser la fonction setOpt('note_prefix', "blablabla");, mais dans ce cas là, il m'aurait fallu avoir un paramètre global et j'en consomme déjà pas mal, donc j'ai pris cette solution.
Tant que j'y suis, j'ai ajouté les exposantscomme ici et les indicescomme là. Pour les utiliser, il suffit de mettre deux accents circonflèxes en début et fin de texte à mettre en exposant et deux virgules en début et fin de texte à mettre en indice.
Et puis j'ai changé la mail_pattern qui devient un petit peu moins permissive[2].
Je me suis basé sur la classe v3.2.2, vous pouvez voir le source.
Vous trouverez ci-dessous les modifications apportées à la classe d'O.Meunier :
31,32c31,32
< # Version : 3.2.2.2
< # Release date : Friday 2005-10-28
---
> # Version : 3.1d
> # Release date : Monday 2004-06-06
35,49d34
< # 3.2.2.2
< # Flyounet
< # => Pour les IDs des FootNotes, dans le cas ou id_note était à vide,
< # alors l'ID pouvait commencer par un - (ce qui n'est pas valide).
< #
< # 3.2.2.1
< # Flyounet
< # => Ajout d'un tag sup \^\^..\^\^ et sub \,\,..\,\,
< # => Génère du xhtml 1.1 valide pour les FootNotes si trnasforme
< # est appelé avec un id.
< # => La pattern pour les emails est un peu moins permissive. Par contre,
< # j'ai ajouté l'underscore car certains opérateur ont l'air de le laisser
< # passer quand ils génèrent leurs comptes. Je n'ai pas gérer les () qui
< # méritent vraiment que l'on fasse quelque chose pour elles.
< #
122c107
< var $version = '3.2.2.2';
---
> var $version = '3.2.2';
139,140d123
<
< var $id_note;
167,168d149
< $this->setOpt('active_sup',1); # Activation des sup \^\^..\^\^
< $this->setOpt('active_sub',1); # Activation des del \,\,..\,\,
184,185c165
< #$this->setOpt('mail_pattern','/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/');
< $this->setOpt('mail_pattern','/^[a-z0-9]+([_\.-]*[a-z0-9]+)*@([0-9a-z]+(-?[0-9a-z]+)*\.)+[a-z](seum|fo|me|op|ro|g|l|m|o|t|u|v|z)?$/i');
---
> $this->setOpt('mail_pattern','/^([0-9a-zA-Z]([-.\w]*[0-9a-zA-Z])*@([0-9a-zA-Z][-\w]*[0-9a-zA-Z]\.)+[a-zA-Z]{2,9})$/');
216c196
< function transform($in, $id='')
---
> function transform($in)
218,220d197
< # Initialise l'ID des Notes
< $this->id_note=$id;
<
318,322c295
< if ($this->id_note != '') {
< $res_notes .= "\n".'<p>[<a href="#rev-'.$this->id_note.'-'.$k.'" id="'.$this->id_note.'-'.$k.'">'.$i.'</a>] '.$v.'</p>';
< } else {
< $res_notes .= "\n".'<p>[<a href="#rev-'.$k.'" id="'.$k.'">'.$i.'</a>] '.$v.'</p>';
< }
---
> $res_notes .= "\n".'<p>[<a href="#rev-'.$k.'" id="'.$k.'">'.$i.'</a>] '.$v.'</p>';
347,348d319
< 'sup' => array('\^\^','\^\^'),
< 'sub' => array('\,\,','\,\,'),
384,389d354
< if (!$this->getOpt('active_sup')) {
< unset($this->tags['sup']);
< }
< if (!$this->getOpt('active_sub')) {
< unset($this->tags['sub']);
< }
965,969c930
< if ($this->id_note != '') {
< return '< sup>\[<a href="#'.$this->id_note.'-'.$id.'" id="rev-'.$this->id_note.'-'.$id.'">'.$i.'</a>\]</ sup>';
< } else {
< return '< sup>\[<a href="#'.$id.'" id="rev-'.$id.'">'.$i.'</a>\]</ sup>';
< }
---
> return '<sup>\[<a href="#'.$id.'" id="rev-'.$id.'">'.$i.'</a>\]</sup>';
1171,1173d1131
< if ($this->getOpt('active_sup')) {
< $help['i'][] = '<strong>Exposant</strong> : deux accents circonflèxes <code>\^\^texte\^\^</code>';
< }
1175,1178d1132
< if ($this->getOpt('active_sub')) {
< $help['i'][] = '<strong>Indice</strong> : deux virgules <code>\,\,texte\,\,</code>';
< }
| |||
© 2003-2008, Flyounet.
Nombre de billets : 387
Nombre de commentaires : 1216
Ce site respecte les standards :