Extension:HTMLets/ja
From MediaWiki.org
|
HTMLets Release status: stable |
|
|---|---|
| Implementation | Tag |
| Description | ファイルからHTMLスニペットを埋め込むことができる |
| Author(s) | Duesentrieb |
| MediaWiki | 1.9 (maybe older versions too) |
| Download | svn (browse), bundle log |
| Parameters | $wgHTMLetsDirectory |
HTMLets拡張機能は(インラインの)スタティックなHTMLスニペットをwikiページにインクルードする方法を提供します。スニペットはウェブサーバ上の特別なディレクトリのファイルに設定されます。これは任意で潜在的に有害なコードを挿入することをユーザに許可することなく、特別なJavaScriptコード、<iframe>、HTMLフォームを挿入するシンプルな方法に対する要求を解決します。
HTMLスニペットをインクルードすることは特別なタグである、<htmlet>を使用することで行われます。例えば、wikiページで次のコードを設置する場合です:
<htmlet>foobar</htmlet>
これはhtmletディレクトリからfoobar.htmlファイルの内容をインクルードします。スニペットが頻繁に変更して、これらの変更をすぐにwikiページ上で反映させたい場合、そのページに対してHTMLetsにパーサキャッシュを無効にするように伝えることができます::
<htmlet nocache="yes">foobar</htmlet>
htmletディレクトリは$wgHTMLetsDirectoryを使用して構成することができます; デフォルトの値は"$IP/htmlets"で、すなわち、MediaWikiのインストレーションrootのhtmletsディレクトリです。$wgHTMLetsDirectoryはウェブサーバ上の場所を参照することもできます。例えばhttp://localhost/htmlets/に設定できます。- note that the .htmlで終わることが必須でクエリ文字列がhtmletの名前で許可されていないからです。。
[edit] パーサ問題とハック
現在、mediawikiのパーサはパーサフックの出力をそのままにしてしまいます(bugzilla:8997)。このことはスニペットのファイルからのHTMLは特定の状況で一部が表示されない(mangeled)可能性があります(例えば、インデントもしくは空白の行が含まれない)。
リビジョン19966に関して、HTMLetsは"hack modes"によってこの問題に対処します。提供されるhackは<htmlet>タグに対してhack属性を使用することで制御でき、$wgHTMLetsHack設定をLocalSettings.phpで使用することで、グローバルなデフォルトの値を設定できます。次の値が定義されています(最初はhack属性で使用するための名前で、2番目はLocalSettings.phpで使用するための定数名です):
- "bypass" (HTMLETS_BYPASS_HACK)
- は安全に動作します; スニペットファイルからBase64でエンコードされたHTMLバージョンを出力して、ParserAfterTidyフックでそれをデコードすることで動作します。これはデフォルトの設定です。
- "strip" (HTMLETS_STRIP_HACK)
- は表示をめちゃくちゃにするきっかけになるものをストリップもしくはエンコードします。これは<pre> でフォーマットされたテキストを壊し特別な状況の下でJavaScriptコードに干渉もする可能性があります。
- "none" (HTMLETS_NO_HACK)
- スニペットファイルの内容の処理をパーサに任せます。完全な世界では、これは正しいでしょう。表示されない要素(mangeling)に注意しないとすぐに予期せぬ結果になります。既知のトリッガーは空白の行、と空白で始まる行、"#", "*", ";",もしくは":"です、行においてコロン(":")の前にある空白も問題です。ここで説明したものはHTMLETS_STRIP_HACKによって対処できます。別のトリッガーがあるかもしれませんし、パーサの振る舞いが変わることがあります。

