-
kmutoさんのEPUBで索引を作るサンプル https://github.com/kmuto/review-index-sample がすばらしく、自分なりにいじってみています。 現在、索引でリンクするときの文字列 (通常の紙の索引であればページ番号になるところ) に、□が使われています。 ジャンプする前に、大まかでもいいので、どの辺りに書いてあるのか分かりたいと思い、章番号になるように改造してみました。 コード: Nyoho/review-index-sample@d049640 スクリーンショット: 現在の方法
やりたいことこれが、 章単位 ではなく、idx/hdixがある (存在すれば) セクション番号、サブセクション番号 (例えば 2.1 など)が取ってこられるなら、もう少しどの辺りに書いてあるのかが細かくなってうれしいと考えます。 質問(存在すれば) セクション番号、サブセクション番号を索引のリンク文字列にする方法はどういうアプローチを取れば実装できるでしょうか。 |
Beta Was this translation helpful? Give feedback.
Replies: 2 comments 1 reply
-
なるほど。 つまり、SAX的に考えるのがよいかと思います。 review/lib/review/htmlbuilder.rb Lines 165 to 186 in e7c7431 hidxに至ったときには記憶した変数から拾えるはずです。 |
Beta Was this translation helpful? Give feedback.
-
SAX的に 再度 prefix = @sec_counter.prefix(level, @book.config['secnolevel']) |
Beta Was this translation helpful? Give feedback.
なるほど。
Re:VIEWはDOMをまじめに作っていなくてむしろSAX的に頭から解析していくので、ここ(索引)の構造位置はどこ?というのが取りづらいんですよね。
つまり、SAX的に考えるのがよいかと思います。
HTMLBuilderにおいて番号生成および見出しを出力しているメソッド
headline
をオーバーライド(とはいえsuper
と再度headline_prefix
を使うくらい)して、そのときの番号、番号がnilなら見出しを変数に記憶しておく。節までにしておきたいといったことがあればlevelの深さによって覚えるかどうか分岐もしたほうがよいでしょう。review/lib/review/htmlbuilder.rb
Lines 165 to 186 in e7c7431