ChienomiChienomiPureDocのTOC機能PureDocにTOC機能をつけた。これまでPureDocで生成されたドキュメントにはドキュメント内リンクのためのID振りがなかった。そのため、長文になると結構たどりにくい。文書を参照してもらうのが難しかった。そこで暫定的にHTMLに直接IDを書いたあと、更新に備えてその機能を急造した。今回はかなり書き直した。ヘッダー関連のメタメソッドを書き換えただけではない。専用のクラスまで書き足した。TOCクラスはStructだが、TOCContainerはArrayのサブクラスとなっている。これは、TOCを作るためにストックされたヘッダ情報を展開するためのメソッドをもたせるためだ。ネストした構造(例えばリストでネストさせる)のTOCを作るための展開用メソッドはなかなか作れない。h1から順にあるわけでもなく、例えばh3->h4->h2ということもありうる。ネストした状態でこれを処理するのはかなり難しい。徐々に深くなる前提にしてしまわない限りどうやって開き、どうやって閉じるかは難しい。インデックスの1増減の問題が激しく大変だった。Reasonsetのサイトは適用されている。整頓されていない状態だが、あまりにも使いやすかったため、実際に全体に取り入れてしまっている。IDの付け方は将来的には変更されるだろう。現在のままではコンフリクトする可能性が高い。PureDocの変更によって実装された(ReasonSiteでの採用はテンプレートも編集された)ため、既にGitHubには変更が反映されている。