追加プラグイン/contentsx

2018-09-21 (金) 20:49:56

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

追加プラグイン/contentsx

 

説明

ページの目次を作成するプラグインです。

本体組み込み #contents との違い

  • 設置行以降の見出しのみリストする機能
  • MenuBar に設置しても有効
  • 見出しレベル指定機能
  • 表示件数指定機能
  • 正規表現による見出しのフィルタ機能
  • 正規表現による見出しの除外フィルタ機能
  • キャッシュ機能
  • リンク形態指定機能(リンクしないなど)
  • 固定アンカ必須

書式

#contentsx(オプション)

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

  • fromhere=bool
    • #contentsx がある行以降の見出しのみをリストする。デフォルトで有効。

      備考:page オプションで別ページを指定した場合は強制的に off になります。
  • include=bool
    • #include プラグインで取り込んでいるページとその見出しも扱う。
      デフォルトで有効。
  • hierarchy=bool
    • 階層的表示。デフォルトで有効。
  • compact=bool
    • リストのレベルを詰める。デフォルトで有効。使用例参照のこと。
  • 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 と同じ書式。includeページタイトルはレベル0になる。
      compact=on,off に関わらず絶対値指定。
  • except=正規表現
    • リストしない見出しを正規表現にて指定。

      ヒント: ereg で判定を行います。
      except=Test|sample → Test または sample を含む見出しを除く。
  • filter=正規表現
    • リストする見出しを正規表現で限定する。

      ヒント: ereg で判定を行います。
  • link=on|off|anchor|page
    • リンク形態指定。デフォルトは on。

      on は現在ページへは link=anchor、page オプションで別ページが指定されていた場合 link=page。

      anchor は強制的にアンカーのみ使用。

      page は強制的にページ名も含めたリンク。

      off はリンクしない。

      ヒント: link=anchor で include したページに対してもページ内アンカーによるリンクを貼れます。include にはもともと対応していますが、類似のものにも対応できると思います。link=page はついでです。
  • page=ページ名
    • 見出しリストを行うページを指定。デフォルトはカレントページ。
  • cache=on|off|reset
    • キャッシュの利用。デフォルトで有効。reset でキャッシュの強制再作成。

動作例

次のような「とあるページ」があったとします。

**AA
#contentsx
*B
***BBB
**BC
#include(別のページ)
*D

「別のページ」の内容は次のとおりだったとします。

*1
#contentsx
**11

「とあるページ」の #contetnsx が変更されると思ってください。


まず参考に #contents

#contents
  • AA
  • B
    • BBB
    • BC
  • D

#contentsx のデフォルト動作

#contentsx // == #contentsx(include,fromhere,compact,hierarchy)
  • B
    • BBB
    • BC
  • 別のページ
    • 1
      • 11
  • D

#contentsx(include=off,fromhere=off,compact=off,hierarchy=off)
  • AA
  • B
  • BBB
  • BC
  • D

#contentsx(include=off,fromhere=off,compact=off,hierarchy) // 以下 hierarchy 略
  • AA
  • B
    • BBB
    • BC
  • D

#contentsx(include=off,fromhere=off,compact) // compact
  • AA (<-注目)
  • B
    • BBB (<-注目)
    • BC
  • D

完全に #contents と同じものはないが、compact としてはこの挙動が正解だと思っている(#contents の場合は先頭要素だけが compact されている)。


#contentsx(include=off,fromhere,compact=off) // fromhere
  • B
    • BBB
    • BC
  • D

#contentsx(include,fromhere=off,compact=off) // include
  • AA
  • B
    • BBB (表現できない。もう1段下がる)
    • BC
  • 別のページ
    • 1
      • 11
    • D

include がある場合、全体的に1段階下がる。


#contentsx(depth=1:2,compact=false)
  • B
    • BC
  • 1
    • 11
  • D

include が depth=0


#contentsx(depth=1:2) // compact
  • B
    • BC
  • 1
    • 11
  • D

#contentsx(depth=1:2,filter=B)
  • B
    • BC

#contentsx(depth=1:2,except=B)
  • 1
    • 11
  • D

#contentsx(depth=1:2,except=B,num=1:2)
  • 1
    • 11

#contentsx(page=別のページ)
  • 1
    • 11