web-dev-qa-db-ja.com

外部のMediaWikiでWikipediaテンプレートを使用する方法は?

WikiファームにMediaWikiをセットアップしました。{{reflist}}{{merge from|article}}{{cite book|...}}などのようなWikipediaスタイルのテンプレートを利用できるようにしたいと考えています。

DRY原則 に続いて、{{raw:w:reflist}}のような構文を使用することで可能になります。これは Wikia Help:Shared templates で推奨されています。

これは単純なテンプレートで機能しますが、reflistのようなより複雑なテンプレートではScript error: No such module "Check for unknown parameters"を取得します。 rawトランスクルージョンは、テンプレートの依存関係をもたらす可能性がありますが、Luaモジュールの依存関係は生じませんか?

また、Wikiaページには、「パラメーターを共有テンプレートで使用することはできません」と書かれていますが、これは悪いことです(しかし、実際に本当かどうかはわかりません)。また、 Manual:$ wgEnableScaryTransposing は「やや効率が悪い」と言っています。

別のオプションは、テンプレートコードをコピーするだけです。これは Template:Reflist/Transwikiガイド で推奨される方法のようですが、これには多くのテンプレートとLuaモジュールをコピーする必要があります。アップストリームテンプレートはバグ修正を取得します。

これを行う最もスムーズな方法は何ですか?私が発見していない別のオプションはありますか?

4
endolith

PITA であり、残念ながら(拡張機能やメディアファイルとは異なり)既定のテンプレートのリポジトリはありません。テンプレートは他のテンプレートをロードし、他のテンプレートを順番にロードします。テンプレートは、自分のwikiを編集したい人の努力を妨害する代わりに、コーダー側に引き継ぐためのものです。

ところで、Wikiaには独自の テンプレートリポジトリ があるので、役に立つかもしれません。

これは最良の解決策ではありませんが、それは仕事をします:

ウィキペディアに移動して、目的のテンプレートの名前をコピーし、Special:Exportに移動して、テンプレートの名前を大きなテキストボックスに貼り付けます。テンプレート:インフォボックス。 「テンプレートを含める」をチェックし、「完全な履歴ではなく現在のリビジョンのみを含める」をチェックします(またはファイルが大きすぎます)。 [エクスポート]をクリックして、テンプレートの.xmlファイルをダンプします。次に、これを宛先ウィキにインポートします。

インポートされたテンプレートを開いて編集し、「このページの現在のバージョンにトランスクルードされたページ:」編集ボックスの下のリストをチェックします。赤いリンクがある場合は、これらのテンプレートについても上記の手順を繰り返します。また、すべてが機能する前に、MediaWiki:Common.cssページのスタイルとMediaWiki:Common.jsのJavascriptをコピーする必要がある場合があります。最後に、テンプレートを編集して、Wiki用にカスタマイズします。

それでも動作せず、括弧とifステートメントの乱雑なページがある場合は、 ParserFunctions 拡張機能をインストールする必要があります。テンプレートコードに{{#invoke: }}が含まれている場合は、 Scribunto拡張機能 もインストールする必要があります。

MediaWiki Help:Templates プロセスの詳細を説明しています。

2
Rob Kam