v1.11

Table of Contents

使用法

レベル1:ローカルファイルの取り込み

DATA_HOME の階層(通常は index.php や wiki/ ディレクトリと同階層)に htmlinsert ディレクトリを作成し、 その下にファイルを ftp などでアップロードしてください。

#htmlinsert(ファイル名)

で取り込めるはずです。

rev.280 以降では plugin/htmlinsert ディレクトリも利用できるようになりました。

rev.397 以降では transitional オプションが追加されました。

#htmlinsert(ファイル名,transitional)

XHTML の DOCTYPE を XHTML 1.0 Transitional に変更できます。 Pukiwiki のデフォルトである XHTML 1.1 では使用すべきでないタグや要素(iframe タグや <a href="" target="_blank">)をどうしても使用しなければならない場合、transitional オプションを指定すべきです。

レベル2:wiki ページの取り込み

:HTML/ という接頭辞のつく wiki ページに書いた HTML を取り込むこともできます。

ただし、それらは編集制限($edit_auth, 凍結, またはシステム全体がPKWK_READONLY)されていなければいけませんので、以下のように設定しておきます。

pukiwiki.ini.php で

// User definition
auth_users = array(
       // Username => password
       '使用したいユーザ名' => '使用したいパスワード', // Cleartext
);

// Edit auth (0:Disable, 1:Enable)
$edit_auth = 1;

// Edit auth regex
$edit_auth_pages = array(
	'#^:HTML/#'  => '使用したいユーザ名',
);

一度設定しておけば、取り込まれるファイルを wiki 上で作成、編集することができるようになり、ローカルファイルアップロードの手間が省けます。

実行

#htmlinsert(:HTML/ページ名)
#htmlinsert(ページ名)

ちなみに、:HTML/ を省略した場合、まずローカルファイルを探索して、存在しない場合に wiki ページを探索します。

レベル3:アクション型

アクション型で、指定されたファイルの内容だけを表示できます。

wiki ページとして取り込まれるファイルを作成した場合、ファイルの内容だけを表示する妥当な手段がなかったので必要になりました(ローカルファイルの場合は直にアクセスすれば良いだけですが)

index.php?cmd=htmlinsert&page=ページ名orファイル名

このおかげで、例えば CSS を wiki 上で編集することができるようになります。

CSS や Javascript ファイルを呼び出す場合は

index.php?cmd=htmlinsert&page=ページ名&content-type=text/css
index.php?cmd=htmlinsert&page=ページ名&content-type=text/javascript

のように content-type オプションで http ヘッダの Content-Type を指定しておくとより安全です。 これらをスキンに記述しておくと楽しいかもしれません。

: アクション型では cmd, page, content-type は予約語となるので、ページ内変数には使用できません。

レベル4:テンプレート変数

ファイル内に変数を記述してテンプレート的に使用できます。

例えば、flash 用の html タグを出したい、youtube など html タグが提供されているウェブサービスを利用したい、という程度ならばプラグインを作成せずとも(phpを知らずとも)簡単に実現できるようになります。夢が広がります。

どのように使用するのか、youtube を例にして説明します。

取り込まれるファイルの内容

htmlinsert/u2b 、もしくは wiki ページ :HTML/u2b として保存します。

<div class="u2b_img" style="${style=}">
  <object data="http://www.youtube.com/v/${id=}" type="application/x-shockwave-flash" width="${width=425}" height="${height=350}">
    <param name="src" value="http://www.youtube.com/v/${id=}" />
  </object>
</div>

${style=}, ${id=}, ${width=425}, ${height=350} の部分が変数です。

${変数名=初期値} のように指定します。初期値が空の場合でも ${変数名=} のようにします。 (= を常に付けるという一般的でない変数名ルールにすることで、ただの文字列がテンプレート変数と誤認されないことを期待しています。)

たったこれだけで、Pukiwiki プラグイン(のようなもの)を作ることができます。 ほとんどただの HTML そのままであることがお分かり頂けると思います。

実行

#htmlinsert(u2b,id=qCpbBVthD7o)

htmlinsert プラグインの引数で、まず、ファイル名を指定して、オプションを、変数名=値 のように指定します。${変数名=初期値} な部分が 値 に置き換わります。

HTML出力結果

<div class="u2b_img" style="">
  <object data="http://www.youtube.com/v/qCpbBVthD7o" type="application/x-shockwave-flash" width="425" height="350">
    <param name="src" value="http://www.youtube.com/v/qCpbBVthD7o" />
  </object>
</div>

置き換わっていることを確認してください。 id 以外は指定していないので、初期値が使用されています。

結果

Compatibility Check

Please join us to check compatibilities.

Compatible

Selection Vote
PHP4 5
PHP5 5
1.3.7 0
1.4.3 1
1.4.4 0
1.4.5_1 2
1.4.6 2
1.4.7 9
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 1
1.4.6plus-u1-i18n 1
1.4.6plus-u2-i18n 1
1.4.7plus-i18n 2
1.4.7plus-u2-i18n 5

Incompatible

Selection Vote
PHP4 0
PHP5 1
1.3.7 0
1.4.3 0
1.4.4 0
1.4.5_1 0
1.4.6 0
1.4.7 0
1.4.5plus-eucjp 0
1.4.6plus-u1-eucjp 0
1.4.6plus-u2-eucjp 0
1.4.5plus-u2-i18n 0
1.4.6plus-u1-i18n 0
1.4.6plus-u2-i18n 0
1.4.7plus-i18n 0
1.4.7plus-u2-i18n 0