Discussion modèle:Abbr

De Oniropædia

Ce modèle se veut un palliatif au non support de la syntaxe <abbr title="Signification de l'abbréviation">Abbréviation</abbr> par le système Media-Wiki.

En effet, nous avons un certain nombre d'Abréviations dans Oniropædia.

Ce modèle permet donc de proposer l'instanciation des dites abréviations dans notre page dédiée, tout en insérant une ancre afin de permettre ensuite de créer automatiquement le lien ad-hoc depuis les autres pages.

Cela permet en effet de supprimer la nécessité de créer un titre de section pour chaque abréviation.

Syntaxe
Il existe trois paramètres possibles : abbr ({{{1}}}), title ({{{2}}}) et idlink (par défaut abbr sinon {{{1}}})).
Les deux premiers paramètres peuvent être par position ou par nom :
{{Abbr|Abréviation|Signification de l'abréviation}}
 {{Abbr|abbr=Abréviation|title=Signification de l'abréviation}}


Comportement en fonction du contexte
Le paramètre {{{1}}} (ou abbr) est toujours obligatoire.

Le paramètre {{{2}}} (ou title) n'est obligatoire que dans le cas de la page Abréviations

Exemples

Cas de la page Abréviations

{{Abbr|CC|Abréviation de la marque '''C'''reative '''C'''ommons}}


Autres cas

{{Abbr|CC|Abréviation de la marque '''C'''reative '''C'''ommons}}


ou

{{Abbr|CC}}


Commentaires

Cette macro utilise le mécanisme d'ancrage pour définir ces ancres. À cause de l'évolution des normes de présentations des contenus sur internet, il n'est plus possible d'utiliser l'ancienne méthode (via les champs id) permettant de rassembler l'ensemble des points d'ancrage vers un même bloc.

Si vous désirez mettre plusieurs abréviations avec la même définition, il est fortement recommandée de créer à chaque fois une section et de mettre au besoin un renvoi vers la définition complète.

Pour plus d'information, commencez par la norme XHtml

--Just an Illusion 4 juillet 2008 à 17:46 (CEST)

Bugs

ce modèle est complexe à décortiquer, toutefois, voici un bug de codage qui me semble être à l'origine du problème signalé :

{{#foreach:idlink$n$|<dt><span id="{{{idlink$n$}}}}}">{{{idlink$n$}}}</span></dt>}}

Selon moi il faudrait supprimer la partie mise en rouge. --Narcian le Grand Rêvant 8 juillet 2008 à 13:05 (CEST)


Il n'y a pas de problème ici (c'est peut-être ici ?). Mais il est vrai que j'ai codé ce modèle sans faire de mise en page (je voulais le code le plus court possible). Il est donc très concentré.

Je suis d'accord, la partie mise en rouge est bien en trop (reste de l'ancienne méthode consistant à mettre plusieurs valeurs dans le champ id et les séparant par des ,). Malgré tout, cela ne devrait pas générer l'erreur. En effet, la transcription après parsing (si |idlink1=foo) devrait être :

<dt><span id="foo}}">foo</span></dt>

Ce qui est presque ce qui est attendu. Et non le code :

<dt><span id=".7B.7B.7Bidlink.24n.24.7D.7D.7D.7D.7D">NEF</span></dt>

Tel qu'il est donné dans Discuter:Abréviations.

Je ne dis pas que le problème est uniquement ici (au sens Oniropædia), je dis seulement qu'il y a une erreur avec l'extension LoopFunctions. J'ai supposé (à tord ?) que cela pouvait peut-être venir de l'installation (cas le plus simple). Il semblerait que ce ne soit pas le cas, et qu'il faudrait donc incriminer le code de l'extension (voir du coeur media-wiki).

N'ayant pas envi de créer un n-ième compte pour signaler ce bug aux créateurs, je le demande à nos administrateurs qui sont censé aussi faire ce retour d'expérience (en tant qu'utilisateur/gestionnaire du moteur et de ses extensions). --Just an Illusion 8 juillet 2008 à 15:14 (CEST)


Après une petite campagne de tests, j'en suis venu à la conclusion suivante :

mediawiki fait, avant chaque passe d'interprétation du code wiki, un contrôle des balises (x)htlm, et pour le bon fonctionnement de ces balises, il y a intervention dans le codage de la page. Dans le cas d'appel de fonctions, de modèle, où d'inclusion de page, mediawiki fait au moins deux passes d'interprétation.

Le problème des LoopFunctions, c'est que la première passe de mediawiki génère LE veritable code wiki à interpréter; comme la fonction #foreach est utilisée comme générateur multiple de balise html, on se retrouve avec un modèle de code wiki "corrompu" que la fonction #foreach n'est plus capable d'interpreter correctement.

--Narcian le Grand Rêvant 9 juillet 2008 à 18:31 (CEST)