自作プラグイン/infobox
テンプレートからインフォボックスを作成するプラグイン
infobox.inc.php | |
---|---|
製作者 | kanateko |
ライセンス | GPLv3 |
バージョン | 1.1.0 |
動作確認 | PukiWiki 1.5.4 - 1.5.4 |
最終更新 | 2024-09-13 |
指定したテンプレートページを読み込み、{{{キー}}}を指定した値に置き換えて表示するプラグイン。当Wikiでは元々styleプラグインでinfoboxクラスを指定してインフォボックス (風のテーブル) を作成していたが、それをプラグインとして独立させたものになる。また、このプラグインを使ってインフォボックスを作成すれば、修正が必要な場合にテンプレートを変更するだけで良くなるので、メンテナンス性が向上する。
- このプラグインでできること
- テンプレートを読み込んで表示する
- 事前に設定しておいたキーを指定した値に置き換えて表示できる
- 各キーのデフォルト値を設定可能。
- ==noinclude== ~ ==/noinclude== で囲った部分はページに表示しない
- 使用していないキーがある行は自動的に非表示になる
- 正規表現で指定した文字列を含む行を非表示にできる
- テンプレートの読み込みでループが発生する場合は回避する
- オプションで任意のクラスを追加可能
- 使用にあたってテンプレートを凍結する必要があるかを設定可能
- テンプレートを読み込んで表示する
ダウンロード
最新: GitHub
日付 | バージョン | 備考 |
---|---|---|
2024-09-13 | 1.1.0 |
|
1.0.1 |
| |
2024-09-01 | 1.0.0 |
|
2023-07-25 | 0.6.0 |
|
2022-03-19 | 0.5.0 |
|
2021-08-04 | 0.4.0 |
|
0.3.0 |
| |
0.2.0 |
| |
2021-08-03 | 0.1 |
|
セットアップ
- ダウンロードした「infobox.inc.php」をpluginフォルダに入れる。
- (任意) skinフォルダの「pukiwiki.css」に以下の内容を追加する。
- スマホ表示向けメディアクエリの外に以下を追加
.infobox { float: right; }
- スマホ表示向けメディアクエリの中に以下を追加
.infobox { float: none; } .infobox .style_table { width: 100%; } .infobox:not(.nozoom) img { width: 100%; }
- スマホ表示向けメディアクエリの外に以下を追加
プラグインの設定
- TEMPLATE_PATH
- デフォルトのテンプレートページ。各テンプレートの親階層にあたる。初期設定は「:config/plugin/infobox/」
- ENABLE_SAFE_MODE
- 使用するにあたってテンプレートページを凍結する必要があるかどうか。初期設定はfalse
その他は基本的に変更しないように。
使用方法
インフォボックスの作成
#infobox([テンプレート名][,nozoom][,class=xxx][,except=xxx]){{ <キー1>=<値> <キー2>=<値> ︙ }}
テンプレート名を指定すると「<デフォルトのテンプレートページ>/<テンプレート名>」が呼び出される。
例えば、このページのインフォボックスではテンプレート名に「plugin」を指定している。この場合は「:config/plugin/infobox/plugin」がテンプレートとして呼び出されている。
キーと値の指定でイコールの後に改行をした場合、その下で複数行にわたって値を書ける。別のキーの指定があった時点で値は終了する。
例: #infobox(...){{ key1 = 複数行にわたって 「key1」の値を 指定できる key2 = val2 ︙ }}
オプション
- nozoom
- スマホ表示時に画像を最大化しないようにする *1
- class=xxx
- インフォボックスに任意のクラスを追加する
- except=xxx
- 正規表現で指定した文字列を含む行を非表示にする
テンプレートの作成
:config/plugin/infobox/pluginを参照。
置き換える部分は「{{{キー}}}」このように書く。デフォルト値を設定したい場合は「{{{キー:デフォルト値}}}」このように書く。
「==noinclude== ~ ==/noinclude==」で囲まれた部分はインフォボックス作成時には出力されない。
使用例
使用例として、このページのインフォボックス部分のソースを表示しておく。
ページ側
#infobox(plugin){{ name=infobox.inc.php pukiwiki=1.5.3 ver=0.2 update=2021-08-04 }}
テンプレート側
|>|~{{{name}}}|h |RIGHT:100|180|c |>|CLASS(infobox-image):CENTER:&ref({{{image}}},,300x0);| |~製作者|kanateko| |~ライセンス|GPLv3| |~バージョン|{{{ver}}}| |~動作確認|PukiWiki {{{pukiwiki}}} ~| |~最終更新|{{{update}}}|
※CLASS(): の書式は独自に追加しているもの
追加したい機能
テンプレートページを凍結していないと使えなくする設定v0.3で追加正規表現で指定した文字列を含む行を除外する機能v0.4で追加
備考
nozoomオプションについて
元々このプラグインは公開する予定がなかった (デザインに依存する部分がある) ため、完全に当Wikiで使うための設定でしかない。動作としては「class=nozoom」を指定した場合と同じなのだが、恐らく使うことが多くなるだろうと思われたため短く書けるようにした。公開用のを別に作ってもよかったのだが、バージョン管理が面倒くさくなりそうなのでやめた。
テンプレートについて
「インフォボックス作成用プラグイン」と銘打っているものの、実際のところはインフォボックスの作成以外にも使える。要は一部を置き換え可能なincludeプラグインなので、infoboxクラスで囲う処理を取り除けば汎用的に使うことができる。そのうちinclude_templateプラグイン*2として分離するかもしれない。
追記:inctmpプラグインを作成した。
コメント
最新の10件を表示しています。 コメントページを参照