review
review copied to clipboard
catalog.yml と review-epubmaker を組み合わせた時に予期せぬ例外が発生する
以下のようなcatalog.ymlを食わせると例外が発生します。
PREDEF:
- pre.re
CHAPS:
- fullsetA.re
- fullsetB.re
- parent.re:
- child.re
- fullsetC.re
POSTDEF:
- post.re
$ bundler exec review-epubmaker config.yml
It's recommended to use Bundler through 'bundle' binary instead of 'bundler'
Parameter 'pubhistory' is obsolete. Please use 'history' array.
Loaded yaml file (config.yml). I will produce book.epub.
Created first temporary directory as /Users/vvakame/Dropbox/work/review.js/test/fixture/book-fullset/book-20140812-61981-ep5yhg.
Call hook_beforeprocess. ()
Call hook_afterfrontmatter. ()
Create pre.html from pre.re.
Create fullsetA.html from fullsetA.re.
Create fullsetB.html from fullsetB.re.
/opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/lib/review/epubmaker.rb:236:in `build_chap': undefined method `on_PREDEF?' for #<ReVIEW::Book::Part:0x007fbf720742a0> (NoMethodError)
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/lib/review/epubmaker.rb:192:in `block in build_body'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/lib/review/epubmaker.rb:188:in `each'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/lib/review/epubmaker.rb:188:in `build_body'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/lib/review/epubmaker.rb:60:in `produce'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bundler/gems/review-9e953340758b/bin/review-epubmaker:44:in `<top (required)>'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bin/review-epubmaker:23:in `load'
from /opt/boxen/rbenv/versions/1.9.3-p448/lib/ruby/gems/1.9.1/bin/review-epubmaker:23:in `<main>'
再現用のリソースはこちらにおいてあります。
https://github.com/vvakame/review.js/tree/master/test/fixture/book-fullset
PARTに対応してないみたいですね……。
修正してみました。
生成されたEPUBの目次を見ると、PART対応がうまくできてない感じ。
ありがとうございます! 部無し章と部有り章が混在してるとダメっぽい感じなんですかね? 混在はRe:VIEW的にはvalidなのでしょうか?
部無し章と部有り章の混在については #285 関連のような。複雑なPARTの扱いは要検討事項(そもそもどういうTOCを吐くのが正解なのかよくわからん)なのです…。
PART はだいぶ面倒なので、いっそのことユーザーが指定した catalog.yml と同じようにインデントするのはどうですかね。
- プレ
- 第1章 サンプルA
- 第2章 サンプルB
- 第1部 PARTの親
- 第3章 PARTの子
- 第4章 サンプルC
- ポスト
良いと思います! (なお、わかめ的には"出力が得られる(仕様が決まる)"ことが重要なのでどういう仕様になるかは強い意見が無いです