6

最初は、MediaWiki で何か高度なことを行う方法についての質問がここに属しているかどうか確信が持てませんでしたが、よくある質問を読んで考えてみると、wiki マークアップは HTML や CSS と同じくらい独自の言語であると判断しました。ここで質問を歓迎します。私が間違っている場合は、この質問にフラグを立ててください。更新:この質問が得た 3 つのビューからも明らかなように、おそらく Stackoverflow のルールの範囲内ですが、この件に関する専門知識はあまりないかもしれません! この質問は公式フォーラムに持ち込む必要があると思います (身震い)


問題

MediaWiki を使用してセットアップしているウィキでは、動的に作成されたカテゴリをとりわけ出力するテンプレートがあります。これは、テンプレートを呼び出すページが、テンプレートに渡されたいくつかの変数に基づいて分類されることを意味します。動的に生成されたカテゴリは<includeonly>ブロック内にあり、テンプレート ページ自体がカテゴリを取得するのを防ぎます。

問題は、そのページを他のページにトランスクルージョンすることです。これにより、カテゴリもトランスクルードされ、3 番目のページには、トランスクルージョンされたすべてのページのすべてのカテゴリが含まれます。

テンプレートを呼び出すページがカテゴリを利用するが、呼び出し元のページをトランスクルージョンするページはカテゴリを継承しないように、何らかの形でテンプレートをフォーマットしたいと考えています。

これが、セットアップの例での私のベストショットです。これが不十分な場合は、実際の例へのリンクを提供できます。

Template:Food
いくつかの変数を取り、「タイプ」変数に基づくカテゴリの出力を含む、食品を説明する高度にフォーマット化されたブロックを出力するページ。

Banana
このページは、 set toTemplate:Foodを含むいくつかの変数を使用してテンプレートを呼び出します。その結果、ユーザーが " " ページを表示すると、果物に関するいくつかの基本的な情報を含む適切に構成されたページが表示されます。さらに、ユーザーがそのページにアクセスすると、Banana ページが一覧表示されます。type"fruit"BananaCategory:Fruit

Banana Nut Bread Recipe
問題のページです。このレシピ ページでは、作成者は各材料が適切にフォーマットされたブロックにリストされるように、材料のすべてのページをトランスクルージョンしたいと考えています。しかし、彼がBananaを使用してページをトランスクルージョンする{{:Banana}}と、Fruitカテゴリも一緒にトランスクルージョンされ、ページは間違っBanana Nut Bread Recipeたカテゴリにあるとリストされます。Fruit

4

2 に答える 2

3

私の理解が正しければ、includeonly 情報 (カテゴリ) を深さ 1 のトランスクルージョンのみに制限する必要があります。ありえないと思います。

可能な解決策:

1- にカテゴリ情報を入れないでくださいTemplate:Food。各成分ページに直接入力するか、本当に必要な場合は、Template:Food_categoryまたは類似のものを作成してください. 次に、各ページに任意の数の を含めることができ、{{Food}}{{food category}}明示的に配置する必要があります。

于 2009-03-05T02:29:56.763 に答える
0

Labeled Section Transclusion 拡張機能を使用すると、ソース記事の一部にラベルを付けて、それらのタグに基づいてトランスクルージョンできます。タグはオーバーラップできるため、プルされるものを非常にきめ細かく制御できます。

https://www.mediawiki.org/wiki/Extension:Labeled_Section_Transclusion

Labeled Section Transclusion を使用すると、Banana ページの別の Transclusion ステートメントで Type:fruit と Banana の説明の両方を Transclude できると思いますが、説明は Recipe ページに渡すだけです。

于 2016-06-07T14:16:56.130 に答える