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

2011-09-21
2011-09-21
かなり古い記事です。現在も有効な内容であるかどうか分かりませんのでご注意ください。

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指定する。

Profile

フルスタック気味のフリーランスプログラマー。

どちらかと言うと得意はインフラ構築とサーバーサイドプログラミングですが、フロントエンドもぼちぼちやっています。

最近の興味範囲はWordPress、AWS、サーバーレス、UIデザイン。

愛車はセロー。カメラはペンタックス。旅好きです。横浜在住。