• 追加された行はこの色です。
  • 削除された行はこの色です。
#author("2018-09-21T21:12:10+09:00","default:kanateko0404","kanateko0404")
#author("2022-05-20T05:52:33+09:00;2018-09-21T21:12:10+09:00","default:kanateko","kanateko")
&tag(プラグイン,追加);
*追加プラグイン/lsx [#m326a5bc]
#contentsx
#br
*説明 [#o45abdfa]

ページをリストアップするプラグイン ls.inc.php の拡張です。ls2.inc.php の拡張でもありそれの拡張であった旧 ls2_1.inc.php の拡張でもあります。

**標準プラグイン ls2 との違い [#k9cb86b6]
-相対パス的表示。
-階層的リスト表示。
-階層指定。
-表示件数指定
-pukiwiki.ini.php で設定する $non_list の利用。
-正規表現によるページのフィルタ
-正規表現による除外ページ指定
-更新日時表示
-New 表示
-更新日時によるソート
-link オプション消去
-複数ページ include

*書式 [#jcb5f796]
 #lsx([オプション])

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

-prefix=文字列
--リストするページ名の接頭辞。
省略時はカレントページ+"/"が指定されたことになる。
また / を指定した場合はすべてのページにマッチする。
相対指定(例えば Plugin ページにおける ./lsx.inc.php/ = Plugin/lsx.inc.php/)も可能。 

-num=数字
--表示件数指定。正数は前からN件目、負数は後ろからN件目の意味。~
num=1:10 で先頭1件目から10件目までの意味。num=-10:-1 で後ろ10件目から後ろ1件目までの意味。num=2: で先頭2件目から最後までの意味。~
//((num=:10 と書くこともできる。num=10:1 も同義。)) ((num=-10: と同義。num=-1:-10 とも書いても同じ。))~
num=5+2 で先頭5件目から、そこから2件先まで(5,6,7)の意味。~
//((num=5-2 で先頭5件目から、そこから2件前まで(3,4,5)の意味。))((さらに num=(1,3,5+2) のような表記も可能。))

-depth=数字
--下位階層指定。数字の指定は num と同じ書式。

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

-tree=leaf|dir
--末端ページ(leaf)、またはその逆(dir)のようなものを表示する。デフォルトは単純に無効。tree=dir は DOS コマンドの tree のようなニュアンス。~
備考:ようなものなので、ページ名を意識して付けていない場合効果は薄いでしょう。

-sort=name|date|reading
--ソートの方法。name はページ名によるソート。date は更新日付(上が最新)によるソート。デフォルトは name。reading は「読み」によるソート。~
備考:sort=date の場合、hierarchy は強制的に off になります。~
備考:「読み」の設定は[[:config/PageReading]] で行います。kakasi または chasen を用いた漢字の読みカナ自動設定は [[dev:PukiWiki/1.4/マニュアル/一覧表示の五十音順分類]] 参照。

-reverse=bool
--逆順にソートする

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

-except=正規表現
--リストしないページを正規表現にて指定。prefixを取り除いたページ名で判定。~
ヒント: マッチングには mbstring が利用可能な場合 [[mb_ereg>http://us2.php.net/mb_ereg]] をそうでない場合 [[ereg>http://us2.php.net/ereg]] を使用します。
except=Test|sample → Test または sample を含むページを除く。

-filter=正規表現
--ページパターンをさらに正規表現で限定する。prefixを取り除いたページ名で判定。
prefix=/ (全ての意味) にしてこちらだけを使うのもあり。~
ヒント: マッチングには mbstring が利用可能な場合 [[mb_ereg>http://us2.php.net/mb_ereg]] をそうでない場合 [[ereg>http://us2.php.net/ereg]] を使用します。

-date=bool
--更新日付をページ名の横に表示。

-new=bool
--更新日付に対して&color(#ff0000){New!};も表示。~
備考:設定を再利用するため new プラグインを使用しています。

-contents=(オプション)
--ページ内の見出しもリストする。~
備考:内部で contentsx プラグインを使用しているので、詳しいオプションは [[../contentsx]] を参照してください。オプションを複数指定する場合は contents=(num=1,depth=1) のようにできます。contents=(num=1,depth=(1,2)) のように入れ子もできます((pukiwiki プラグインは csv チックな入力 "contents=num=1,depth=1" をサポートしますが、"contents="num=1,2",depth=1" のように入れ子にできなかったので () サポートをわざわざ作った。))。

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

-linkstr=relative|absolute|basename|title|headline
--リンク文字列を制御できます。~
relative で相対パス的文字列表示(デフォルト)。~
absolute で絶対パス的文字列表示(ls2の動作)。~
basename でページ階層化機能でのベース名部分、例:Note/Plugin/lsx.inc.php -> lsx.inc.php。~
title で各ページの TITLE: 行で指定された文字列。~
headline で各ページの第一見出し。~
備考:title と headline は [[../contentsx]] を使用します。インストールしておいてください。TITLE: とは PukiWiki Plus! において HTML のタイトル<title></title> を設定する書式です。

-link=page|anchor|off
--リンク形式。link=page は通常通りページへのリンク。link=anchor は #lsx(include) 用。取り込んだページタイトルへのアンカー。link=off はリンクしない。

''ベータ機能''

-tag=文字列
-- /tag.inc.php で付けたタグを指定。tag=タグ1^タグ2 とすることで、共通ページを(積集合 ∩ のイメージ)、tag=タグ1-タグ2 とすることで差ページ(差集合のイメージ)をリスト~
備考:hierarchy, prefix は強制的に off になります。ベータ機能です。たぶん将来的には別のプラグインに移送されます。

''アルファ機能''

-newpage=on|except~
--on で新規作成ページのみを、except で新規作成ページ以外をリスト。デフォルトでは単純に無効。~
備考:backup ファイルが作成されているかどうかで新規かどうかを判断しています。

-next
--num オプションで件数を制限した場合に、次の5件、前の5件を表示するためのリンクを表示する
**動作例 [#ac62520e]

以下のページ群があったとする。
-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]
-c
--cc
---[ccc]
----
 #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 &color(#ff0000){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] &color(#ff0000){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)

の結果が出力される。