自作プラグイン/inctmp
2024-09-13 (金) 22:47:59
取得したテンプレートの一部を置き換えて表示するプラグイン
inctmp.inc.php | |
---|---|
製作者 | kanateko |
ライセンス | GPLv3 |
バージョン | 1.1.1 |
動作確認 | PukiWiki 1.5.4 - 1.5.4 |
最終更新 | 2024-09-13 |
infoboxプラグインを汎用化したもの。指定したテンプレートページ内の任意のキーワードを置き換えた上で現在のページに表示することができる。プラグイン名はinclude templateの略。
元々PukiWiki公式サイトにて似たようなプラグインが公開されていたようだが、既に配布ページが消失していたため、infoboxプラグイン同様自作することにした。
includeやincludexなどとの主な違いは以下の通り。
- 指定したキーワードを任意の文字に変更可能。
- デフォルト値を設定可能。
- 1ページ内で同一のテンプレートを複数回用いることができる。
- ループ対策済
上記の違いにより、より柔軟なページ編集が可能になっている。
- 指定したページの内容を取得して表示する。
- ページ内で指定されたキーワードを任意の内容に変更して表示できる。
- テンプレートの==noinclude==~==/noinclude==間は表示先のページに反映されない。
- オプションで追加のクラス指定が可能。
ダウンロード
最新: GitHub
日付 | バージョン | 備考 |
---|---|---|
2024-09-13 | 1.1.1 |
|
2024-08-31 | 1.1.0 |
|
2023-09-25 | 1.0.1 |
|
2023-07-19 | 1.0.0 |
|
セットアップ
- GitHubからダウンロードした「inctmp.inc.php」をPukiWikiのpluginディレクトリに放り込む。
プラグイン設定
定数 (PLUGIN_INCTMP_~) | 型 | 初期値 | 説明 |
---|---|---|---|
PAGE | string | ':config/plugin/inctmp' | テンプレートページのルート |
SAFEMODE | bool | false | テンプレートの編集制限チェックの有無 |
KEY_FORMAT | string | '{{{%s}}}' | テンプレート上のキーのフォーマット。%s部分が任意のキーになる |
DEFAULT_VALUE_REGEXP | string | '([^{}]+):([^{}]+)' | デフォルト値検索用の正規表現 |
使用方法
#inctmp(< テンプレート名 > [, オプション]){{ < キー > = < 値 > < キー > = < 値 > ︙ }}
オプション
- テンプレート名
- 必ず第一引数で指定する。
設定のルートページ以下が対象になるため、例えばhoge
を指定したら、実際のページは:config/plugin/inctmp/hoge
になる。 - class = < クラス名 >
- 表示したテンプレートを囲うdiv要素にクラスを追加する。
複数クラスを追加する場合は半角スペースをはさむ。 - <キー> = < 値 >
- テンプレート上の指定したキーを全て指定した値に置き換える。
最終的な表示で未指定のキーが残っている場合、そのキーを含む行がテンプレートから削除された状態で表示される。
イコールの後に改行を入れると、その下で複数行にわたって値を書くことができる。
テンプレート
テンプレート見本::config/plugin/inctmp/example
置き換えたい部分を{{{キー}}}
にしておく。{{{キー:デフォルト値}}}
のようにデフォルト値を設定することもできる。
使用例
テンプレート::config/plugin/inctmp/example
テンプレートのページと見比べると、どのように動作しているかがわかりやすいと思います。
複数行にわたって値を書くこともできます。
このように同じテンプレートを使用して別の表示も可能です。
ループ対策済み。
値の指定がない場合、テンプレート内でデフォルトの値が設定してあれば、自動的にそれが表示されます。
#inctmp(example){{ title = 使用例 color = red text = テンプレートのページと見比べると、どのように動作しているかがわかりやすいと思います。 複数行にわたって値を書くこともできます。 }} #inctmp(example,class=align-center){{ color = blue text = このように同じテンプレートを使用して別の表示も可能です。 ループ対策済み。 値の指定がない場合、テンプレート内でデフォルトの値が設定してあれば、自動的にそれが表示されます。 }}
備考
- 動作にはPHP8以上が必要になる。
コメント
コメントはありません。 コメント/自作プラグイン/inctmp