0

私が達成したいことの例

プロジェクトに加えられた変更を一覧表示する多くのパッチ ページ (「パッチ 1.4」、「パッチ 1.5」など) があり、影響を受ける/変更されたものは対応するページ (「確認ダイアログ」、「foo」) にリンクされています。など):

パッチ1.4

  • [[確認ダイアログ]] のスペルを修正

パッチ1.5

  • 2 つのオプションを追加: [[foo]]、[[bar]]

変更された内容 (「確認ダイアログ」、「foo」など) に関するページで、対応するすべての変更を自動的に表示したいと考えています。

フー

  • [[Patch 1.5]]: 2 つのオプションを追加: [[foo]]、[[bar]]

Semantic MediaWiki のサブオブジェクトはこれを行うことができます

#subobjectパッチ ページの変更ごとに (匿名の) オブジェクトを作成できます。

{{#subobject:|
|Changes=Added two options: [[foo]], [[bar]]
|Affects=Foo|Bar
}}

そして、各ページ (「foo」など) に#askサブオブジェクト クエリを含めて、一致するすべてのサブオブジェクトを一覧表示できます。

{{#ask: [[Affects::{{FULLPAGENAME}}]]
 |? Changes
}}

偉大な。

問題: 変更エントリを複製する必要があります。

パッチ ページでは、変更エントリは次のようになります。

* Added two options: [[foo]], [[bar]] {{#subobject:|
|Changes=Added two options: [[foo]], [[bar]]
|Affects=Foo|Bar
}}

したがって、「追加された 2 つのオプション: [[foo]]、[[bar]]」を 2 回指定する必要があります。1 回は可視コンテンツ用、もう 1 回は不可視サブオブジェクト用です。

(セマンティック) MediaWiki でコンテンツを複製せずにこれを行う方法はありますか?

理想的な解決策は、変更エントリを囲み、その横に影響を受けるページを指定することだけです。

* {{ Added two options: [[foo]], [[bar]] }}((foo|bar))

各パッチ ページには何百もの変更がリストされる可能性があるため、変更ごとに個別のページを作成する必要はありません。

4

1 に答える 1

2

あなたの質問を明確に理解できれば、簡単なクエリが必要なようです。

{{#ask: [[-Has subobject::{{FULLPAGENAME}}]] 
| ?Changes
| format = ul
| headers = hide
| mainlabel = -
}}

SMW マークアップの使用は面倒でエラーが発生しやすいため、MediaWiki テンプレートを使用することもできます。パッチの変更を簡単に追加できます。

テンプレート:変更

<includeonly><!--
-->{{#subobject:|
   | Changes = {{{1|}}}
   | Affects = {{{2|}}}|+sep=;
   }}<!--
--></includeonly><nowiki/>

{{{1}}}{{{2}}}は位置パラメータであり、Affectsサブオブジェクト プロパティは;セパレータを使用します (パイプ|はあいまいで、テンプレートやパーサー関数などを壊す可能性があるため)。これ<nowiki/>は、呼び出しサイト ページでの空白の肥大化を回避する一種のハックです。

変更クエリをカプセル化する特別なテンプレートを追加することもできます。

テンプレート:パッチの変更

<includeonly><!--
-->{{#ask: [[-Has subobject::{{{1|{{FULLPAGENAME}}}}}]] 
   | ?Changes
   | format = ul
   | headers = hide
   | mainlabel = -
   }}<!--
--></includeonly><nowiki/>

デフォルトでは、テンプレートは現在のページの変更リストを要求します (位置パラメーター #1 引数が空の場合)。または、後で呼び出しサイトで明示的にオーバーライドできます (たとえば、{{Patch changes|Patch 1.5}})。

パッチ1.4

{{Change | Fixed spelling in the [[confirmation dialog]] | Confirmation dialog}}

{{Patch changes}}

パッチ1.5

{{Change | Added two options: [[foo]], [[bar]] | Foo; Bar}}

{{Patch changes}}

それぞれ。

これらのリンクは、後で役立つ場合があります。

于 2016-04-29T10:39:31.833 に答える