review icon indicating copy to clipboard operation
review copied to clipboard

catalog.yml と review-epubmaker を組み合わせた時に予期せぬ例外が発生する

Open vvakame opened this issue 10 years ago • 7 comments

以下のような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

vvakame avatar Aug 11 '14 15:08 vvakame

PARTに対応してないみたいですね……。

kdmsnr avatar Aug 12 '14 02:08 kdmsnr

修正してみました。

kdmsnr avatar Aug 12 '14 02:08 kdmsnr

生成されたEPUBの目次を見ると、PART対応がうまくできてない感じ。 screen shot 2014-08-12 at 11 33 35

kdmsnr avatar Aug 12 '14 02:08 kdmsnr

ありがとうございます! 部無し章と部有り章が混在してるとダメっぽい感じなんですかね? 混在はRe:VIEW的にはvalidなのでしょうか?

vvakame avatar Aug 12 '14 02:08 vvakame

部無し章と部有り章の混在については #285 関連のような。複雑なPARTの扱いは要検討事項(そもそもどういうTOCを吐くのが正解なのかよくわからん)なのです…。

takahashim avatar Aug 12 '14 03:08 takahashim

PART はだいぶ面倒なので、いっそのことユーザーが指定した catalog.yml と同じようにインデントするのはどうですかね。

  • プレ
  • 第1章 サンプルA
  • 第2章 サンプルB
  • 第1部 PARTの親
    • 第3章 PARTの子
  • 第4章 サンプルC
  • ポスト

kdmsnr avatar Aug 12 '14 04:08 kdmsnr

良いと思います! (なお、わかめ的には"出力が得られる(仕様が決まる)"ことが重要なのでどういう仕様になるかは強い意見が無いです

vvakame avatar Aug 12 '14 06:08 vvakame