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

指定したページの一覧をテンプレートに沿って作成するプラグイン

plist.inc.php
製作者kanateko
バージョン1.0.3
動作確認PukiWiki 1.5.4 - 1.5.4
最終更新2024-08-12

タグもしくは親ページを指定し、対象のページ一覧をテンプレートに沿った形で作成するプラグイン。

一覧の表示形式はテーブルかフレックスボックスかで選択できる。また、テンプレートはプラグインの引数として直接設定できるほか、あらかじめ用意した別ページにあるテンプレートを読み込むいこともできる。

テンプレートを作成する際、各ページのインフォボックスやセクション、テーブルのセルや画像を抽出することができる。

  • 指定したページの一覧を作成する。
    • タグでの指定 (taglistと同様) か親ページの指定が可能。
    • 表示形式はテーブルもしくはフレックスボックス。
  • 各ページの内容を抽出して一覧に表示可能。
    • インフォボックス、セクション、テーブルセル、画像を抽出できる。
  • キャッシュに対応しているため、2回目以降の表示を高速化できる。

ダウンロード

このプラグインは現在公開されていません。

日付バージョン備考
2024-08-121.0.3
  • ソートのバグ修正
  • テンプレート読み込み時に不要な行が入る問題を修正
2024-08-081.0.2
  • ページを正規表現で指定する機能を追加
2024-07-261.0.1
  • n番目の画像を抽出する機能を追加
2024-07-251.0.0
  • 初版作成

プラグイン設定

定数初期値説明
DEFAULT_STYLEstring'table'デフォルトの一覧表示形式
TEMPLATE_PATHstring':config/plugin/plist/'テンプレート設定の親ページ
PLIST_CACHE_DIRstringCACHE_DIR . 'plist/'キャッシュを保存するディレクトリ

使用方法

#plist(<タグ指定or親ページ指定>[,オプション]){{{{
[テンプレート]
}}}}

テンプレートを直接設定する場合はマルチライン部分を使用する。なお、テンプレート内で三重の波括弧を使用するため、マルチライン部分の波括弧は四重以上にする必要がある。

オプション

style =
一覧の表示形式。tableもしくはflex。デフォルトはtable。
tag =
一覧表示するページをタグで指定する。'|'で区切って複数指定も可能。指定方法はtaglistプラグイン等と同じ。例:tag = プラグイン^自作|プラグイン^追加
root =
一覧表示するページの親ページを指定する。'|'で区切って複数指定も可能。例:root = 自作プラグイン
regexp =
一覧表示するページを正規表現で指定する。例:regexp = ^:config/
except =
一覧表示から除外するページを指定する。正規表現を使用。例:except = ^コメント/
item-width =
flex専用。各アイテムの幅を指定する。指定方法はflexプラグインと同じ。例:item-width = 200
justify-content =
flex専用。各アイテムの整列方法を指定する。指定方法はflexプラグインと同じ。例:justify-content = center
class =
追加のクラスを指定する。
template =
読み込むテンプレートを指定する。例えばtemplate = hogeと指定した場合、:config/plugin/plist/hogeの内容がテンプレートとして読み込まれる。テンプレートは使用方法で示したようにマルチライン部分で直接設定することもできる。

テンプレートの設定方法

テンプレートの設定方法はinfoboxプラグインやinctmpプラグインに近い。三重の波括弧でキーを囲い、その部分が表示時に各ページの指定した内容に置き換えられる。

キーは抽出したい内容によってinfobox、section、cell、imageなどが使用でき、キーの後ろに「:」で区切ってオプションを記述できる。また、その他にも「_page」「_pagelink」「_base」「_baselink」といったキーを指定し、ページ名やベースネーム、それらのリンクに置き換えることもできる。

table形式の場合はヘッダーや列の設定を含め、テンプレートとなる行を書く。flex形式の場合は各アイテムのテンプレートを書く。

例:table形式の場合

|~プラグイン名|~バージョン|h
|CENTER:|CENTER:|c
|{{{_pagelink}}}|{{{infobox:ver}}}|

例:flex形式の場合

{{{image:1,nolink,200x}}}
{{{_pagelink}}} 

インフォボックス

各ページのインフォボックスの内容を抽出する。記述方法は{{{infobox:<オプション>}}}。オプション部分はinc_infoboxプラグインのオプション指定と同じ。

例:{{{infobox:ver,replace=v%s}}}

セクション

各ページの内容を見出し単位で抽出する。記述方法は{{{section:<オプション>}}}。オプション部分はinc_sectionプラグインのオプション指定と同じ。

例:{{{section:ダウンロード,num=2:5}}}

テーブルセル

各ページにある表の内容をセル単位で抽出する。記述方法は{{{cell:<オプション>}}}。オプション部分はgetcellプラグインのオプション指定と同じ。

例:{{{cell:filter=1.0.0,col=3}}}

画像

各ページにあるn番目の画像を抽出する。記述方法は{{{image:<番号>,<オプション>}}}。オプション部分はrefプラグインのオプション指定と同じ。

例:{{{image:1,nolink,200x}}}

使用例

#plist(root=自作プラグイン){{{{
|~プラグイン名|~バージョン|~サムネイル|h
|BOLD:|||c
|{{{_baselink}}}|{{{infobox:ver,replace=v%s}}}|{{{image,1,nolink,100x}}}|
}}}}

追加したい機能

コメント

コメントはありません。