Parsoid/Parser Unification/Media structure/FAQ/fr

Présentation


Qu'entend-on par structure de média ?
Lorsque des fichiers sont inclus dans une page (exemple :  ), l'analyseur syntaxique de MediaWiki génère du code HTML qui représente ce média que votre navigateur doit rendre, c'est-à-dire les instructions pour que le navigateur s'affiche correctement sur votre écran. Le choix des balises et des attributs HTML, et la manière dont ils sont organisés pour former un arbre du DOM, sont la structure que nous examinons.



Que peut-on améliorer dans la structure actuelle ?
La structure actuelle est composée de balises div et d'attributs de classe imbriqués, sans logique particulière. Le balisage est irrégulier, ce qui rend plus difficile l'exécution de requêtes et l'ajout de styles CSS. En outre, la sortie actuelle diffère de celle d'autres produits, comme le combo Éditeur visuel / Parsoid. Voir la Demande de commentaires pour plus de détails. La sortie de l'exemple ci-dessus ressemble actuellement à ceci :



Par quoi voulons-nous remplacer ?
La structure par laquelle nous la remplaçons est composée d'un balisage sémantique, qui offrira des avantages d'accessibilité, comme donner à ceux qui lisent les wikis à l'aide de lecteurs d'écran plus d'informations sur la façon dont les images, vidéos et autres médias sont utilisés dans le contenu. Le balisage sera plus régulier et spécifié, ce qui rendra plus facile et plus efficace l'exécution de requêtes et la gestion des styles CSS. La nouvelle structure facilitera ainsi l'écriture de CSS lié aux médias sur les wikis Wikimedia. De plus, l'utilisation de la même structure qui a été testée dans Parsoid assurera la cohérence entre les produits et réduira certaines redondances CSS. La sortie de l'exemple ci-dessus ressemblera à ceci :



Pourquoi le faire maintenant ?
Un objectif à moyen terme de l'Équipe de transformation de contenu de la WMF est de remplacer l'ancien parseur de MediaWiki par Parsoid, un parseur bidirectionnel wikitext vers HTML5. Pour y parvenir, l'analyseur historique et Parsoid doivent produire du code HTML compatible. Parsoid génère cette nouvelle structure médiatique depuis quelques temps, avec de bons résultats. Afin de réduire les perturbations liées à un changement d'analyseurs en une seule fois, nous en déployons un seul élément en vue des modifications à venir.



Comment cela a-t-il été testé ?

 * 1) La nouvelle structure a été testée dans Parsoid qui est utilisé dans plusieurs produits actifs comme l'Éditeur visuel et les applications mobiles. Au fur et à mesure que les éditeurs et les lecteurs utilisaient ces produits, ils ont signalé des différences de rendu avec l'ancienne structure et des problèmes avec la nouvelle structure, que nous avons corrigés au fil des ans.
 * 2) De plus, nous avons effectué plusieurs séries de tests de différence visuelle dans lesquels des milliers de pages sont rendues avec l'ancienne et la nouvelle structure et le rendu est comparé pixel par pixel.
 * 3) Nous avons également déjà déployé ce changement sur plusieurs wikis, y compris mediawiki.org, wikitech, it.wikipedia.org, cs.wikipedia.org, vi.wikipedia.org, en.wikivoyage.org, et tous les wikis du groupe 0.

Que reste-t-il à faire ?

 * 1) Le code qui interagit avec la page, comme JavaScript pour les extensions, scripts utilisateur et gadgets devra être ajusté à la nouvelle structure, si possible d'une manière compatible en amont et en aval.
 * 2) Les skins devront demander la fonctionnalité "content-media" ou fournir leur propre style, car les classes de l'ancienne structure ne s'appliqueront plus.
 * 3) Le CSS défini dans MediaWiki:Commons.css de certains wikis devra être porté vers la nouvelle structure.

Quand allez-vous déployer cela ?
Comme dit plus haut, ce changement est déjà en ligne sur plusieurs wikis. Cependant, nous n'irons pas plus loin tant que les problèmes connus ne seront pas résolus. Nous avons effectué des audits des scripts utilisateur et des gadgets pour nous assurer que nous causons le moins de perturbations possible aux lecteurs et aux éditeurs.



Qu'en est-il d'imagemap et des galeries ?
Les sorties de ces balises d'extension s'appuient sur la structure média décrite ci-dessus. Elles sont spécifiées respectivement dans ImageMap et Gallery. Note that further refining of the gallery output may happen in T268250.

What about templates that mimic the parser output?
For now, the stylesheets shipped by MediaWiki will continue to contain the rules that target the old parser output. Therefore templates that mimic it should continue to work unchanged. As mentioned above, we've done extensive visual difference testing to ensure that pages continue to render the same before and after these changes. In the longer term, we are discussing introducing new classes for these templates to migrate towards. See T318433 for details.

What about site owners operating their own instances of MediaWiki?
A MediaWiki config exists,, which currently defaults to. Site operators are encouraged to disable it and test for possible breakage. Skins that use configured with   will receive styles targeting the new structure. In future versions of MediaWiki, will default to   and, eventually, be removed entirely.



Comment aider
Testez votre code sur les wikis sur lesquels le changement est déployé. Si vous rencontrez des problèmes qui ne sont pas couverts ci-dessous, veuillez une tâche phabricator avec le tag , ou consulter la liste des tâches ouvertes.



Copiez les correctifs connus vers les gadgets activés sur vos wikis
Un certain nombre de gadgets ont été identifiés comme devant être mis à jour pour prendre en charge la nouvelle structure des médias. Des correctifs ont été appliqués à la source des gadgets, mais les modifications doivent encore se propager à tous les wikis qui ont dupliqué les gadgets localement. See the task description of T297447 for the list of gadgets and wikis where the gadgets are enabled. Si le vôtre n'a pas été mis à jour, veuillez le faire.



Copiez les correctifs connus de MediaWiki:Common.(css|js) sur vos wikis
A number of issues with site specific css and js were identified as needing to be updated to support the new media structure. See the task description of T271114 for the list of known issues common to multiple wikis and the wikis that may need to be updated. If yours haven't been updated, please do so.



Quels sont les changements qui risquent de casser les codes existants ?


La classe image n'apparaît plus dans les liens de description des fichiers
By default, a file (e.g. ) will link to its description page and would previously be given a class named .

In contrast, an explicit link (e.g. ) would not result in that class being applied.

In the new structure, the class serving the same purpose has been renamed to <bdi lang="zxx" dir="ltr">.

Selectors should target the new class, where appropriate. For example, see <bdi lang="zxx" dir="ltr">https://www.mediawiki.org/w/index.php?title=Snippets%2FDirect_imagelinks_to_Commons&type=revision&diff=5451422&oldid=3976429

<span id="The_|class=_media_option_is_now_applied_to_the_wrapper">

L'option de média est maintenant appliquée au conteneur
Previously, the class media option (e.g. ) would be applied to the media element.

La classe a été déplacée vers le conteneur (wrapper) le plus externe afin de permettre le plus de flexibilité possible lors de la sélection à l'intérieur de la structure.

<span id="The_|border_media_option_is_now_applied_to_the_wrapper_and_the_class_emitted_has_been_renamed">

L'option de média est maintenant appliquée au conteneur et la classe émise a été renommée
Previously, the border media option (e.g. ) would result in the <bdi lang="zxx" dir="ltr"> class being applied to the media element.

Par cohérence, la classe a été déplacée vers le conteneur le plus externe et a été renommée en <bdi lang="zxx" dir="ltr"> pour éviter les conflits.

<span id="Horizontal_and_vertical_alignment_options_now_place_classes_on_the_wrapper">

Les options d'alignement horizontal et vertical placent maintenant les classes sur le conteneur
The horizontal alignment options include. The vertical alignment options include.

For example, previously, the center media option (e.g. ) would result in the <bdi lang="zxx" dir="ltr"> class being applied to a wrapping div.

Cela se traduit maintenant par une figure avec la classe <bdi lang="zxx" dir="ltr">.

De même, l'option de placement d'un média en haut (par exemple, ) entraînait auparavant l'application d'un attribut de style à l'élément média.

Il en résulte que la classe <bdi lang="zxx" dir="ltr"> est maintenant appliquée au conteneur.