MediaWikiで動的に生成されたカテゴリを使用する場合、カテゴリのトランスクルージョンを制限する
質問
最初は、MediaWikiで高度な処理を行う方法についての質問がここにあるかどうかはわかりませんでしたが、よくある質問を読んで考えてみると、wikiマークアップはHTMLやCSSと同じくらい独自の言語であると判断し、そして、それらの質問がここで歓迎されているなら、うまくいけばこれもそうです!私が間違っている場合は、この質問にフラグを立ててください。 更新:この質問が得た3つの見解から明らかなように、おそらくStackoverflowのルールの範囲内ではありますが、このテーマに関する専門知識はあまりないと思われます。この質問を公式フォーラム(震え)に持ち込む必要があると思います
問題
MediaWikiを使用して設定しているWikiには、とりわけ動的に作成されたカテゴリを出力するテンプレートがあります。つまり、テンプレートを呼び出すページは、テンプレートに渡される変数のいくつかに基づいて分類されます。テンプレートページ自体がカテゴリを取得できないように、動的に生成されたカテゴリは<includeonly>
ブロック内にあります。
問題は、次にそのページを他のページにトランスクルージョンすることです。これにより、カテゴリーもトランスクルードされ、今では3番目のページにすべてのページのすべてのカテゴリーがありますトランスクルージョン。
テンプレートを呼び出すページがカテゴリを使用するようにテンプレートを何らかの方法でフォーマットしますが、呼び出しページを除外するページはカテゴリを継承しません。
例
セットアップの例での私のベストショットです。これが不十分な場合は、実世界の例へのリンクを提供できます。
Template:Food
いくつかの変数を取り、食べ物を説明する高度にフォーマットされたブロックを出力するページ。<!> quot; type <!> quot;変数。
Banana
このページは、type
を"fruit"
に設定するなど、いくつかの変数を使用してCategory:Fruit
テンプレートを呼び出します。結果は、ユーザーが<!> quot; Banana Nut Bread Recipe
<!> quot;を表示したときです。ページには、果物に関する基本的な情報が記載された適切にフォーマットされたページが表示されます。さらに、ユーザーが{{:Banana}}
ページに移動すると、バナナページが一覧表示されます。
Fruit
これは問題のページです。このレシピページで、著者は各成分が適切にフォーマットされたブロックにリストされるように、成分のすべてのページを除外したいと考えています。ただし、彼が<=>を使用して<=>ページをトランスクルードすると、<=>カテゴリが一緒にトランスクルードされ、<=>ページは間違った<=>カテゴリにあるとしてリストされます。
解決
正しく理解できたら、includeonly情報(カテゴリ)を深さ1のトランスクルージョンのみに制限します。可能だとは思わない。
可能な解決策:
1-カテゴリ情報をTemplate:Food
に入れないでください。各成分ページに直接配置するか、本当に必要な場合は、Template:Food_category
などを作成します。その後、各ページに任意の数の{{Food}}
を含めることができ、{{food category}}
を明示的に配置する必要があります。
他のヒント
Labeled Section Transclusion拡張機能を使用すると、ソース記事の一部にラベルをタグ付けし、それらのタグに基づいてトランスクルードできます。タグは重複する可能性があるため、プルスルーされるものを非常にきめ細かく制御できます。
https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion
Labeled Section Transclusionを使用すると、Bananaページの別のトランスクルージョンステートメントでType:fruitとBananaの両方の説明をトランスクルードできると思いますが、Recipeページまで説明をプルするだけです。