:Category_Document

PukiWiki-1.4用ドキュメント素案

Top/PukiWiki/1.4/マニュアル/テンプレート

テンプレートをつかってみよう。

編集時に読み込む 雛型ページ

PukiWiki には、編集画面で「雛型とするページ」を選択して取り込む機能があります。この機能は大変便利なものですが、表示可能な全てのページがプルダウンボックスに表示されるため、ページ数が多くなると 編集開始までに時間がかかるようになってしまいます。そこで、この機能を無効にすることができます。

$load_template_func
編集時の雛型となるページの読み込み機能の ON /OFF
0 : OFF / 1 : ON (default)

default.ini.php

/////////////////////////////////////////////////
// 雛形とするページの読み込みを表示させる
$load_template_func = 1;

AUTO TEMPLATE FUNCTION (自動雛型機能)

PukiWiki には、新規ページを作成する際に自動 Template機能があります。 新規ページを作る際に自動的にtemplateというページを呼び出してから編集画面になります。

デフォルトの設定は以下のようになっています。

$auto_template
Auto Template 機能の ON/OFF
0 : OFF / 1 : ON (default)
$auto_template_rules
正規表現による適用されるページとそのページに対応するテンプレート名
配列の最初から探され、マッチしたところで終了
デフォルトでは、作成されるページと同一階層のtemplateページを探すようになっています。

pukiwiki.ini.php

/////////////////////////////////////////////////
// ページ名に従って自動で、雛形とするページの読み込み
$auto_template_func = 1;
$auto_template_rules = array(
'((.+)\/([^\/]+))' => '\2/template'
);

参考

$auto_template_rules = array(
'((.+)\/([^\/]+))'   => '\2/template', // (1)
'((test)\/([^\/]+))' => 'template',    // (2) testの下位階層ページだけ別ルールで上書き
'(()(.+))'           => 'template'     // (3)
);
(1) : $1=hoge/fuga $2=hoge $3=fuga template=[[hoge/template]]
(2) : $1=test/fuga $2=test $3=fuga template=[[template]]
(3) : $1=fuga      $2=''   $3=fuga template=[[template]]

Template プラグインによる 雛型ページの読みだし

PukiWiki-1.4標準搭載のプラグインを使用すると既存のページをテンプレートとしてページを新規作成することができます。

コマンドですので以下のようにして使うと2つウィンドーが出てきます。

 ?plugin=template&refer=テンプレートとする(URLエンコードされた)ページ名

上のウィンドーでは、テンプレートとして使用する領域の開始行を選択し、下のウィンドーでは、最終行を選択します。そして、作りたいページの名前(デフォルトでは、テンプレートとするページの一つ下の階層の複製というページ名が入っています)を入力して&button{作成};を押せばページが作られます。

参考

Template 使用時に置き換えられる 文字

自動雛型機能(Auto Template)がONの時。($auto_template_rules=1の時)

ユーザ定義ルールによる置き換えの他に、テンプレート内に記述しておくとページ名を取得して置き換えることが可能です。

ほげ/ふがの作成時にほげ/templateを読み込む場合
   $1→ほげ/ふが ,
   $2→ほげ
   $3→ふが
の 文字列置換が行われます。

以下のユーザ定義ルールは、ページを編集終了時に置き換えられますので、テンプレート内に記述しても、保存される時には置き換えられてしまいます。

pukiwiki.ini.php

/////////////////////////////////////////////////
// ユーザ定義ルール
//
//  正規表現で記述してください。?(){}-*./+\$^|など
//  は \? のようにクォートしてください。
//  前後に必ず / を含めてください。行頭指定は ^ を頭に。
//  行末指定は $ を後ろに。
//
/////////////////////////////////////////////////
// ユーザ定義ルール(直接ソースを置換)
$str_rules = array(
        'now\?' => format_date(UTIME),
        'date\?' => get_date($date_format),
        'time\?' => get_date($time_format),
//      '&now;' => format_date(UTIME),
//      '&date;' => get_date($date_format),
//      '&time;' => get_date($time_format),
);

上のコメントを外したり、以下の設定をしておくと便利かも。

'&page;' => substr($page,strrpos('/'.$page,'/')),
'&fpage;' => $page,

階層化されたページ「hogehoge/hoge」で&page;は「hoge」を、&fpage;は「hogehoge/hoge」に置換します。

テンプレートページに書いておいてうまく置換するアイデアがpukiwiki:質問箱/181に出ています。

 ユーザー定義ルールは上から順番に適用され、再帰的には適用されませんので、例えば、
 'now\?' => format_date(UTIME),
 'date\?' => get_date($date_format),
 'time\?' => get_date($time_format),
 '\x5cquestion' => '?',
のようにユーザー定義ルール (pukiwiki.ini.php) に書いておき、
 now\question
として「ページの更新」をすると、
 now?
に書き換わります。但し、再度このページを編集すると、現在日時に書き換わってしまいます。

参考

その他



トップ   編集 凍結 差分 履歴 添付 複製 名前変更 リロード   新規 一覧 検索 最終更新   ヘルプ   最終更新のRSS
Last-modified: 2015-11-28 (土) 23:42:34
Site admin: PukiWiki Development Team

PukiWiki 1.5.4+ © 2001-2022 PukiWiki Development Team. Powered by PHP 8.2.12. HTML convert time: 4.129 sec.

SourceForge