lsxプラグイン

Last-modified: Mon, 12 Mar 2018 11:29:41 JST (72d)

概要

ページをリストアップするプラグイン ls.inc.php の拡張

使い方

#lsx([オプション])
#lsx(接頭辞[,オプション])

option=bool なオプションは共通して、 option, option=true, option=on でそのオプションが有効になり、option=false, option=off で無効になります。

接頭辞およびオプションについて

prefix=接頭辞 or 接頭辞

リストするページ名の接頭辞。 省略時は カレントページ+"/" が指定されたことになる。また / を指定した場合はすべてのページにマッチする。

相対指定(例えば Plugin ページにおける ./lsx.inc.php/ == Plugin/lsx.inc.php/)も可能。

備考:どのオプションにもマッチしない文字列が指定された場合、接頭辞と認識されます。明示的に指定したい場合は prefix=接頭辞 と指定してください。#ls2 互換用。

num=数字

表示件数指定。正数は前からN件目、負数は後ろからN件目の意味。

num=1:10 で先頭1件目から10件目までの意味。num=-10:-1 で後ろ10件目から後ろ1件目までの意味。num=2: で先頭2件目から最後までの意味。 num=5+2 で先頭5件目から、そこから2件先まで(5,6,7)の意味。

depth=数字

下位階層指定。depth=1 が直下、depth=2 がそのまた下のイメージ。数字の指定は num と同じ書式。

hierarchy=bool

階層的リスト表示。デフォルトで有効。

tree=leaf|dir

末端ページ(leaf)、またはその逆(dir)のようなものを表示する。デフォルトは単純に無効。tree=dir は DOS コマンドの tree のようなニュアンス。

備考:ようなものなので、ページ名を意識して付けていない場合効果は薄いでしょう。

sort=name | date | reading | popular

ソートの方法。

  1. name - ページ名によるソート。デフォルト。
  2. date - 更新日付(上が最新)によるソート。hierarchy は強制的に off になる。
  3. reading - 「読み」によるソート。
  4. popular - 人気順によるソート。どの人気順を利用するかは popular オプションを使用する。

popular=today | yesterday | recent | total

sort=popular のオプション。

  1. today: 今日の人気
  2. yesterday: 昨日の人気
  3. recent: 最近(今日+昨日)の人気
  4. total: トータルでの人気

reverse=bool

逆順にソートする

non_list=bool

pukiwiki.ini.php で定義される $non_list によるリスト排除。デフォルトで有効。

注意 この機能により、ページ名が : で始まるような(デフォルトの $non_list 設定)ページで #lsx と記述しても何も表示されません。non_list=off オプションを使用してください。

except=正規表現

リストしないページを正規表現にて指定。prefixを取り除いたページ名で判定。

ヒント: マッチングには mbstring が利用可能な場合 mb_ereg をそうでない場合 ereg を使用します。 except=Test|sample → Test または sample を含むページを除く。

filter=正規表現

ページパターンをさらに正規表現で限定する。prefixを取り除いたページ名で判定。 prefix=/ (全ての意味) にしてこちらだけを使うのもあり。

ヒント: マッチングには mbstring が利用可能な場合 mb_ereg をそうでない場合 ereg を使用します。

date=bool

更新日付をページ名の横に表示。

new=bool

更新日付に対してNew!も表示。

備考:設定を再利用するため new プラグインを使用しています。

contents=(オプション)

ページ内の見出しもリストする。

備考:内部で contentsx プラグインを使用しているので、詳しいオプションは contentsx.inc.php を参照してください。オプションを複数指定する場合は contents=(num=1,depth=1) のようにできます。
include=(オプション)

ページを include する。

備考:この場合ページリストは中止され、include だけされます。
備考:内部で includex プラグインを使用しています。詳しいオプションは includex.inc.php を参照してください。オプションを複数指定する場合は include=(num=1:10,titlestr=off) のようにできます

linkstr=relative | pagename | basename | title | firsthead

リンク文字列を制御できます。

  1. relative | relname - 相対パス的文字列表示(デフォルト)。
  2. pagename | name | page | absolute - 絶対パス的文字列表示(ls2の動作)。
  3. basename | base - ページ階層化機能でのベース名部分、例:Note/Plugin/lsx.inc.php -> lsx.inc.php。
  4. title - 各ページの TITLE: 行で指定された文字列。
  5. firsthead | headline - 各ページの第一見出しで指定された文字列

備考:title と headline は contentsx.inc.php を使用します。インストールしておいてください。TITLE: とは PukiWiki Plus! において HTML のタイトル<title></title> を設定する書式です。

link=page | anchor | off

リンク形式。

  1. page - 通常通りページへのリンク
  2. anchor - #includex で取り込んだページタイトルへのアンカー。#lsx(include) 用。
  3. off - リンクしない。

tag=文字列

tag.inc.php で付けたタグを指定。

tag=タグ1^タグ2 とすることで、共通ページを(積集合 ∩ のイメージ)、tag=タグ1-タグ2 とすることで差ページ(差集合のイメージ)をリスト

備考:hierarchy, prefix は強制的に off になります。
備考: lsx のタグ機能はおまけのようなもので、過去のなごりに過ぎません。taglist.inc.php を使用してください。

newpage=on | off

on で新規作成ページのみを、off で新規作成ページ以外をリスト。デフォルトでは単純にスルー。

備考:backup ファイルが作成されているかどうかで新規かどうかを判断しています。

next=bool

ベータ機能

num オプションで件数を制限した場合に、次のN件、前のN件を表示するためのリンクを表示する

動作例(仕様)

以下のページ群があったとする。

   test
   test/a
   test/a/aa
   test/a/aa/aaa
   test/a/bb/bbb
   test/c/cc/ccc

test というページで記述したものとする。[] はリンクの意。

#lsx
出力)
   [a]
       [aa]
           [aaa]
       bb
           [bbb]
   c
       cc
           [ccc]

#lsx(prefix=test/a/)
出力)
   [aa]
       [aaa]
   bb
       [bbb]

#lsx(hierarchy=off)
出力)
   [a]
   [a/aa]
   [a/aa/aaa]
   [a/bb/bbb]
   [c/cc/ccc]

#lsx(tree=leaf,hierarchy=off)
出力)
   [a/aa/aaa]
   [a/bb/bbb]
   [c/cc/ccc]

#lsx(tree=dir)
出力)
   [a]
       [aa]
       bb
   c
       cc

#lsx(depth=1)
出力)
   [a]

#lsx(depth=1:2)
出力)
   [a]
       [aa]

#lsx(depth=2+1)
出力)
   a (←注目)
       [aa]
           [aaa]
       bb
           [bbb]
   c
       cc
           [ccc]

#lsx(num=1:2)
出力)
   [a]
       [aa]

#lsx(num=-1:-2)
出力)
   a
       bb
           [bbb]
   c
       cc
           [ccc]

#lsx(num=(1:2,4))
出力)
   [a]
       [aa]
       bb
           [bbb]

#lsx(except=cc|aaa$)
出力)
   [a]
       [aa]
       bb
           [bbb]

#lsx(date)
出力)
   [a] 2004-10-10 (日) 23:03:05
       [aa] 2004-11-30 (金) 12:11:43
           [aaa] 2004-03-03 (月) 16:04:05
       bb
           [bbb] 2004-12-26 (水) 23:55:55
   c
       cc
           [ccc] 2004-10-11 (月) 01:02:04

#lsx(sort=date,date,new)
出力)
   [a/bb/bbb] 2004-12-26 (水) 23:55:55 New
   [a/aa] 2004-11-30 (金) 12:11:43
   [c/cc/ccc] 2004-10-11 (月) 01:02:04
   [a] 2004-10-10 (日) 23:03:05
   [a/aa/aaa] 2004-03-03 (月) 16:04:05

#lsx(sort=date,new)
出力)
   [a/bb/bbb] New
   [a/aa]
   [c/cc/ccc]
   [a]
   [a/aa/aaa]

#lsx(depth=1:2,contents=(num=1))
出力)
   [a]
       見出し
       [aa]
           見出し

#lsx(num=1:2,include)
出力)
#includex(a)
#includex(a/aa)
の結果が出力される。

プラグインについて

このプラグインsonots様のlsx.inc.phpを使用しています。