web-dev-qa-db-fra.com

Comment utiliser les modèles Wikipedia sur un MediaWiki extérieur?

J'ai configuré un MediaWiki sur une batterie de serveurs wiki et je souhaite disposer de modèles de style Wikipedia, tels que {{reflist}}, {{merge from|article}}, {{cite book|...}}, etc.

Après principe DRY , il semblerait préférable de les inclure, ce qui est possible en utilisant une syntaxe comme {{raw:w:reflist}}, et ceci est recommandé par Aide de Wikia: Modèles partagés .

Cela fonctionne pour des modèles simples, cependant, pour des modèles plus compliqués comme reflist, je reçois Script error: No such module "Check for unknown parameters". J'imagine que la raw transclusion peut apporter des dépendances de modèles, mais pas des dépendances de modules Lua?

En outre, la page Wikia indique "Les paramètres ne peuvent pas être utilisés avec des modèles partagés", ce qui serait mauvais (mais je ne suis pas sûr que ce soit vraiment vrai). Aussi Manuel: $ wgEnableScaryTranscluding dit "C'est un peu inefficace".

Une autre option consiste simplement à copier le code du modèle, ce qui semble être la méthode recommandée pour Guide: Modèle: Reflist/Transwiki , mais cela nécessite la copie de nombreux modèles et modules Lua, qui ne sont pas automatiquement mis à jour lorsque le modèle en amont obtient des corrections de bugs.

Quel est le moyen le plus simple de le faire? Y a-t-il une autre option que je n'ai pas découverte?

4
endolith

C'est un PITA et malheureusement (contrairement aux extensions ou aux fichiers multimédias), il n'y a pas de référentiel de modèles prédéfinis. Les modèles chargent d'autres modèles qui en chargent d'autres à tour de rôle, etc. Les modèles sont là pour saboter les efforts de ceux qui veulent simplement éditer leur propre wiki, au lieu de les prendre du côté du codeur.

En passant, Wikia a son propre référentiel de templates , vous pourriez trouver utile.

Ce n'est pas la meilleure solution mais ça fait le travail:

Allez sur Wikipedia et copiez le nom du modèle que vous recherchez, allez à Spécial: Exporter et collez le nom du modèle dans la grande zone de texte, par exemple. Modèle: Infobox. Cochez "Inclure les modèles" et cochez la case "Inclure uniquement la révision actuelle, pas l'historique complet" (ou le fichier sera trop volumineux). Cliquez sur Exporter pour vider un fichier .xml du modèle. Importez ensuite ceci dans le wiki de destination.

Une fois le modèle importé, ouvrez le modèle pour édition, cochez la liste située sous la zone d'édition "Pages incluses dans la version actuelle de cette page:". S'il existe des liens rouges, répétez les étapes ci-dessus pour ces modèles également. Vous devrez peut-être aussi copier les styles dans la page MediaWiki: Common.css et Javascript dans MediaWiki: Common.js avant que tout fonctionne. Enfin, éditez les modèles à personnaliser pour votre wiki.

Si cela ne fonctionne toujours pas et que vous avez des pages malpropres d'accolades et d'instructions if, vous devez installer l'extension ParserFunctions . S'il y a {{#invoke: }} dans le code du modèle, vous devrez également installer le extension Scribunto .

MediaWiki Aide: Modèles explique le processus plus en détail.

2
Rob Kam