From 227043d6acf2e02f34937fc26833fd42e36940c1 Mon Sep 17 00:00:00 2001 From: Masanori Kado Date: Fri, 4 Mar 2016 08:50:58 +0900 Subject: [PATCH] Reference to parts from and --- lib/review/book/base.rb | 9 +++++++++ lib/review/builder.rb | 6 ++++-- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/lib/review/book/base.rb b/lib/review/book/base.rb index 81ddf1ccd..c3e04a90e 100644 --- a/lib/review/book/base.rb +++ b/lib/review/book/base.rb @@ -110,6 +110,15 @@ def each_part(&block) parts.each(&block) end + def contents + # TODO: includes predef, appendix, postdef + if parts.present? + chapters + parts + else + chapters + end + end + def chapters parts().map {|p| p.chapters }.flatten end diff --git a/lib/review/builder.rb b/lib/review/builder.rb index 70e7e2042..ac19912bf 100644 --- a/lib/review/builder.rb +++ b/lib/review/builder.rb @@ -278,7 +278,9 @@ def bibpaper(lines, id, caption) def inline_hd(id) m = /\A([^|]+)\|(.+)/.match(id) - chapter = @book.chapters.detect{|chap| chap.id == m[1]} if m && m[1] + if m && m[1] + chapter = @book.contents.detect{|chap| chap.id == m[1]} + end if chapter inline_hd_chap(chapter, m[2]) else @@ -364,7 +366,7 @@ def get_chap(chapter = @chapter) def extract_chapter_id(chap_ref) m = /\A([\w+-]+)\|(.+)/.match(chap_ref) if m - return [@book.chapters.detect{|chap| chap.id == m[1]}, m[2]] + return [@book.contents.detect{|chap| chap.id == m[1]}, m[2]] else return [@chapter, chap_ref] end