自作プラグイン/inctmp

2024-09-13 (金) 22:47:59

カテゴリ:プラグイン 自作 追加

inctmp.jpg

取得したテンプレートの一部を置き換えて表示するプラグイン

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-131.1.1
  • 複数行の値でのコメントアウトに対応
2024-08-311.1.0
  • 各キーのデフォルト値を指定する機能を追加
  • 値を複数行にわたって書く機能を追加
2023-09-251.0.1
  • 出力時の余分な改行を削除
2023-07-191.0.0
  • 初版作成

セットアップ

  1. GitHubからダウンロードした「inctmp.inc.php」をPukiWikiのpluginディレクトリに放り込む。

プラグイン設定

定数 (PLUGIN_INCTMP_~)初期値説明
PAGEstring':config/plugin/inctmp'テンプレートページのルート
SAFEMODEboolfalseテンプレートの編集制限チェックの有無
KEY_FORMATstring'{{{%s}}}'テンプレート上のキーのフォーマット。%s部分が任意のキーになる
DEFAULT_VALUE_REGEXPstring'([^{}]+):([^{}]+)'デフォルト値検索用の正規表現

使用方法

#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