追加プラグイン/lsx

2018-09-21 (金) 21:12:10

カテゴリ:プラグイン 追加

追加プラグイン/lsx

 

説明

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

標準プラグイン ls2 との違い

  • 相対パス的表示。
  • 階層的リスト表示。
  • 階層指定。
  • 表示件数指定
  • pukiwiki.ini.php で設定する $non_list の利用。
  • 正規表現によるページのフィルタ
  • 正規表現による除外ページ指定
  • 更新日時表示
  • New 表示
  • 更新日時によるソート
  • link オプション消去
  • 複数ページ include

書式

#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=5+2 で先頭5件目から、そこから2件先まで(5,6,7)の意味。
  • 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 をそうでない場合 ereg を使用します。
      except=Test|sample → Test または sample を含むページを除く。
  • filter=正規表現
    • ページパターンをさらに正規表現で限定する。prefixを取り除いたページ名で判定。
      prefix=/ (全ての意味) にしてこちらだけを使うのもあり。

      ヒント: マッチングには mbstring が利用可能な場合 mb_ereg をそうでない場合 ereg を使用します。
  • date=bool
    • 更新日付をページ名の横に表示。
  • new=bool
    • 更新日付に対してNew!も表示。

      備考:設定を再利用するため new プラグインを使用しています。
  • contents=(オプション)
    • ページ内の見出しもリストする。

      備考:内部で contentsx プラグインを使用しているので、詳しいオプションは ../contentsx を参照してください。オプションを複数指定する場合は contents=(num=1,depth=1) のようにできます。contents=(num=1,depth=(1,2)) のように入れ子もできます*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件を表示するためのリンクを表示する

動作例

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

  • 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 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)

の結果が出力される。