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モジュールをコピーする必要があります。アップストリームテンプレートはバグ修正を取得します。
これを行う最もスムーズな方法は何ですか?私が発見していない別のオプションはありますか?
PITA であり、残念ながら(拡張機能やメディアファイルとは異なり)既定のテンプレートのリポジトリはありません。テンプレートは他のテンプレートをロードし、他のテンプレートを順番にロードします。テンプレートは、自分のwikiを編集したい人の努力を妨害する代わりに、コーダー側に引き継ぐためのものです。
ところで、Wikiaには独自の テンプレートリポジトリ があるので、役に立つかもしれません。
これは最良の解決策ではありませんが、それは仕事をします:
ウィキペディアに移動して、目的のテンプレートの名前をコピーし、Special:Exportに移動して、テンプレートの名前を大きなテキストボックスに貼り付けます。テンプレート:インフォボックス。 「テンプレートを含める」をチェックし、「完全な履歴ではなく現在のリビジョンのみを含める」をチェックします(またはファイルが大きすぎます)。 [エクスポート]をクリックして、テンプレートの.xmlファイルをダンプします。次に、これを宛先ウィキにインポートします。
インポートされたテンプレートを開いて編集し、「このページの現在のバージョンにトランスクルードされたページ:」編集ボックスの下のリストをチェックします。赤いリンクがある場合は、これらのテンプレートについても上記の手順を繰り返します。また、すべてが機能する前に、MediaWiki:Common.cssページのスタイルとMediaWiki:Common.jsのJavascriptをコピーする必要がある場合があります。最後に、テンプレートを編集して、Wiki用にカスタマイズします。
それでも動作せず、括弧とifステートメントの乱雑なページがある場合は、 ParserFunctions 拡張機能をインストールする必要があります。テンプレートコードに{{#invoke: }}
が含まれている場合は、 Scribunto拡張機能 もインストールする必要があります。
MediaWiki Help:Templates プロセスの詳細を説明しています。