Nanocでディレクトリ構造通りのリンクを表示する

Sphinxのtoctreeっぽいことがやりたかったのでヘルパーを作った。
しかし挙動の違うものになったので名前変えた方がいいかもしれない。ところでtoctreeってどういう意味なんだろう。

とにかく「ディレクトリ構造 = 文書構造」ということができるようになった。

<%= toctree %>

と書くと現在のディレクトリを基準にツリー状のリンクリストが表示される。

Nanocのテストハーネスを作るのがしんどかったので、テスト書いてないけど今考えるとモックとか使えばよかったのかも。

ディレクトリ構造
  • /
    • dir_a
      • index.md
      • x.md
      • y.md
      • z.md
    • dir_b
      • index.md
    • dir_c
      • index.md

実装の都合上各ディレクトリにindex.mdが必要。

ルートから表示
<%= toctree :maxdepth => 1, :from => '/' %>

fromオプションでidentifierを指定すると現在の位置に関係なく、その子要素からのリストを表示する。
maxdepthを指定すると表示する階層を制御できる。

レイアウトファイルなどでメニューを表示したいときなどに。

指定したディレクトリのみを含む
<%= toctree '/dir_a/', '/dir_b/' %>

ディレクトリを複数指定できる。

含まないディレクトリやアイテムを指定する
<%= toctree '/dir_a/', :except => ['/dir_a/y/', '/dir_a/x/'] %>

:exceptオプションに配列でidentifier指定する。

この投稿へのコメント

  1. さく said on 2011年9月27日 at 9:04 AM

    tocといえばtable of contentsとゆーことで。

  2. akahige said on 2011年9月27日 at 9:57 AM

    なるほど!

コメントを残す

メールアドレスが公開されることはありません。

この投稿へのトラックバック

トラックバックはありません。

トラックバック URL