class ReVIEW::IDGXMLBuilder
Public Instance Methods
best(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 892 def best(lines, caption = nil) captionblock('best', lines, caption) end
bibpaper(lines, id, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1104 def bibpaper(lines, id, caption) bibpaper_header id, caption bibpaper_bibpaper id, caption, lines unless lines.empty? puts '</bibitem>' end
bibpaper_bibpaper(_id, _caption, lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1115 def bibpaper_bibpaper(_id, _caption, lines) print split_paragraph(lines).join end
bibpaper_header(id, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1110 def bibpaper_header(id, caption) puts %Q(<bibitem id="bib-#{id}">) puts "<caption><span type='bibno'>[#{@chapter.bibpaper(id).number}] </span>#{compile_inline(caption)}</caption>" if caption.present? end
box(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 989 def box(lines, caption = nil) syntaxblock('box', lines, caption) end
bpo(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1020 def bpo(lines) puts %Q(<bpo>#{lines.join("\n")}</bpo>) end
captionblock(type, lines, caption, specialstyle = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 864 def captionblock(type, lines, caption, specialstyle = nil) print "<#{type}>" style = specialstyle.nil? ? "#{type}-title" : specialstyle puts "<title aid:pstyle='#{style}'>#{compile_inline(caption)}</title>" if caption.present? blocked_lines = split_paragraph(lines) puts "#{blocked_lines.join}</#{type}>" end
caution(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 904 def caution(lines, caption = nil) captionblock('caution', lines, caption) end
centering(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 860 def centering(lines) puts split_paragraph(lines).join.gsub('<p>', %Q(<p align='center'>)) end
choice_multi_begin()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 180 def choice_multi_begin puts %Q(<choice type='multi'>) end
choice_multi_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 188 def choice_multi_end puts '</choice>' end
choice_single_begin()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 176 def choice_single_begin puts %Q(<choice type='single'>) end
choice_single_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 184 def choice_single_end puts '</choice>' end
circle_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 766 def circle_begin(_level, _label, caption) puts %Q(<title aid:pstyle="smallcircle">•#{compile_inline(caption)}</title>) end
circle_end(level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 770 def circle_end(level) end
cmd(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 339 def cmd(lines, caption = nil) quotedlist lines, 'cmd', caption end
codelines_body(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 285 def codelines_body(lines) no = 1 lines.each do |line| if @book.config['listinfo'] print %Q(<listinfo line="#{no}") print %Q( begin="1") if no == 1 print %Q( end="#{no}") if no == lines.size print '>' end print detab(line) print "\n" print '</listinfo>' if @book.config['listinfo'] no += 1 end end
column_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 784 def column_begin(_level, _label, caption) common_column_begin('', caption) end
column_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 788 def column_end(_level) common_column_end('') end
comment(lines, comment = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 581 def comment(lines, comment = nil) return true unless @book.config['draft'] lines ||= [] lines.unshift comment unless comment.blank? str = lines.join("\n") print "<msg>#{escape_html(str)}</msg>" end
common_column_begin(type, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 773 def common_column_begin(type, caption) @column += 1 a_id = %Q(id="column-#{@column}") print "<#{type}column #{a_id}>" puts %Q(<title aid:pstyle="#{type}column-title">#{compile_inline(caption)}</title><?dtp level="9" section="#{escape_html(compile_inline(caption))}"?>) end
common_column_end(type)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 780 def common_column_end(type) puts "</#{type}column>" end
compile_href(url, label)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 624 def compile_href(url, label) %Q(<a linkurl='#{escape_html(url)}'>#{label.nil? ? escape_html(url) : escape_html(label)}</a>) end
compile_kw(word, alt)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 609 def compile_kw(word, alt) '<keyword>' + if alt then escape_html("#{word}(#{alt.strip})") else escape_html(word) end + '</keyword>' + %Q(<index value="#{escape_html(word)}" />) + if alt alt.split(/\s*,\s*/).collect! { |e| %Q(<index value="#{escape_html(e.strip)}" />) }.join else '' end end
compile_ruby(base, ruby)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 605 def compile_ruby(base, ruby) %Q(<GroupRuby><aid:ruby xmlns:aid="http://ns.adobe.com/AdobeInDesign/3.0/"><aid:rb>#{escape_html(base.strip)}</aid:rb><aid:rt>#{escape_html(ruby.strip)}</aid:rt></aid:ruby></GroupRuby>) end
dd(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 225 def dd(lines) puts "<dd>#{lines.join.chomp}</dd>" end
dl_begin()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 217 def dl_begin puts '<dl>' end
dl_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 229 def dl_end puts '</dl>' end
dt(line)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 221 def dt(line) puts "<dt>#{line}</dt>" end
dtp(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1012 def dtp(str) print %Q(<?dtp #{str} ?>) end
edition_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 816 def edition_begin(_level, _label, caption) common_column_begin('edition', caption) end
edition_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 820 def edition_end(_level) common_column_end('edition') end
emlist(lines, caption = nil, _lang = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 307 def emlist(lines, caption = nil, _lang = nil) quotedlist lines, 'emlist', caption end
emlistnum(lines, caption = nil, _lang = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 311 def emlistnum(lines, caption = nil, _lang = nil) lines2 = [] first_line_num = line_num lines.each_with_index do |line, i| lines2 << detab(%Q(<span type='lineno'>) + (i + first_line_num).to_s.rjust(2) + ': </span>' + line) end quotedlist lines2, 'emlistnum', caption end
emtable(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 564 def emtable(lines, caption = nil) table(lines, nil, caption) end
expert(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 952 def expert(lines) captionblock('expert', lines, nil) end
extname()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 43 def extname '.xml' end
flushright(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 856 def flushright(lines) puts split_paragraph(lines).join.gsub('<p>', %Q(<p align='right'>)) end
footnote(id, str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 597 def footnote(id, str) # see inline_fn end
handle_metric(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 398 def handle_metric(str) k, v = str.split('=', 2) %Q(#{k}="#{v.sub(/\A["']/, '').sub(/["']\Z/, '')}") end
headline(level, label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 95 def headline(level, label, caption) case level when 1 if @secttags print '</sect4>' if @subsubsubsection > 0 print '</sect3>' if @subsubsection > 0 print '</sect2>' if @subsection > 0 print '</sect>' if @section > 0 end print %Q(<chapter id="chap:#{@chapter.number}">) unless @secttags.nil? @section = 0 @subsection = 0 @subsubsection = 0 @subsubsubsection = 0 when 2 if @secttags print '</sect4>' if @subsubsubsection > 0 print '</sect3>' if @subsubsection > 0 print '</sect2>' if @subsection > 0 print '</sect>' if @section > 0 end @section += 1 print %Q(<sect id="sect:#{@chapter.number}.#{@section}">) unless @secttags.nil? @subsection = 0 @subsubsection = 0 @subsubsubsection = 0 when 3 if @secttags print '</sect4>' if @subsubsubsection > 0 print '</sect3>' if @subsubsection > 0 print '</sect2>' if @subsection > 0 end @subsection += 1 print %Q(<sect2 id="sect:#{@chapter.number}.#{@section}.#{@subsection}">) unless @secttags.nil? @subsubsection = 0 @subsubsubsection = 0 when 4 if @secttags print '</sect4>' if @subsubsubsection > 0 print '</sect3>' if @subsubsection > 0 end @subsubsection += 1 print %Q(<sect3 id="sect:#{@chapter.number}.#{@section}.#{@subsection}.#{@subsubsection}">) if @secttags @subsubsubsection = 0 when 5 print '</sect4>' if @secttags && @subsubsubsection > 0 @subsubsubsection += 1 print %Q(<sect4 id="sect:#{@chapter.number}.#{@section}.#{@subsection}.#{@subsubsection}.#{@subsubsubsection}">) if @secttags else raise "caption level too deep or unsupported: #{level}" end prefix, _anchor = headline_prefix(level) label = label.nil? ? '' : %Q( id="#{label}") toccaption = escape_html(compile_inline(caption.gsub(/@<fn>\{.+?\}/, '')).gsub(/<[^>]+>/, '')) puts %Q(<title#{label} aid:pstyle="h#{level}">#{prefix}#{compile_inline(caption)}</title><?dtp level="#{level}" section="#{prefix}#{toccaption}"?>) end
hood_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 808 def hood_begin(_level, _label, caption) common_column_begin('hood', caption) end
hood_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 812 def hood_end(_level) common_column_end('hood') end
hr()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1016 def hr print '<hr />' end
image_dummy(id, caption, lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 415 def image_dummy(id, caption, lines) puts '<img>' print %Q(<pre aid:pstyle="dummyimage">) lines.each do |line| print detab(line) print "\n" end print '</pre>' image_header id, caption puts '</img>' warn "image not bound: #{id}" end
image_ext()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1142 def image_ext 'eps' end
image_header(id, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 428 def image_header(id, caption) return true unless caption.present? if get_chap.nil? puts %Q(<caption>#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [@chapter.image(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) else puts %Q(<caption>#{I18n.t('image')}#{I18n.t('format_number', [get_chap, @chapter.image(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) end end
image_image(id, caption, metric = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 407 def image_image(id, caption, metric = nil) metrics = parse_metric('idgxml', metric) puts '<img>' puts %Q(<Image href="file://#{@chapter.image(id).path.sub(%r{\A./}, '')}"#{metrics} />) image_header id, caption puts '</img>' end
imgtable(lines, id, caption = nil, metric = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 568 def imgtable(lines, id, caption = nil, metric = nil) if @chapter.image(id).bound? metrics = parse_metric('idgxml', metric) puts '<table>' table_header id, caption if caption.present? puts %Q(<imgtable><Image href="file://#{@chapter.image(id).path.sub(%r{\A./}, '')}"#{metrics} /></imgtable>) puts '</table>' else warn "image not bound: #{id}" if @strict image_dummy id, caption, lines end end
important(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 896 def important(lines, caption = nil) captionblock('important', lines, caption) end
indepimage(_lines, id, caption = nil, metric = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 993 def indepimage(_lines, id, caption = nil, metric = nil) metrics = parse_metric('idgxml', metric) puts '<img>' begin puts %Q(<Image href="file://#{@chapter.image(id).path.sub(%r{\A\./}, '')}"#{metrics} />) rescue warn %Q(image not bound: #{id}) end puts %Q(<caption>#{compile_inline(caption)}</caption>) if caption.present? puts '</img>' end
Also aliased as: numberlessimage
info(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 884 def info(lines, caption = nil) captionblock('info', lines, caption) end
inline_ami(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 676 def inline_ami(str) %Q(<ami>#{escape_html(str)}</ami>) end
inline_b(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 684 def inline_b(str) %Q(<b>#{escape_html(str)}</b>) end
inline_balloon(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 733 def inline_balloon(str) %Q(<balloon>#{escape_html(str).gsub(/@maru\[(\d+)\]/) { inline_maru($1) }}</balloon>) end
inline_bib(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1119 def inline_bib(id) %Q(<span type='bibref' idref='#{id}'>[#{@chapter.bibpaper(id).number}]</span>) end
inline_bou(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 715 def inline_bou(str) %Q(<bou>#{escape_html(str)}</bou>) end
inline_br(_str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1032 def inline_br(_str) "\n" end
inline_chap(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1070 def inline_chap(id) if @book.config['chapterlink'] %Q(<link href="#{id}">#{@book.chapter_index.number(id)}</link>) else @book.chapter_index.number(id) end rescue KeyError error "unknown chapter: #{id}" nofunc_text("[UnknownChapter:#{id}]") end
inline_chapref(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1049 def inline_chapref(id) chs = ['', '「', '」'] if @book.config['chapref'] chs2 = @book.config['chapref'].split(',') if chs2.size != 3 error '--chapsplitter must have exactly 3 parameters with comma.' else chs = chs2 end end s = "#{chs[0]}#{@book.chapter_index.number(id)}#{chs[1]}#{@book.chapter_index.title(id)}#{chs[2]}" if @book.config['chapterlink'] %Q(<link href="#{id}">#{s}</link>) else s end rescue KeyError error "unknown chapter: #{id}" nofunc_text("[UnknownChapter:#{id}]") end
inline_code(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1028 def inline_code(str) %Q(<tt type='inline-code'>#{escape_html(str)}</tt>) end
inline_column_chap(chapter, id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 258 def inline_column_chap(chapter, id) if @book.config['chapterlink'] %Q(<link href="#{column_label(id, chapter)}">#{I18n.t('column', compile_inline(chapter.column(id).caption))}</link>) else I18n.t('column', compile_inline(chapter.column(id).caption)) end end
inline_comment(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 589 def inline_comment(str) if @book.config['draft'] %Q(<msg>#{escape_html(str)}</msg>) else '' end end
inline_dtp(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1024 def inline_dtp(str) "<?dtp #{str} ?>" end
inline_fn(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 601 def inline_fn(id) %Q(<footnote>#{compile_inline(@chapter.footnote(id).content.strip)}</footnote>) end
inline_hd_chap(chap, id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1123 def inline_hd_chap(chap, id) if chap.number n = chap.headline_index.number(id) if @book.config['secnolevel'] >= n.split('.').size return I18n.t('chapter_quote', "#{n} #{compile_inline(chap.headline(id).caption)}") end end I18n.t('chapter_quote', compile_inline(chap.headline(id).caption)) end
inline_hidx(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 672 def inline_hidx(str) %Q(<index value="#{escape_html(str)}" />) end
inline_hint(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 640 def inline_hint(str) if @book.config['nolf'] %Q(<hint>#{escape_html(str)}</hint>) else %Q(\n<hint>#{escape_html(str)}</hint>) end end
inline_i(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 680 def inline_i(str) %Q(<i>#{escape_html(str)}</i>) end
inline_icon(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 706 def inline_icon(id) begin %Q(<Image href="file://#{@chapter.image(id).path.sub(%r{\A\./}, '')}" type="inline" />) rescue warn "image not bound: #{id}" '' end end
inline_idx(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 668 def inline_idx(str) %Q(#{escape_html(str)}<index value="#{escape_html(str)}" />) end
inline_img(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 378 def inline_img(id) chapter, id = extract_chapter_id(id) if get_chap(chapter).nil? "<span type='image'>#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [chapter.image(id).number])}</span>" else "<span type='image'>#{I18n.t('image')}#{I18n.t('format_number', [get_chap(chapter), chapter.image(id).number])}</span>" end end
inline_imgref(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 387 def inline_imgref(id) chapter, id = extract_chapter_id(id) if chapter.image(id).caption.blank? inline_img(id) elsif get_chap(chapter).nil? "<span type='image'>#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [chapter.image(id).number])}#{I18n.t('image_quote', chapter.image(id).caption)}</span>" else "<span type='image'>#{I18n.t('image')}#{I18n.t('format_number', [get_chap(chapter), chapter.image(id).number])}#{I18n.t('image_quote', chapter.image(id).caption)}</span>" end end
inline_keytop(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 719 def inline_keytop(str) %Q(<keytop>#{escape_html(str)}</keytop>) end
inline_labelref(idref)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 723 def inline_labelref(idref) %Q(<ref idref='#{escape_html(idref)}'>「#{I18n.t('label_marker')}#{escape_html(idref)}」</ref>) # FIXME: 節名とタイトルも込みで要出力 end
Also aliased as: inline_ref
inline_list(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 266 def inline_list(id) chapter, id = extract_chapter_id(id) if get_chap(chapter).nil? "<span type='list'>#{I18n.t('list')}#{I18n.t('format_number_without_chapter', [chapter.list(id).number])}</span>" else "<span type='list'>#{I18n.t('list')}#{I18n.t('format_number', [get_chap(chapter), chapter.list(id).number])}</span>" end end
inline_m(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 741 def inline_m(str) @texinlineequation += 1 %Q(<replace idref="texinline-#{@texinlineequation}"><pre>#{escape_html(str)}</pre></replace>) end
inline_maru(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 648 def inline_maru(str) if str =~ /\A\d+\Z/ sprintf('&#x%x;', 9311 + str.to_i) elsif str =~ /\A[A-Z]\Z/ begin sprintf('&#x%x;', 9398 + str.codepoints.to_a[0] - 65) rescue NoMethodError sprintf('&#x%x;', 9398 + str[0] - 65) end elsif str =~ /\A[a-z]\Z/ begin sprintf('&#x%x;', 9392 + str.codepoints.to_a[0] - 65) rescue NoMethodError sprintf('&#x%x;', 9392 + str[0] - 65) end else error "can't parse maru: #{str}" end end
inline_pageref(idref)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 729 def inline_pageref(idref) %Q(<pageref idref='#{escape_html(idref)}'>●●</pageref>) # ページ番号を参照 end
inline_raw(str)
click to toggle source
Calls superclass method
ReVIEW::Builder#inline_raw
# File lib/review/idgxmlbuilder.rb, line 636 def inline_raw(str) super(str).gsub('\n', "\n") end
inline_recipe(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1133 def inline_recipe(id) # FIXME %Q(<recipe idref="#{escape_html(id)}">[XXX]「#{escape_html(id)}」 p.XX</recipe>) end
inline_sub(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 632 def inline_sub(str) %Q(<sub>#{escape_html(str)}</sub>) end
inline_sup(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 628 def inline_sup(str) %Q(<sup>#{escape_html(str)}</sup>) end
inline_table(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 369 def inline_table(id) chapter, id = extract_chapter_id(id) if get_chap(chapter).nil? "<span type='table'>#{I18n.t('table')}#{I18n.t('format_number_without_chapter', [chapter.table(id).number])}</span>" else "<span type='table'>#{I18n.t('table')}#{I18n.t('format_number', [get_chap(chapter), chapter.table(id).number])}</span>" end end
inline_title(id)
click to toggle source
Calls superclass method
ReVIEW::Builder#inline_title
# File lib/review/idgxmlbuilder.rb, line 1081 def inline_title(id) title = super if @book.config['chapterlink'] %Q(<link href="#{id}">#{title}</link>) else title end rescue KeyError error "unknown chapter: #{id}" nofunc_text("[UnknownChapter:#{id}]") end
inline_tt(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 688 def inline_tt(str) %Q(<tt>#{escape_html(str)}</tt>) end
inline_ttb(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 692 def inline_ttb(str) %Q(<tt style='bold'>#{escape_html(str)}</tt>) end
Also aliased as: inline_ttbold
inline_tti(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 698 def inline_tti(str) %Q(<tt style='italic'>#{escape_html(str)}</tt>) end
inline_u(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 702 def inline_u(str) %Q(<underline>#{escape_html(str)}</underline>) end
inline_uchar(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 737 def inline_uchar(str) %Q(&#x#{str};) end
insideout_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 824 def insideout_begin(_level, _label, caption) common_column_begin('insideout', caption) end
insideout_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 828 def insideout_end(_level) common_column_end('insideout') end
insn(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 985 def insn(lines, caption = nil) syntaxblock('insn', lines, caption) end
label(id)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1007 def label(id) # FIXME print "<label id='#{id}' />" end
linebreak()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 750 def linebreak # FIXME: pが閉じちゃってるので一度戻らないといけないが、難しい…。 puts '<br />' end
link(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 916 def link(lines, caption = nil) captionblock('link', lines, caption) end
list_body(_id, lines, _lang)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 301 def list_body(_id, lines, _lang) print '<pre>' codelines_body(lines) puts '</pre></codelist>' end
list_header(id, caption, _lang)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 275 def list_header(id, caption, _lang) puts '<codelist>' return true unless caption.present? if get_chap.nil? puts %Q(<caption>#{I18n.t('list')}#{I18n.t('format_number_without_chapter', [@chapter.list(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) else puts %Q(<caption>#{I18n.t('list')}#{I18n.t('format_number', [get_chap, @chapter.list(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) end end
listnum_body(lines, _lang)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 320 def listnum_body(lines, _lang) print '<pre>' no = 1 first_line_num = line_num lines.each_with_index do |line, i| if @book.config['listinfo'] print %Q(<listinfo line="#{no}") print %Q( begin="1") if no == 1 print %Q( end="#{no}") if no == lines.size print '>' end print detab(%Q(<span type='lineno'>) + (i + first_line_num).to_s.rjust(2) + ': </span>' + line) print "\n" print '</listinfo>' if @book.config['listinfo'] no += 1 end puts '</pre></codelist>' end
memo(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 876 def memo(lines, caption = nil) captionblock('memo', lines, caption) end
nofunc_text(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1138 def nofunc_text(str) escape_html(str) end
noindent()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 746 def noindent @noindent = true end
nonum_begin(level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 759 def nonum_begin(level, _label, caption) puts %Q(<title aid:pstyle="h#{level}">#{compile_inline(caption)}</title><?dtp level="#{level}" section="#{escape_html(compile_inline(caption))}"?>) end
nonum_end(level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 763 def nonum_end(level) end
note(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 872 def note(lines, caption = nil) captionblock('note', lines, caption) end
notice(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 920 def notice(lines, caption = nil) if caption captionblock('notice-t', lines, caption, 'notice-title') else captionblock('notice', lines, nil) end end
ol_begin()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 198 def ol_begin puts '<ol>' @ol_num ||= 1 end
ol_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 208 def ol_end puts '</ol>' @ol_num = nil end
ol_item(lines, num)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 203 def ol_item(lines, num) puts %Q(<li aid:pstyle="ol-item" olnum="#{@ol_num}" num="#{num}">#{lines.join.chomp}</li>) @ol_num += 1 end
olnum(num)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 213 def olnum(num) @ol_num = num.to_i end
pagebreak()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 755 def pagebreak puts '<pagebreak />' end
paragraph(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 233 def paragraph(lines) if @noindent.nil? if lines[0] =~ /\A(\t+)/ puts %Q(<p inlist="#{$1.size}">#{lines.join.sub(/\A\t+/, '')}</p>) else puts "<p>#{lines.join}</p>" end else puts %Q(<p aid:pstyle="noindent" noindent='1'>#{lines.join}</p>) @noindent = nil end end
planning(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 888 def planning(lines, caption = nil) captionblock('planning', lines, caption) end
point(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 928 def point(lines, caption = nil) if caption captionblock('point-t', lines, caption, 'point-title') else captionblock('point', lines, nil) end end
post_paragraph()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 39 def post_paragraph '</p>' end
practice(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 948 def practice(lines) captionblock('practice', lines, nil) end
pre_paragraph()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 35 def pre_paragraph '<p>' end
puts(arg)
click to toggle source
Calls superclass method
ReVIEW::Builder#puts
# File lib/review/idgxmlbuilder.rb, line 75 def puts(arg) if @book.config['nolf'].present? print arg else super end end
quote(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 364 def quote(lines) blocked_lines = split_paragraph(lines) puts "<quote>#{blocked_lines.join}</quote>" end
rawblock(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1036 def rawblock(lines) no = 1 lines.each do |l| print l.gsub('<', '<').gsub('>', '>').gsub('"', '"').gsub('&', '&') print "\n" unless lines.length == no no += 1 end end
read(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 246 def read(lines) puts %Q(<lead>#{split_paragraph(lines).join}</lead>) end
Also aliased as: lead
ref_begin(_level, label, _caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 832 def ref_begin(_level, label, _caption) if label puts "<reference id='#{label}'>" else puts '<reference>' end end
ref_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 840 def ref_end(_level) puts '</reference>' end
reference(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 944 def reference(lines) captionblock('reference', lines, nil) end
result()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 83 def result s = '' if @secttags s += '</sect4>' if @subsubsubsection > 0 s += '</sect3>' if @subsubsection > 0 s += '</sect2>' if @subsection > 0 s += '</sect>' if @section > 0 s += '</chapter>' if @chapter.number > 0 end @output.string + s + "</#{@rootelement}>\n" end
result_metric(array)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 403 def result_metric(array) " #{array.join(' ')}" end
security(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 900 def security(lines, caption = nil) captionblock('security', lines, caption) end
shoot(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 936 def shoot(lines, caption = nil) if caption captionblock('shoot-t', lines, caption, 'shoot-title') else captionblock('shoot', lines, nil) end end
source_body(lines, _lang)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1098 def source_body(lines, _lang) puts '<pre>' codelines_body(lines) puts '</pre></source>' end
source_header(caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1093 def source_header(caption) puts '<source>' puts %Q(<caption>#{compile_inline(caption)}</caption>) if caption.present? end
sup_begin(_level, label, _caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 844 def sup_begin(_level, label, _caption) if label puts "<supplement id='#{label}'>" else puts '<supplement>' end end
sup_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 852 def sup_end(_level) puts '</supplement>' end
syntaxblock(type, lines, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 956 def syntaxblock(type, lines, caption) if caption.present? titleopentag = %Q(caption aid:pstyle="#{type}-title") titleclosetag = 'caption' if type == 'insn' titleopentag = %Q(floattitle type="insn") titleclosetag = 'floattitle' end puts %Q(<#{type}><#{titleopentag}>#{compile_inline(caption)}</#{titleclosetag}>) else puts "<#{type}>" end no = 1 lines.each do |line| if @book.config['listinfo'] print %Q(<listinfo line="#{no}") print %Q( begin="1") if no == 1 print %Q( end="#{no}") if no == lines.size print '>' end print detab(line) print "\n" print '</listinfo>' if @book.config['listinfo'] no += 1 end puts "</#{type}>" end
table(lines, id = nil, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 446 def table(lines, id = nil, caption = nil) tablewidth = @book.config['tableopt'] ? @book.config['tableopt'].split(',')[0].to_f / @book.config['pt_to_mm_unit'].to_f : nil col = 0 puts '<table>' rows = [] sepidx = nil lines.each_with_index do |line, idx| if /\A[\=\-]{12}/ =~ line sepidx ||= idx next end if tablewidth rows.push(line.gsub(/\t\.\t/, "\tDUMMYCELLSPLITTER\t").gsub(/\t\.\.\t/, "\t.\t").gsub(/\t\.\Z/, "\tDUMMYCELLSPLITTER").gsub(/\t\.\.\Z/, "\t.").gsub(/\A\./, '')) else rows.push(line.gsub(/\t\.\t/, "\t\t").gsub(/\t\.\.\t/, "\t.\t").gsub(/\t\.\Z/, "\t").gsub(/\t\.\.\Z/, "\t.").gsub(/\A\./, '')) end col2 = rows[rows.length - 1].split(/\t/).length col = col2 if col2 > col end cellwidth = [] if tablewidth if @tsize.nil? col.times { |n| cellwidth[n] = tablewidth / col } else cellwidth = @tsize.split(/\s*,\s*/) totallength = 0 cellwidth.size.times do |n| cellwidth[n] = cellwidth[n].to_f / @book.config['pt_to_mm_unit'].to_f totallength += cellwidth[n] warn "total length exceeds limit for table: #{id}" if totallength > tablewidth end if cellwidth.size < col cw = (tablewidth - totallength) / (col - cellwidth.size) warn "auto cell sizing exceeds limit for table: #{id}" if cw <= 0 (cellwidth.size..(col - 1)).each { |i| cellwidth[i] = cw } end end end begin table_header id, caption if caption.present? rescue KeyError error "no such table: #{id}" end return if rows.empty? if tablewidth.nil? print '<tbody>' else print %Q(<tbody xmlns:aid5="http://ns.adobe.com/AdobeInDesign/5.0/" aid:table="table" aid:trows="#{rows.length}" aid:tcols="#{col}">) end if sepidx sepidx.times do |y| if tablewidth.nil? puts %Q(<tr type="header">#{rows.shift}</tr>) else i = 0 rows.shift.split("\t").each_with_index do |cell, x| print %Q(<td xyh="#{x + 1},#{y + 1},#{sepidx}" aid:table="cell" aid:theader="1" aid:crows="1" aid:ccols="1" aid:ccolwidth="#{sprintf('%.3f', cellwidth[i])}">#{cell.sub('DUMMYCELLSPLITTER', '')}</td>) i += 1 end end end end trputs(tablewidth, rows, cellwidth, sepidx) puts '</tbody></table>' @tsize = nil end
table_begin(ncols)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 545 def table_begin(ncols) end
table_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 560 def table_end print '<?dtp tablerow last?>' end
table_header(id, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 535 def table_header(id, caption) if id.nil? puts %Q(<caption>#{compile_inline(caption)}</caption>) elsif get_chap puts %Q(<caption>#{I18n.t('table')}#{I18n.t('format_number', [get_chap, @chapter.table(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) else puts %Q(<caption>#{I18n.t('table')}#{I18n.t('format_number_without_chapter', [@chapter.table(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}</caption>) end end
td(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 556 def td(str) str end
term(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 912 def term(lines) captionblock('term', lines, nil) end
texequation(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 437 def texequation(lines) @texblockequation += 1 puts %Q(<replace idref="texblock-#{@texblockequation}">) puts '<pre>' puts lines.join("\n") puts '</pre>' puts '</replace>' end
text(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 1045 def text(str) str end
th(str)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 552 def th(str) %Q(<?dtp tablerow header?>#{str}) end
tip(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 880 def tip(lines, caption = nil) captionblock('tip', lines, caption) end
tr(rows)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 548 def tr(rows) puts %Q(<tr>#{rows.join("\t")}</tr>) end
trputs(tablewidth, rows, cellwidth, sepidx)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 518 def trputs(tablewidth, rows, cellwidth, sepidx) sepidx = 0 if sepidx.nil? if tablewidth rows.each_with_index do |row, y| i = 0 row.split("\t").each_with_index do |cell, x| print %Q(<td xyh="#{x + 1},#{y + 1 + sepidx},#{sepidx}" aid:table="cell" aid:crows="1" aid:ccols="1" aid:ccolwidth="#{sprintf('%.3f', cellwidth[i])}">#{cell.sub('DUMMYCELLSPLITTER', '')}</td>) i += 1 end end else lastline = rows.pop rows.each { |row| puts "<tr>#{row}</tr>" } puts %Q(<tr type="lastline">#{lastline}</tr>) if lastline end end
ul_begin() { |: ''| ... }
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 162 def ul_begin level = block_given? ? yield : '' level = nil if level == 1 puts "<ul#{level == 1 ? nil : level}>" end
ul_end() { |: ''| ... }
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 192 def ul_end level = block_given? ? yield : '' level = nil if level == 1 puts "</ul#{level}>" end
ul_item_begin(lines)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 168 def ul_item_begin(lines) print %Q(<li aid:pstyle="ul-item">#{lines.join.chomp}) end
ul_item_end()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 172 def ul_item_end puts '</li>' end
warning(lines, caption = nil)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 908 def warning(lines, caption = nil) captionblock('warning', lines, caption) end
world_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 800 def world_begin(_level, _label, caption) common_column_begin('world', caption) end
world_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 804 def world_end(_level) common_column_end('world') end
xcolumn_begin(_level, _label, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 792 def xcolumn_begin(_level, _label, caption) common_column_begin('x', caption) end
xcolumn_end(_level)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 796 def xcolumn_end(_level) common_column_end('x') end
Private Instance Methods
builder_init(no_error = false)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 47 def builder_init(no_error = false) @no_error = no_error end
builder_init_file()
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 52 def builder_init_file @warns = [] @errors = [] @section = 0 @subsection = 0 @subsubsection = 0 @subsubsubsection = 0 @sec_counter = SecCounter.new(5, @chapter) @column = 0 @noindent = nil @ol_num = nil @first_line_num = nil @rootelement = 'doc' @secttags = nil @tsize = nil @texblockequation = 0 @texinlineequation = 0 print %Q(<?xml version="1.0" encoding="UTF-8"?>\n) print %Q(<#{@rootelement} xmlns:aid="http://ns.adobe.com/AdobeInDesign/4.0/">) @secttags = true unless @book.config['structuredxml'].nil? end
column_label(id, chapter = @chapter)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 252 def column_label(id, chapter = @chapter) num = chapter.column(id).number "column-#{num}" end
quotedlist(lines, css_class, caption)
click to toggle source
# File lib/review/idgxmlbuilder.rb, line 343 def quotedlist(lines, css_class, caption) print %Q(<list type='#{css_class}'>) puts "<caption aid:pstyle='#{css_class}-title'>#{compile_inline(caption)}</caption>" if caption.present? print '<pre>' no = 1 lines.each do |line| if @book.config['listinfo'] print %Q(<listinfo line="#{no}") print %Q( begin="1") if no == 1 print %Q( end="#{no}") if no == lines.size print '>' end print detab(line) print "\n" print '</listinfo>' if @book.config['listinfo'] no += 1 end puts '</pre></list>' end