Help:TemplateStyles/ja

TemplateStyles は、管理者権限がなくてもテンプレートにおける複雑な装飾（スタイリング）を実行するツールです.

動作の仕組み
ページに というウィキテキストを挿入すると、 の記述がCSSとして解析され、置換した特殊文字を  タグの位置に読み込みます（ページ上で直接、もしくはそのページで使用されるテンプレート内で）.

には必ずコンテントモデル  が必要です. このコンテントモデルは、ページ名が  で終わるテンプレート名前空間のサブページにおいて既定です. 利用法は、 のスタイルを   のようなサブページに格納する方法が推奨されます.

に名前空間の接頭辞が付かない場合、既定でテンプレート名前空間を読み込みます. 従って例えば、 と書かれた場合、読み込まれるのは   です.

タグはテンプレートの最上部など、装飾される本文の前に置くことで、ページの読み込み時に一部がレンダリングされ、装飾されていないページが出力される可能性を避ける必要があります.

解決される問題
今まで、テンプレート（やその他のコンテンツ）を装飾する方法は2通りありました. インライン・スタイル（ などHTMLコードを書いて直接、属性を追加）か、MediaWiki:Common.css など特別なシステムメッセージを用いるかでした. どちらの方法も完全には機能していません.

インライン・スタイルの場合:


 * 本文と体裁が分離されません. コンテントがテンプレート（記事の表など）に含まれている場合を除き、記事内にウィキテキストが表示され、ほとんどの編集者には理解できません.
 * 装飾とウィキテキストの混在が原因で、シンタックス強調表示その他のCSSによる編集支援が困難または不可能になります.
 * 対象となるHTML要素一つひとつに装飾処理をする必要があり、結果として大量のコピー&ペーストやコードが記述されるせいで、読みにくくメンテナンスが困難になります.
 * style属性は、CSSのサブセットに限定されています. 最重要点は、レスポンシブデザインに必要な  規則が機能せず、多様な画面幅に対応するテンプレートの作成が不可能なことです. さらにインライン・スタイルは、CSSスタイルシートの装飾より優先されるため、ユーザー固有・スキン固有・機器固有のカスタマイズが、より困難になっています.

システムページを使った場合:


 * 編集が管理者に限定されることは、参加の大きな障壁です.
 * 使用できるCSS規則を制限する方法が無いため、編集権限の引き下げができません. 読者のIPアドレスを追跡したり、古いブラウザではスクリプトを実行することすらできてしまうからです.
 * まず保存することが前提で、事前に変更のテストができません（）.
 * 全てのスタイルシートを（そのページを利用者が使うかどうかを問わず）あらゆるページに読み込む必要があり、帯域幅を無駄遣いし、装飾規則のデバックをより困難にしています.

TemplateStyles の利用でユーザーは装飾規則を特定のページに割り当てることができ、CSSスタイルシートを十分に機能させつつ危険な構築を除外して、さらに本来の機能としてプリビューやデバッグのツールと共存できます（テンプレートのサンドボックス）.

Lowering the access and maintainability barrier will hopefully result in more innovation in the way templates are visually designed, less maintenance overhead, and better adaptability to screen options (especially mobile devices which by now constitute half of Wikipedia pageviews).

安全性
安全です！ TemplateStyles は、CSSを読み込み、再シリアル化し、全てのコードをエスケープし、ホワイトリストに合致しないCSS規則を除去する、本格的なCSSパーサーを含んでいます. このパーサーは、外部リソース（例えば背景画像）を拒否し、ローカルリソースは許可するだけの十分な精度があります. CSSセレクタは、記事コンテンツ外の要素を参照できないように書き直されます. (Visually modifying areas outside article content by displacing parts of the article, e.g. via absolute positioning, is not prevented at this time. This is no change from the status quo, as such a thing was already possible with wikitext and inline styles.)

認識するCSS規則
現在、TemplateStyles は主流を含む複数のブラウザが推奨するCSS3プロパティ（2017年前期時点）のほとんどを受け付けます. 単純な規則に加えて@規則のうち と 、 と 及び と も推奨します（セキュリティ上の理由からフォントフェースは名称が で始まるものに限定）.

現在、標準外のプロパティ（ベンダー接頭辞を含む）は非推奨です. 今後の計画についてはT162379をご覧下さい.

不正行為対策機能の提供
The design choice to store CSS in separate pages was made in part to make integration with the standard anti-abuse toolset easy. TemplateStyles CSS pages have their own content model so changes to them can be tracked or controlled with AbuseFilter, using the   variable.

CSS inclusion is tracked the same way as template transclusion, so you can see where a stylesheet is used via the "What links here" option, see what stylesheets are used on a page under "Page information" (and possibly on the edit screen, depending on what editor you use), and see what recent changes might be affecting a page using "Related changes".

TemplateStyles also leaves identifying information in the HTML code; to find out where a specific rule comes from, look at the page source, and the enclosing  tag will have an attribute like , where 123456 is the revision ID of the stylesheet (viewable with Special:Diff, for example).

TemplateStyles を制作する上での意思決定の方法
The idea of including CSS with templates was proposed and accepted in a request for comments. Technical details were pinned down in a second RfC and workflow details in a user consultation.

TemplateStyles の製作者
TemplateStyles was originally a project of the Wikimedia Reading Infrastructure team (preceded by exploratory work Coren did as a volunteer), then people moved around. It is now maintained by an ad hoc WMF team consisting of Brad Jorsch (developer), Chris Koerner (community liaison), Dan Garry (product manager), Gergő Tisza (developer) and Grace Gellerman (project manager).

エラーの報告や要望の提案
Please file tasks under the TemplateStyles component in Phabricator.

Where can I see it in action?
You can look at some curated examples.

The feature is currently (as of March 2018) enabled on the following Wikimedia sites:


 * here on mediawiki.org (all stylesheets)
 * German Wikipedia (all stylesheets)
 * Swedish Wikipedia (all stylesheets)
 * Wikitech (all stylesheets)
 * testwiki (all stylesheets)

関連ページ

 * Extension:TemplateStyles、特に#Caveats節.