diff --git a/lib/review/builder.rb b/lib/review/builder.rb
index 332fc5c8e..699e70ea0 100644
--- a/lib/review/builder.rb
+++ b/lib/review/builder.rb
@@ -279,17 +279,33 @@ 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]
- return inline_hd_chap(chapter, m[2]) if chapter
- return inline_hd_chap(@chapter, id)
+ if chapter
+ inline_hd_chap(chapter, m[2])
+ else
+ inline_hd_chap(@chapter, id)
+ end
+ rescue KeyError
+ error "unknown hd: #{id}"
+ nofunc_text("[UnknownHeader:#{id}]")
end
def inline_column(id)
- @chapter.column(id).caption
- rescue
+ m = /\A([^|]+)\|(.+)/.match(id)
+ chapter = @book.chapters.detect{|chap| chap.id == m[1]} if m && m[1]
+ if chapter
+ inline_column_chap(chapter, m[2])
+ else
+ inline_column_chap(@chapter, id)
+ end
+ rescue KeyError
error "unknown column: #{id}"
nofunc_text("[UnknownColumn:#{id}]")
end
+ def inline_column_chap(chapter, id)
+ chapter.column(id).caption
+ end
+
def raw(str)
if matched = str.match(/\|(.*?)\|(.*)/)
builders = matched[1].split(/,/).map{|i| i.gsub(/\s/, '') }
diff --git a/lib/review/htmlbuilder.rb b/lib/review/htmlbuilder.rb
index 1fbcde66a..ef4c949ca 100644
--- a/lib/review/htmlbuilder.rb
+++ b/lib/review/htmlbuilder.rb
@@ -962,15 +962,12 @@ def column_label(id)
end
private :column_label
- def inline_column(id)
+ def inline_column_chap(chapter, id)
if @book.config["chapterlink"]
- %Q(#{I18n.t("column", escape_html(@chapter.column(id).caption))})
+ %Q(#{I18n.t("column", escape_html(chapter.column(id).caption))})
else
- I18n.t("column", escape_html(@chapter.column(id).caption))
+ I18n.t("column", escape_html(chapter.column(id).caption))
end
- rescue KeyError
- error "unknown column: #{id}"
- nofunc_text("[UnknownColumn:#{id}]")
end
def inline_list(id)
diff --git a/lib/review/idgxmlbuilder.rb b/lib/review/idgxmlbuilder.rb
index 31e2105ee..1b7ee1795 100644
--- a/lib/review/idgxmlbuilder.rb
+++ b/lib/review/idgxmlbuilder.rb
@@ -316,15 +316,12 @@ def column_label(id)
end
private :column_label
- def inline_column(id)
+ def inline_column_chap(chapter, id)
if @book.config["chapterlink"]
- %Q(#{escape_html(@chapter.column(id).caption)})
+ %Q(#{escape_html(chapter.column(id).caption)})
else
- escape_html(@chapter.column(id).caption)
+ escape_html(chapter.column(id).caption)
end
- rescue KeyError
- error "unknown column: #{id}"
- nofunc_text("[UnknownColumn:#{id}]")
end
def inline_list(id)
diff --git a/lib/review/latexbuilder.rb b/lib/review/latexbuilder.rb
index e8468c25a..077f16e42 100644
--- a/lib/review/latexbuilder.rb
+++ b/lib/review/latexbuilder.rb
@@ -771,8 +771,8 @@ def inline_hd_chap(chap, id)
end
end
- def inline_column(id)
- macro('reviewcolumnref', "#{@chapter.column(id).caption}", column_label(id))
+ def inline_column_chap(chapter, id)
+ macro('reviewcolumnref', "#{chapter.column(id).caption}", column_label(id))
end
def inline_raw(str)
diff --git a/test/test_htmlbuilder.rb b/test/test_htmlbuilder.rb
index 3545dc760..ddcae160c 100644
--- a/test/test_htmlbuilder.rb
+++ b/test/test_htmlbuilder.rb
@@ -1,10 +1,7 @@
# encoding: utf-8
require 'test_helper'
-require 'review/compiler'
-require 'review/book'
-require 'review/htmlbuilder'
-require 'review/i18n'
+require 'review'
class HTMLBuidlerTest < Test::Unit::TestCase
include ReVIEW
@@ -792,6 +789,16 @@ def test_column_ref
assert_equal expected, column_helper(review)
end
+ def test_column_in_aother_chapter_ref
+ def @chapter.column_index
+ items = [Book::ColumnIndex::Item.new("chap1|column", 1, "column_cap")]
+ Book::ColumnIndex.new(items)
+ end
+
+ actual = compile_inline("test @{chap1|column} test2")
+ expected = "test コラム「column_cap」 test2"
+ assert_equal expected, actual
+ end
def test_ul
src =<<-EOS