RailsやMiddleman で自動的に目次を作るにはどうすればいいのか
せっかくなのでブログでも共有しておく。
@AknEp あおかんオススメのmiddleman使って見てるんだけど、ページ内のh2要素一覧から自動で目次作るような機能 or ハックできそうなヒントとかないですかね?ぐぐらびりてぃ低くて泣いてる
— (´・ω・`){;:} rm -rf ~ (@syonbori) 2014, 10月 7
お世話になってる先輩が泣いているのは忍びなかったので適当にサンプルコードをつくった。
考え
リポジトリにも書いたんだけど、以下の様な感じで考えて作った。何かの参考になるかもしれないので公開しておく。
目次の責任範囲はどこにある?
- テンプレートエンジン、ジェネレータ
- そういう考え方もある
- h2の代わりになるタグをヘルパで定義して使う
- Dirty! Dirty! Dirty!
- 再利用性低すぎ!
- レイアウトファイル
- あ、行けそう
ということでレイアウトファイルが目次を作るのはそれなりにアリだと思います。
拡張の仕方
- レイアウトファイルの中の処理をゴリゴリ書く
- レイアウトファイルの中の処理をHelperに切り出す
例:ヘッダへのリンクが貼りたい
- ヘッダにname要素やid要素をつける (どうせセマンティック的には自分でつけるべき)
- パースした方でゴリ押し