自作プラグイン/plist

2024-10-15 (火) 15:19:59

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

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

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

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

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

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

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

ダウンロード

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

日付バージョン備考
2024-10-151.1.1
  • styleにplainを追加
  • plain用のオプションとしてseparatorを追加
2024-09-211.1.0
  • キャッシュ方法を改善し表示を高速化
1.0.8
  • 一覧作成時に存在しないページを除外するよう修正
2024-09-081.0.7
  • HTMLタグがそのまま表示されることがある問題を修正
2024-08-291.0.6
  • regexp使用時にコメントページをデフォルトで除外
2024-08-281.0.5
  • flex用のsearchオプションを追加
2024-08-271.0.4
  • ソート方法を最適化
2024-08-121.0.3
  • ソートのバグ修正
  • テンプレート読み込み時に不要な行が入る問題を修正
2024-08-081.0.2
  • ページを正規表現で指定する機能を追加
2024-07-261.0.1
  • n番目の画像を抽出する機能を追加
2024-07-251.0.0
  • 初版作成

プラグイン設定

定数初期値説明
DEFAULT_STYLEstring'table'デフォルトの一覧表示形式
DEFAULT_SEPARATORstring'\n'デフォルトのセパレータ (plain用)
TEMPLATE_PATHstring':config/plugin/plist/'テンプレート設定の親ページ
REGEXP_EXCEPTIONstring'/^(Comments|コメント)\//'正規表現でページ指定時の除外設定
PLIST_CACHE_DIRstringCACHE_DIR . 'plist/'キャッシュを保存するディレクトリ

使用方法

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

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

オプション

style =
一覧の表示形式。table、flex、plainから選択可能。デフォルトはtable。
tag =
一覧表示するページをタグで指定する。'|'で区切って複数指定も可能。指定方法はtaglistプラグイン等と同じ。例:tag = プラグイン^自作|プラグイン^追加
root =
一覧表示するページの親ページを指定する。'|'で区切って複数指定も可能。例:root = 自作プラグイン
regexp =
一覧表示するページを正規表現で指定する。例:regexp = ^:config/
except =
一覧表示から除外するページを指定する。正規表現を使用。例:except = ^コメント/
separator=
plain専用。各要素の区切り。デフォルトは\n (改行)。
item-width =
flex専用。各アイテムの幅を指定する。指定方法はflexプラグインと同じ。例:item-width = 200
justify-content =
flex専用。各アイテムの整列方法を指定する。指定方法はflexプラグインと同じ。例:justify-content = center
search
flex専用、各要素内のページ名を検索できる検索バーを設置する。
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}}}

使用例

プラグイン名バージョンサムネイル
acv1.6ac.jpg
attachlistv1.1attachlist2.jpg
barv0.9
boxv3.0.0box2.jpg
calcv1.0.0
cardv3.3blogcard.jpg
datatablev1.0.1datatable.jpg
expandv1.2
fav1.4fa.jpg
figv1.4fig.jpg
flexv1.5.0flexbox.jpg
galleryv2.8gallery.jpg
getcellv1.1.3
inc_infoboxv1.1.1
inc_sectionv1.0.5
inctmpv1.1.1inctmp.jpg
infoboxv1.1.0
lytv1.0.0lyt.jpg
mailformv1.0mailform.jpg
markerv1.1marker.jpg
mathv1.0.1
newtplv1.3.1newtpl.jpg
notev0.4note.jpg
num_formatv1.0.0
plistv1.1.1
selectv1.3select.jpg
sliderv1.2.2slider.jpg
slideshowv0.8
spoilerv1.0.1spoiler.jpg
steamapiv1.1.8steamapi.jpg
stepv0.6step.jpg
swiperv1.1.3swiper.jpg
switchv1.0.1switch.webp
tabv2.3.3tab.jpg
tableifv0.1tableif.jpg
tooltipv0.6tooltip.jpg
twitterv1.1
ulv0.2
youtubev1.5
#plist(root=自作プラグイン){{{{
|~プラグイン名|~バージョン|~サムネイル|h
|BOLD:|||c
|{{{_baselink}}}|{{{infobox:ver,replace=v%s}}}|{{{image,1,nolink,100x}}}|
}}}}

追加したい機能

備考

  • 1度表示した内容はページごとにキャッシュされるので、2回目以降の表示は高速化する。キャッシュはプレビューで表示するか、Wiki内のいずれかのページが更新される (recentが更新される) と新たに作成される。

コメント

コメントはありません。 コメント/自作プラグイン/plist