Extension:Labeled Section Transclusion
Labeled Section Transclusion リリースの状態: 安定 |
|
---|---|
実装 | タグ , パーサー関数 |
説明 | 文章のマークされた節を埋め込み参照する |
作者 | Steve Sanbeg |
互換性の方針 | MediaWiki とともにリリースされるスナップショット。 master には後方互換性がありません。 |
MediaWiki | 1.19+ |
データベースの変更 | いいえ |
ライセンス | GNU 一般公衆利用許諾書 2.0 以降 |
ダウンロード | |
使用中の公開ウィキ | 6,919 (Ranked 26th) |
translatewiki.net で翻訳を利用できる場合は、Labeled Section Transclusion 拡張機能の翻訳にご協力ください | |
問題点 | 未解決のタスク · バグを報告 |
Labeled Section Transclusion(ラベル付き段落の参照読み込み)拡張機能は、通常のようにウィキテキストを構文解析して、マークされた節の選択的な参照読み込みを可能にします。その機能は、通常の参照読み込みを持つ<onlyinclude>
タグの拡張バージョンと似ています。これは、包含する節を選択します。これはウィキメディアのすべてのウィキで有効になっています。
標準の参照読み込みが基本的には小規模なテンプレートの大きなまとまりを扱うのに対し、ラベル付き節の参照読み込みは大きなページの小さなまとまりを意図しています。
ただし、多少の相違点があります。ネイティブなテンプレートの参照読み込みでは節を挙動ごとにマークします。そのおかげで利用者は対象にするかしないか、(おそらく隣接しない) セクションひとつに絞り込むことができます。
さて、節の名前でマークし、呼び出し子で挙動を選択すると、必要に応じて節を対象に含めたり外したりできます。異なるページごとに選択した節を対象に含めたり除外したりできます。節の数は任意で、また任意に重複が認められます。
節に挙動ではなく名前でマークする場合、長い文を対象にした抽出が節リンクの編集の表示を寄り的確に行います。このとき拡張機能は現在ページの冒頭で対象外とするべき節を考慮に入れることができ、参照読み込みする節を適切にオフセットできるようにします。
インストール
- ダウンロードして、ファイルを
extensions/
フォルダー内のLabeledSectionTransclusion
という名前のディレクトリ内に配置します。
開発者とコード寄稿者は、上記の代わりに以下を使用してGitからインストールします:cd extensions/
git clone https://gerrit.wikimedia.org/r/mediawiki/extensions/LabeledSectionTransclusion - 以下のコードを LocalSettings.php ファイルの末尾に追加します:
wfLoadExtension( 'LabeledSectionTransclusion' );
- 完了 – ウィキの「Special:Version」に移動して、拡張機能が正しくインストールされたことを確認します。
Wikisource.org のウィキでは簡略化された## label ##
構文で節を定義できるガジェットも使用されています。
コードは Wikisource:MediaWiki:Gadget-Easy_LST.js で入手できます。
関数
マークされた部分を除外
ステップ 1: 節へのタグ付け
以下のように <section>
タグを使用して節にタグ付けします:
<section begin="chapter1" />this is chapter 1<section end="chapter1" />
これらのタグはHTML/XMLではなく、通常の属性構文を使用しないことに注意してください。
このため、begin
と end
のマーカーは XML の通常の開く/閉じるタグではなく、個別であるため、節の入れ子やオーバーラップが許可されます。これにより、他の節との干渉を気にすることなく、section タグを挿入できるようになります。
ステップ 2a: 節の参照読み込み
パーサー関数#lstを呼び出して参照読み込みします。以下の例では、articleXというページからchapter1という節を呼び出します。
{{#lst:articleX|chapter1}}
対象となる記事では節にタグを付けて定義しておきます。どのような動作をするかはパーサー関数によって決定されます。
ステップ 2b: ページは参照読み込みし節は除外する
ページを読み込みますが、特定の節を除外するには、#lstxを使用します。
{{#lstx:articleX|chapter1}}
任意で、除外されたセクションの部分に代替テキストを挿入することができます。
{{#lstx:articleX|chapter1|replacement_text}}
例:
{{#lstx:articleX|chapter1|See chapter 1 in [[articleX]].}}
置換されたテキストは、セクションがスキップされた(除外された)箇所に表示されます。
不連続な節
同一名の複数の節は共存できます。この事例では、同一名の節はどれも対象にしたり除外したりできます。さまざまな議論をマークするとき、特に有効です。
節の範囲
例えば、{{#lst:articleX|chapter1|chapter3}}は、chapter1の最初からchapter3の最後までを含みます。これにより、中身が無い(訳註:同じ名前のタグを2つ用いると、対になったタグに挟まれたテキストが中身となるが、1つしか用いないと中身が存在し得なくなる)マーカー同士を使って範囲を指定することもできます。同様の仕組みはフランス語版ウィキソースで使われています。
subst展開
これはsusbt展開でも機能します。ある記事が自身の節をsubst展開することも可能です。これを用いると、トークページをアーカイブすることもできます。<section begin=archive />
などのようにアーカイブするテキストをマークします。そして、{{subst:#lst:talk_page|archive}}を用いて節をコピーするアーカイブ先のページを作成します。最後に、talk_pageの内容を{{subst:#lstx:talk_page|archive}}で置き換え、アーカイブした節を削除します。
このオプションは、標準的な見出し、たとえば==this section==
でマークした文の節の参照読み込みをサポートします。インストールすると、lsth 関数で実施します。
最初の見出しの前を参照読み込みする
ページ導入部(1つ目の見出しより前の部分)を除外するには、以下のようにしてください。
{{#lsth:pagename}}
特定の節の参照読み込み
また、sectionXの内容全てを参照読み込みすることもできます(サブセクションの全てが含まれますが、sectionXの見出しは含まれません)。
{{#lsth:pagename|sectionX}}
注意点:
- 同一名の節が複数ある場合、最初に出現するsectionXに限定して参照読み込みされる。
- sectionXの見出し名は表示される文字列ではなく、必ずウィキテキストの書式で入力。たとえば節見出しが
==List of [[Extension]]==
の場合、入力する文字列は「List of [[Extension]]
」が正しく「List of Extension
」は間違い。 - 翻訳拡張機能を使って翻訳対象のマークを付けたページから、節を参照読み込みする場合、言語特定版から参照読み込みすること。 例:単なるpagenameではなくpagename/enを対象にする。
- 対応付けはリンクが大文字と小文字の変更によってリンクが崩れるのを防ぐため。大文字小文字を区別しない。
複数の節の参照読み込み
最初のsectionXの出現 (sectionX自体の見出しを除外) から次に出現するsectionYまでの間を除外することもできます。sectionYは停止点として機能し、sectionYの内容は参照読み込みの対象外です。
{{#lsth:pagename|sectionX|sectionY}}
スキップした見出しについての注記
MediaWikiにおける従来の参照読み込みは節を対象にしていないため、連続しない見出しは対象外です。その結果、複数の見出しを含むテンプレートを参照読み込みする場合、冒頭の見出しを対象から除外すると節編集リンクはすべて、テンプレート内の誤った箇所に対応付けされます。
この拡張機能の利用 (MediaWiki 1.9以降の場合)、#lst関数と#lsth関数は「除外した」冒頭部の見出しも数えて見出しの対応付けを的確に実行します。複雑ではない事例では、節が正しく対応付けされます。
注意点として、#lstxは除外した見出しを対象にしない上、不連続な節内の除外された見出しはオフセットしません。 ただ現状では解消されたように (おそらくMediaWiki の新しい前処理機能にポートされた場合も) 表示されます。参照読み込みされた見出しは正しい節を対応付け可能.
地域化
内部的には、パーサー関数は拡張子の名前との一貫性を保つため、すべてlst接頭子を使用します。この接頭子は開発者以外を混乱させる可能性があるため、読みやすい英語の変数名が導入され、現在、関数はどちらの名前からも呼び出し可能です。
関数 | 英語 | ドイツ語 | ヘブライ語 (RTL) | ポルトガル語 |
---|---|---|---|---|
#lst | #section | #Abschnitt | #קטע |
#trecho |
#lstx | #section-x | #Abschnitt-x | #בלי קטע |
#trecho-x |
#lsth | #section-h |
さらに、タグはローカライズ可能になりました。現在は 英語, ドイツ語, ヘブライ語, ポルトガル語; に対応しています。以下は例です。
- 英語
<section begin=x/> ... <section end=x/>
- ドイツ語
<Abschnitt Anfang=x/> ... <Abschnitt Ende=x/>
- ヘブライ語 (RTL)
<קטע התחלה=א> ... <קטע סוף=א>
(「開始」コードが右、「終了」コードが左です)- ポルトガル語
<trecho começo=x/> ... <trecho fim=x/>
それぞれのローカライズ名は、ページがそのコンテンツに設定された言語と一致する場合にのみ有効化されます。
制限
- {{#lsth:pagename|sectionX}} only works on the first section if multiple sections have name sectionX. Only the first occurrence of sectionX is transcluded if an article has more than one section with the same name.
- While it is possible to use this extension across namespaces, interwiki references are not resolved. It is not yet possible, for example, to include part of a Wikisource page into a remote MediaWiki installation.
- 節タグそのものを他のページで動作させるために参照読み込みさせることはできません。
{{#lst:}}
and{{#lstx:}}
は、節タグが参照読み込み先のページそのもののウィキテキストに存在する場合のみ有効です。言い換えるなら、たとえば、テンプレートのパラメータやパーサ関数を利用して節タグをテンプレートに埋め込むことはできません。#tag
マジックワードは節タグとは同時に使えません。 - 2014年現在、節タグはテンプレートのパラメータ内で使われると効果がありませんでした。ページ A に{{B|X}}というテキストがある場合、{{#lst:A|...}}がXにアクセスすることは不可能です。
例
- wikisource:user:sanbeg/Includer - 基本機能のいくつかを示す初期のデモンストレーション版。
関連ページ
- DynamicPageList (サードパーティ製)にはラベル付き節参照読み込みをわずかに改変したビルトイン版が含まれる
この拡張機能は 1 つ以上のウィキメディアのプロジェクトで使用されています。 これはおそらく、この拡張機能が安定していて高いトラフィックのウェブサイトでも十分に動作することを意味します。 この拡張機能がインストールされている場所を確認するには、ウィキメディアの設定ファイル CommonSettings.php および InitialiseSettings.php 内で、この拡張機能の名前を探してください。 特定のウィキにインストールされている拡張機能の完全な一覧は、そのウィキの Special:Version ページにあります。 |
この拡張機能は以下のウィキ ファーム/ウィキ ホスト/パッケージに含まれています: これは正式な一覧ではありません。 一部のウィキ ファーム/ウィキ ホスト/パッケージは、ここに記載されていなくてもこの拡張機能を含んでいる場合があります。 必ずご利用のウィキ ファーム、ウィキ ホスト、バンドルで確認してください。 |