Class: ReVIEW::HTMLBuilder
Constant Summary
Constants included
from HTMLUtils
ReVIEW::HTMLUtils::ESC
Constants inherited
from Builder
Builder::CAPTION_TITLES
Instance Attribute Summary
Attributes inherited from Builder
#doc_status
Instance Method Summary
collapse
-
#best(lines, caption = nil) ⇒ Object
-
#bibpaper(lines, id, caption) ⇒ Object
-
#bibpaper_bibpaper(_id, _caption, lines) ⇒ Object
-
#bibpaper_header(id, caption) ⇒ Object
-
#blankline ⇒ Object
-
#box(lines, caption = nil) ⇒ Object
-
#bpo(lines) ⇒ Object
-
#captionblock(type, lines, caption) ⇒ Object
-
#caution(lines, caption = nil) ⇒ Object
-
#centering(lines) ⇒ Object
-
#cmd(lines, caption = nil) ⇒ Object
-
#column_begin(level, label, caption) ⇒ Object
-
#column_end(_level) ⇒ Object
-
#comment(lines, comment = nil) ⇒ Object
-
#compile_href(url, label) ⇒ Object
-
#compile_kw(word, alt) ⇒ Object
-
#compile_ruby(base, ruby) ⇒ Object
-
#dd(lines) ⇒ Object
-
#dl_begin ⇒ Object
-
#dl_end ⇒ Object
-
#doorquote(lines, ref) ⇒ Object
-
#dt(line) ⇒ Object
-
#emlist(lines, caption = nil, lang = nil) ⇒ Object
-
#emlistnum(lines, caption = nil, lang = nil) ⇒ Object
-
#emtable(lines, caption = nil) ⇒ Object
-
#extname ⇒ Object
-
#flushright(lines) ⇒ Object
-
#footnote(id, str) ⇒ Object
-
#handle_metric(str) ⇒ Object
-
#headline(level, label, caption) ⇒ Object
-
#hr ⇒ Object
-
#image_dummy(id, caption, lines) ⇒ Object
-
#image_ext ⇒ Object
-
#image_header(id, caption) ⇒ Object
-
#image_image(id, caption, metric) ⇒ Object
-
#imgtable(lines, id, caption = nil, metric = nil) ⇒ Object
-
#imgtable_image(id, caption, metric) ⇒ Object
-
#important(lines, caption = nil) ⇒ Object
-
#indepimage(lines, id, caption = '', metric = nil) ⇒ Object
(also: #numberlessimage)
-
#info(lines, caption = nil) ⇒ Object
-
#inline_abbr(str) ⇒ Object
-
#inline_acronym(str) ⇒ Object
-
#inline_ami(str) ⇒ Object
-
#inline_asis(str, tag) ⇒ Object
-
#inline_b(str) ⇒ Object
-
#inline_balloon(str) ⇒ Object
-
#inline_bib(id) ⇒ Object
-
#inline_big(str) ⇒ Object
-
#inline_bou(str) ⇒ Object
-
#inline_br(_str) ⇒ Object
-
#inline_chap(id) ⇒ Object
-
#inline_chapref(id) ⇒ Object
-
#inline_cite(str) ⇒ Object
-
#inline_code(str) ⇒ Object
-
#inline_column_chap(chapter, id) ⇒ Object
-
#inline_comment(str) ⇒ Object
-
#inline_del(str) ⇒ Object
-
#inline_dfn(str) ⇒ Object
-
#inline_dtp(str) ⇒ Object
-
#inline_em(str) ⇒ Object
-
#inline_eq(id) ⇒ Object
-
#inline_fn(id) ⇒ Object
-
#inline_hd_chap(chap, id) ⇒ Object
-
#inline_hidx(str) ⇒ Object
-
#inline_i(str) ⇒ Object
-
#inline_icon(id) ⇒ Object
-
#inline_idx(str) ⇒ Object
-
#inline_img(id) ⇒ Object
-
#inline_ins(str) ⇒ Object
-
#inline_kbd(str) ⇒ Object
-
#inline_labelref(idref) ⇒ Object
(also: #inline_ref)
-
#inline_list(id) ⇒ Object
-
#inline_m(str) ⇒ Object
-
#inline_pageref(id) ⇒ Object
-
#inline_raw(str) ⇒ Object
-
#inline_recipe(str) ⇒ Object
-
#inline_samp(str) ⇒ Object
-
#inline_small(str) ⇒ Object
-
#inline_strong(str) ⇒ Object
-
#inline_sub(str) ⇒ Object
-
#inline_sup(str) ⇒ Object
-
#inline_table(id) ⇒ Object
-
#inline_tcy(str) ⇒ Object
-
#inline_title(id) ⇒ Object
-
#inline_tt(str) ⇒ Object
-
#inline_ttb(str) ⇒ Object
-
#inline_tti(str) ⇒ Object
-
#inline_u(str) ⇒ Object
-
#inline_uchar(str) ⇒ Object
-
#inline_var(str) ⇒ Object
-
#label(id) ⇒ Object
-
#layoutfile ⇒ Object
-
#list(lines, id, caption, lang = nil) ⇒ Object
-
#list_body(_id, lines, lang) ⇒ Object
-
#list_header(id, caption, _lang) ⇒ Object
-
#listnum(lines, id, caption, lang = nil) ⇒ Object
-
#listnum_body(lines, lang) ⇒ Object
-
#make_math_image(str, path, fontsize = 12) ⇒ Object
-
#memo(lines, caption = nil) ⇒ Object
-
#nodisp_begin(level, label, caption) ⇒ Object
-
#nodisp_end(level) ⇒ Object
-
#nofunc_text(str) ⇒ Object
-
#noindent ⇒ Object
-
#nonum_begin(level, label, caption) ⇒ Object
-
#nonum_end(level) ⇒ Object
-
#note(lines, caption = nil) ⇒ Object
-
#notice(lines, caption = nil) ⇒ Object
-
#notoc_begin(level, label, caption) ⇒ Object
-
#notoc_end(level) ⇒ Object
-
#ol_begin ⇒ Object
-
#ol_end ⇒ Object
-
#ol_item(lines, _num) ⇒ Object
-
#olnum(num) ⇒ Object
-
#pagebreak ⇒ Object
-
#paragraph(lines) ⇒ Object
-
#parasep ⇒ Object
-
#planning(lines, caption = nil) ⇒ Object
-
#point(lines, caption = nil) ⇒ Object
-
#post_paragraph ⇒ Object
-
#pre_paragraph ⇒ Object
-
#quote(lines) ⇒ Object
-
#read(lines) ⇒ Object
(also: #lead)
-
#ref_begin(level, label, caption) ⇒ Object
-
#ref_end(_level) ⇒ Object
-
#result ⇒ Object
-
#result_metric(array) ⇒ Object
-
#security(lines, caption = nil) ⇒ Object
-
#shoot(lines, caption = nil) ⇒ Object
-
#source(lines, caption = nil, lang = nil) ⇒ Object
-
#source_body(_id, lines, lang) ⇒ Object
-
#source_header(caption) ⇒ Object
-
#sup_begin(level, label, caption) ⇒ Object
-
#sup_end(_level) ⇒ Object
-
#table(lines, id = nil, caption = nil) ⇒ Object
-
#table_begin(_ncols) ⇒ Object
-
#table_end ⇒ Object
-
#table_header(id, caption) ⇒ Object
-
#talk(lines) ⇒ Object
-
#td(str) ⇒ Object
-
#texequation(lines, id = nil, caption = '') ⇒ Object
-
#texequation_body(lines) ⇒ Object
-
#texequation_header(id, caption) ⇒ Object
-
#text(str) ⇒ Object
-
#th(str) ⇒ Object
-
#tip(lines, caption = nil) ⇒ Object
-
#tr(rows) ⇒ Object
-
#ul_begin ⇒ Object
-
#ul_end ⇒ Object
-
#ul_item_begin(lines) ⇒ Object
-
#ul_item_end ⇒ Object
-
#warning(lines, caption = nil) ⇒ Object
-
#xcolumn_begin(level, label, caption) ⇒ Object
-
#xcolumn_end(_level) ⇒ Object
-
#xmlns_ops_prefix ⇒ Object
Methods included from HTMLUtils
#escape, #escape_comment, #highlight, #highlight?, #highlight_pygments, #highlight_rouge, #normalize_id, #strip_html, #unescape
Methods included from TextUtils
#add_space?, #defer_math_image, #detab, #join_lines_to_paragraph, #split_paragraph
Methods inherited from Builder
#bind, #compile_inline, #detab, #embed, #error, #escape, #extract_chapter_id, #firstlinenum, #get_chap, #graph, #graph_aafigure, #graph_blockdiag, #graph_gnuplot, #graph_graphviz, #graph_plantuml, #highlight?, #image, #initialize, #inline_column, #inline_embed, #inline_hd, #inline_href, #inline_imgref, #inline_include, #inline_kw, #inline_ruby, #inline_w, #inline_wb, #line_num, #load_words, #over_secnolevel?, #parse_metric, #parse_table_rows, #print, #puts, #raw, #system_graph, #table_rows, #target_name, #tsize, #warn
Instance Method Details
#best(lines, caption = nil) ⇒ Object
256
257
258
|
# File 'lib/review/htmlbuilder.rb', line 256
def best(lines, caption = nil)
captionblock('best', lines, caption)
end
|
#bibpaper(lines, id, caption) ⇒ Object
943
944
945
946
947
948
|
# File 'lib/review/htmlbuilder.rb', line 943
def bibpaper(lines, id, caption)
puts %Q(<div class="bibpaper">)
(id, caption)
bibpaper_bibpaper(id, caption, lines) unless lines.empty?
puts '</div>'
end
|
#bibpaper_bibpaper(_id, _caption, lines) ⇒ Object
957
958
959
|
# File 'lib/review/htmlbuilder.rb', line 957
def bibpaper_bibpaper(_id, _caption, lines)
print split_paragraph(lines).join
end
|
950
951
952
953
954
955
|
# File 'lib/review/htmlbuilder.rb', line 950
def (id, caption)
print %Q(<a id="bib-#{normalize_id(id)}">)
print "[#{@chapter.bibpaper(id).number}]"
print '</a>'
puts " #{compile_inline(caption)}"
end
|
#blankline ⇒ Object
770
771
772
|
# File 'lib/review/htmlbuilder.rb', line 770
def blankline
puts '<p><br /></p>'
end
|
#box(lines, caption = nil) ⇒ Object
288
289
290
291
292
293
294
295
296
297
298
299
|
# File 'lib/review/htmlbuilder.rb', line 288
def box(lines, caption = nil)
puts %Q(<div class="syntax">)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
print %Q(<pre class="syntax">)
lines.each do |line|
puts detab(line)
end
puts '</pre>'
puts '</div>'
end
|
#bpo(lines) ⇒ Object
778
779
780
781
782
783
784
|
# File 'lib/review/htmlbuilder.rb', line 778
def bpo(lines)
puts '<bpo>'
lines.each do |line|
puts detab(line)
end
puts '</bpo>'
end
|
#captionblock(type, lines, caption) ⇒ Object
230
231
232
233
234
235
236
237
238
|
# File 'lib/review/htmlbuilder.rb', line 230
def captionblock(type, lines, caption)
puts %Q(<div class="#{type}">)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
blocked_lines = split_paragraph(lines)
puts blocked_lines.join("\n")
puts '</div>'
end
|
#caution(lines, caption = nil) ⇒ Object
268
269
270
|
# File 'lib/review/htmlbuilder.rb', line 268
def caution(lines, caption = nil)
captionblock('caution', lines, caption)
end
|
#centering(lines) ⇒ Object
1174
1175
1176
|
# File 'lib/review/htmlbuilder.rb', line 1174
def centering(lines)
puts split_paragraph(lines).join("\n").gsub('<p>', %Q(<p class="center">))
end
|
#cmd(lines, caption = nil) ⇒ Object
499
500
501
502
503
504
505
506
507
508
509
510
|
# File 'lib/review/htmlbuilder.rb', line 499
def cmd(lines, caption = nil)
puts %Q(<div class="cmd-code">)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
print %Q(<pre class="cmd">)
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
lexer = 'shell-session'
puts highlight(body: body, lexer: lexer, format: 'html')
puts '</pre>'
puts '</div>'
end
|
#column_begin(level, label, caption) ⇒ Object
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
|
# File 'lib/review/htmlbuilder.rb', line 183
def column_begin(level, label, caption)
puts %Q(<div class="column">)
@column += 1
puts if level > 1
a_id = %Q(<a id="column-#{@column}"></a>)
if caption.empty?
puts a_id if label
elsif label
puts %Q(<h#{level} id="#{normalize_id(label)}">#{a_id}#{compile_inline(caption)}</h#{level}>)
else
puts %Q(<h#{level}>#{a_id}#{compile_inline(caption)}</h#{level}>)
end
end
|
#column_end(_level) ⇒ Object
199
200
201
|
# File 'lib/review/htmlbuilder.rb', line 199
def column_end(_level)
puts '</div>'
end
|
714
715
716
717
718
719
720
|
# File 'lib/review/htmlbuilder.rb', line 714
def (lines, = nil)
return unless @book.config['draft']
lines ||= []
lines.unshift(escape()) unless .blank?
str = lines.join('<br />')
puts %Q(<div class="draft-comment">#{str}</div>)
end
|
#compile_href(url, label) ⇒ Object
1162
1163
1164
1165
1166
1167
1168
|
# File 'lib/review/htmlbuilder.rb', line 1162
def compile_href(url, label)
if @book.config['externallink']
%Q(<a href="#{escape(url)}" class="link">#{label.nil? ? escape(url) : escape(label)}</a>)
else
label.nil? ? escape(url) : I18n.t('external_link', [escape(label), escape(url)])
end
end
|
#compile_kw(word, alt) ⇒ Object
850
851
852
853
854
855
856
857
|
# File 'lib/review/htmlbuilder.rb', line 850
def compile_kw(word, alt)
%Q(<b class="kw">) +
if alt
then escape(word + " (#{alt.strip})")
else escape(word)
end +
"</b><!-- IDX:#{(escape(word))} -->"
end
|
#compile_ruby(base, ruby) ⇒ Object
842
843
844
845
846
847
848
|
# File 'lib/review/htmlbuilder.rb', line 842
def compile_ruby(base, ruby)
if @book.htmlversion == 5
%Q(<ruby>#{escape(base)}<rp>#{I18n.t('ruby_prefix')}</rp><rt>#{escape(ruby)}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>)
else
%Q(<ruby><rb>#{escape(base)}</rb><rp>#{I18n.t('ruby_prefix')}</rp><rt>#{ruby}</rt><rp>#{I18n.t('ruby_postfix')}</rp></ruby>)
end
end
|
#dd(lines) ⇒ Object
346
347
348
|
# File 'lib/review/htmlbuilder.rb', line 346
def dd(lines)
puts "<dd>#{join_lines_to_paragraph(lines)}</dd>"
end
|
338
339
340
|
# File 'lib/review/htmlbuilder.rb', line 338
def dl_begin
puts '<dl>'
end
|
350
351
352
|
# File 'lib/review/htmlbuilder.rb', line 350
def dl_end
puts '</dl>'
end
|
#doorquote(lines, ref) ⇒ Object
526
527
528
529
530
531
532
|
# File 'lib/review/htmlbuilder.rb', line 526
def doorquote(lines, ref)
blocked_lines = split_paragraph(lines)
puts %Q(<blockquote style="text-align:right;">)
puts blocked_lines.join("\n")
puts %Q(<p>#{ref}より</p>)
puts '</blockquote>'
end
|
342
343
344
|
# File 'lib/review/htmlbuilder.rb', line 342
def dt(line)
puts "<dt>#{line}</dt>"
end
|
#emlist(lines, caption = nil, lang = nil) ⇒ Object
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
|
# File 'lib/review/htmlbuilder.rb', line 456
def emlist(lines, caption = nil, lang = nil)
puts %Q(<div class="emlist-code">)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
class_names = ['emlist']
class_names.push("language-#{lang}") unless lang.blank?
class_names.push('highlight') if highlight?
print %Q(<pre class="#{class_names.join(' ')}">)
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
lexer = lang
puts highlight(body: body, lexer: lexer, format: 'html')
puts '</pre>'
puts '</div>'
end
|
#emlistnum(lines, caption = nil, lang = nil) ⇒ Object
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
|
# File 'lib/review/htmlbuilder.rb', line 472
def emlistnum(lines, caption = nil, lang = nil)
puts %Q(<div class="emlistnum-code">)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
lexer = lang
first_line_number = line_num
hs = highlight(body: body, lexer: lexer, format: 'html', linenum: true,
options: { linenostart: first_line_number })
if highlight?
puts hs
else
class_names = ['emlist']
class_names.push("language-#{lang}") unless lang.blank?
class_names.push('highlight') if highlight?
print %Q(<pre class="#{class_names.join(' ')}">)
hs.split("\n").each_with_index do |line, i|
puts detab((i + first_line_number).to_s.rjust(2) + ': ' + line)
end
puts '</pre>'
end
puts '</div>'
end
|
#emtable(lines, caption = nil) ⇒ Object
710
711
712
|
# File 'lib/review/htmlbuilder.rb', line 710
def emtable(lines, caption = nil)
table(lines, nil, caption)
end
|
40
41
42
|
# File 'lib/review/htmlbuilder.rb', line 40
def extname
".#{@book.config['htmlext']}"
end
|
#flushright(lines) ⇒ Object
1170
1171
1172
|
# File 'lib/review/htmlbuilder.rb', line 1170
def flushright(lines)
puts split_paragraph(lines).join("\n").gsub('<p>', %Q(<p class="flushright">))
end
|
722
723
724
725
726
727
728
729
730
731
732
733
|
# File 'lib/review/htmlbuilder.rb', line 722
def (id, str)
if @book.config['epubversion'].to_i == 3
back = ''
if @book.config['epubmaker'] && @book.config['epubmaker']['back_footnote']
back = %Q(<a href="#fnb-#{normalize_id(id)}">#{I18n.t('html_footnote_backmark')}</a>)
end
puts %Q(<div class="footnote" epub:type="footnote" id="fn-#{normalize_id(id)}"><p class="footnote">#{back}#{I18n.t('html_footnote_textmark', @chapter.(id).number)}#{compile_inline(str)}</p></div>)
else
puts %Q(<div class="footnote" id="fn-#{normalize_id(id)}"><p class="footnote">[<a href="#fnb-#{normalize_id(id)}">*#{@chapter.(id).number}</a>] #{compile_inline(str)}</p></div>)
end
end
|
#handle_metric(str) ⇒ Object
592
593
594
595
596
597
598
599
|
# File 'lib/review/htmlbuilder.rb', line 592
def handle_metric(str)
if str =~ /\Ascale=([\d.]+)\Z/
return { 'class' => sprintf('width-%03dper', ($1.to_f * 100).round) }
end
k, v = str.split('=', 2)
{ k => v.sub(/\A["']/, '').sub(/["']\Z/, '') }
end
|
#headline(level, label, caption) ⇒ Object
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
|
# File 'lib/review/htmlbuilder.rb', line 118
def headline(level, label, caption)
prefix, anchor = headline_prefix(level)
if prefix
prefix = %Q(<span class="secno">#{prefix}</span>)
end
puts '' if level > 1
a_id = ''
if anchor
a_id = %Q(<a id="h#{anchor}"></a>)
end
if caption.empty?
puts a_id if label
elsif label
puts %Q(<h#{level} id="#{normalize_id(label)}">#{a_id}#{prefix}#{compile_inline(caption)}</h#{level}>)
else
puts %Q(<h#{level}>#{a_id}#{prefix}#{compile_inline(caption)}</h#{level}>)
end
end
|
762
763
764
|
# File 'lib/review/htmlbuilder.rb', line 762
def hr
puts '<hr />'
end
|
#image_dummy(id, caption, lines) ⇒ Object
622
623
624
625
626
627
628
629
630
631
632
|
# File 'lib/review/htmlbuilder.rb', line 622
def image_dummy(id, caption, lines)
warn "image not bound: #{id}"
puts %Q(<div id="#{normalize_id(id)}" class="image">)
puts %Q(<pre class="dummyimage">)
lines.each do |line|
puts detab(line)
end
puts '</pre>'
(id, caption)
puts '</div>'
end
|
#image_ext ⇒ Object
1178
1179
1180
|
# File 'lib/review/htmlbuilder.rb', line 1178
def image_ext
'png'
end
|
634
635
636
637
638
639
640
641
642
|
# File 'lib/review/htmlbuilder.rb', line 634
def (id, caption)
puts %Q(<p class="caption">)
if get_chap
puts %Q(#{I18n.t('image')}#{I18n.t('format_number_header', [get_chap, @chapter.image(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)})
else
puts %Q(#{I18n.t('image')}#{I18n.t('format_number_header_without_chapter', [@chapter.image(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)})
end
puts '</p>'
end
|
#image_image(id, caption, metric) ⇒ Object
614
615
616
617
618
619
620
|
# File 'lib/review/htmlbuilder.rb', line 614
def image_image(id, caption, metric)
metrics = parse_metric('html', metric)
puts %Q(<div id="#{normalize_id(id)}" class="image">)
puts %Q(<img src="#{@chapter.image(id).path.sub(%r{\A\./}, '')}" alt="#{escape(compile_inline(caption))}"#{metrics} />)
(id, caption)
puts '</div>'
end
|
#imgtable(lines, id, caption = nil, metric = nil) ⇒ Object
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
|
# File 'lib/review/htmlbuilder.rb', line 684
def imgtable(lines, id, caption = nil, metric = nil)
unless @chapter.image_bound?(id)
warn "image not bound: #{id}"
image_dummy(id, caption, lines)
return
end
puts %Q(<div id="#{normalize_id(id)}" class="imgtable image">)
begin
if caption.present?
(id, caption)
end
rescue KeyError
error "no such table: #{id}"
end
imgtable_image(id, caption, metric)
puts '</div>'
end
|
#imgtable_image(id, caption, metric) ⇒ Object
705
706
707
708
|
# File 'lib/review/htmlbuilder.rb', line 705
def imgtable_image(id, caption, metric)
metrics = parse_metric('html', metric)
puts %Q(<img src="#{@chapter.image(id).path.sub(%r{\A\./}, '')}" alt="#{escape(compile_inline(caption))}"#{metrics} />)
end
|
#important(lines, caption = nil) ⇒ Object
260
261
262
|
# File 'lib/review/htmlbuilder.rb', line 260
def important(lines, caption = nil)
captionblock('important', lines, caption)
end
|
#indepimage(lines, id, caption = '', metric = nil) ⇒ Object
Also known as:
numberlessimage
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
|
# File 'lib/review/htmlbuilder.rb', line 735
def indepimage(lines, id, caption = '', metric = nil)
metrics = parse_metric('html', metric)
caption = '' unless caption.present?
puts %Q(<div id="#{normalize_id(id)}" class="image">)
begin
puts %Q(<img src="#{@chapter.image(id).path.sub(%r{\A\./}, '')}" alt="#{escape(compile_inline(caption))}"#{metrics} />)
rescue
warn "image not bound: #{id}"
if lines
puts %Q(<pre class="dummyimage">)
lines.each do |line|
puts detab(line)
end
puts '</pre>'
end
end
if caption.present?
puts %Q(<p class="caption">)
puts %Q(#{I18n.t('numberless_image')}#{I18n.t('caption_prefix')}#{compile_inline(caption)})
puts '</p>'
end
puts '</div>'
end
|
#info(lines, caption = nil) ⇒ Object
248
249
250
|
# File 'lib/review/htmlbuilder.rb', line 248
def info(lines, caption = nil)
captionblock('info', lines, caption)
end
|
#inline_abbr(str) ⇒ Object
1044
1045
1046
|
# File 'lib/review/htmlbuilder.rb', line 1044
def inline_abbr(str)
inline_asis(str, 'abbr')
end
|
#inline_acronym(str) ⇒ Object
1048
1049
1050
|
# File 'lib/review/htmlbuilder.rb', line 1048
def inline_acronym(str)
inline_asis(str, 'acronym')
end
|
#inline_ami(str) ⇒ Object
867
868
869
|
# File 'lib/review/htmlbuilder.rb', line 867
def inline_ami(str)
%Q(<span class="ami">#{escape(str)}</span>)
end
|
#inline_asis(str, tag) ⇒ Object
1040
1041
1042
|
# File 'lib/review/htmlbuilder.rb', line 1040
def inline_asis(str, tag)
%Q(<#{tag}>#{escape(str)}</#{tag}>)
end
|
#inline_b(str) ⇒ Object
863
864
865
|
# File 'lib/review/htmlbuilder.rb', line 863
def inline_b(str)
%Q(<b>#{escape(str)}</b>)
end
|
#inline_balloon(str) ⇒ Object
1150
1151
1152
|
# File 'lib/review/htmlbuilder.rb', line 1150
def inline_balloon(str)
%Q(<span class="balloon">#{escape_html(str)}</span>)
end
|
#inline_bib(id) ⇒ Object
961
962
963
964
965
|
# File 'lib/review/htmlbuilder.rb', line 961
def inline_bib(id)
%Q(<a href="#{@book.bib_file.gsub(/\.re\Z/, ".#{@book.config['htmlext']}")}#bib-#{normalize_id(id)}">[#{@chapter.bibpaper(id).number}]</a>)
rescue KeyError
error "unknown bib: #{id}"
end
|
#inline_big(str) ⇒ Object
1080
1081
1082
|
# File 'lib/review/htmlbuilder.rb', line 1080
def inline_big(str)
inline_asis(str, 'big')
end
|
#inline_bou(str) ⇒ Object
871
872
873
|
# File 'lib/review/htmlbuilder.rb', line 871
def inline_bou(str)
%Q(<span class="bou">#{escape(str)}</span>)
end
|
#inline_br(_str) ⇒ Object
911
912
913
|
# File 'lib/review/htmlbuilder.rb', line 911
def inline_br(_str)
'<br />'
end
|
#inline_chap(id) ⇒ Object
811
812
813
814
815
816
817
818
819
|
# File 'lib/review/htmlbuilder.rb', line 811
def inline_chap(id)
if @book.config['chapterlink']
%Q(<a href="./#{id}#{extname}">#{@book.chapter_index.number(id)}</a>)
else
@book.chapter_index.number(id)
end
rescue KeyError
error "unknown chapter: #{id}"
end
|
#inline_chapref(id) ⇒ Object
800
801
802
803
804
805
806
807
808
809
|
# File 'lib/review/htmlbuilder.rb', line 800
def inline_chapref(id)
title = super
if @book.config['chapterlink']
%Q(<a href="./#{id}#{extname}">#{title}</a>)
else
title
end
rescue KeyError
error "unknown chapter: #{id}"
end
|
#inline_cite(str) ⇒ Object
1052
1053
1054
|
# File 'lib/review/htmlbuilder.rb', line 1052
def inline_cite(str)
inline_asis(str, 'cite')
end
|
#inline_code(str) ⇒ Object
895
896
897
898
899
900
901
|
# File 'lib/review/htmlbuilder.rb', line 895
def inline_code(str)
if @book.htmlversion == 5
%Q(<code class="inline-code tt">#{escape(str)}</code>)
else
%Q(<tt class="inline-code">#{escape(str)}</tt>)
end
end
|
#inline_column_chap(chapter, id) ⇒ Object
990
991
992
993
994
995
996
997
998
|
# File 'lib/review/htmlbuilder.rb', line 990
def inline_column_chap(chapter, id)
if @book.config['chapterlink']
%Q(<a href="\##{column_label(id, chapter)}" class="columnref">#{I18n.t('column', compile_inline(chapter.column(id).caption))}</a>)
else
I18n.t('column', compile_inline(chapter.column(id).caption))
end
rescue KeyError
error "unknown column: #{id}"
end
|
1133
1134
1135
1136
1137
1138
1139
|
# File 'lib/review/htmlbuilder.rb', line 1133
def (str)
if @book.config['draft']
%Q(<span class="draft-comment">#{escape(str)}</span>)
else
''
end
end
|
#inline_del(str) ⇒ Object
1104
1105
1106
|
# File 'lib/review/htmlbuilder.rb', line 1104
def inline_del(str)
inline_asis(str, 'del')
end
|
#inline_dfn(str) ⇒ Object
1056
1057
1058
|
# File 'lib/review/htmlbuilder.rb', line 1056
def inline_dfn(str)
inline_asis(str, 'dfn')
end
|
#inline_dtp(str) ⇒ Object
891
892
893
|
# File 'lib/review/htmlbuilder.rb', line 891
def inline_dtp(str)
"<?dtp #{str} ?>"
end
|
#inline_em(str) ⇒ Object
1060
1061
1062
|
# File 'lib/review/htmlbuilder.rb', line 1060
def inline_em(str)
inline_asis(str, 'em')
end
|
#inline_eq(id) ⇒ Object
1030
1031
1032
1033
1034
1035
1036
1037
1038
|
# File 'lib/review/htmlbuilder.rb', line 1030
def inline_eq(id)
str = super(id)
chapter, id = (id)
if @book.config['chapterlink']
%Q(<span class="eqref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
else
%Q(<span class="eqref">#{str}</span>)
end
end
|
#inline_fn(id) ⇒ Object
832
833
834
835
836
837
838
839
840
|
# File 'lib/review/htmlbuilder.rb', line 832
def inline_fn(id)
if @book.config['epubversion'].to_i == 3
%Q(<a id="fnb-#{normalize_id(id)}" href="#fn-#{normalize_id(id)}" class="noteref" epub:type="noteref">#{I18n.t('html_footnote_refmark', @chapter.(id).number)}</a>)
else
%Q(<a id="fnb-#{normalize_id(id)}" href="#fn-#{normalize_id(id)}" class="noteref">*#{@chapter.(id).number}</a>)
end
rescue KeyError
error "unknown footnote: #{id}"
end
|
#inline_hd_chap(chap, id) ⇒ Object
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
|
# File 'lib/review/htmlbuilder.rb', line 967
def inline_hd_chap(chap, id)
n = chap.headline_index.number(id)
if n.present? && chap.number && over_secnolevel?(n)
str = I18n.t('hd_quote', [n, compile_inline(chap.headline(id).caption)])
else
str = I18n.t('hd_quote_without_number', compile_inline(chap.headline(id).caption))
end
if @book.config['chapterlink']
anchor = 'h' + n.gsub('.', '-')
%Q(<a href="#{chap.id}#{extname}##{anchor}">#{str}</a>)
else
str
end
rescue KeyError
error "unknown headline: #{id}"
end
|
#inline_hidx(str) ⇒ Object
907
908
909
|
# File 'lib/review/htmlbuilder.rb', line 907
def inline_hidx(str)
%Q(<!-- IDX:#{(escape(str))} -->)
end
|
#inline_i(str) ⇒ Object
859
860
861
|
# File 'lib/review/htmlbuilder.rb', line 859
def inline_i(str)
%Q(<i>#{escape(str)}</i>)
end
|
#inline_icon(id) ⇒ Object
1120
1121
1122
1123
1124
1125
1126
1127
|
# File 'lib/review/htmlbuilder.rb', line 1120
def inline_icon(id)
begin
%Q(<img src="#{@chapter.image(id).path.sub(%r{\A\./}, '')}" alt="[#{id}]" />)
rescue
warn "image not bound: #{id}"
%Q(<pre>missing image: #{id}</pre>)
end
end
|
#inline_idx(str) ⇒ Object
903
904
905
|
# File 'lib/review/htmlbuilder.rb', line 903
def inline_idx(str)
%Q(#{escape(str)}<!-- IDX:#{(escape(str))} -->)
end
|
#inline_img(id) ⇒ Object
1020
1021
1022
1023
1024
1025
1026
1027
1028
|
# File 'lib/review/htmlbuilder.rb', line 1020
def inline_img(id)
str = super(id)
chapter, id = (id)
if @book.config['chapterlink']
%Q(<span class="imgref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
else
%Q(<span class="imgref">#{str}</span>)
end
end
|
#inline_ins(str) ⇒ Object
1108
1109
1110
|
# File 'lib/review/htmlbuilder.rb', line 1108
def inline_ins(str)
inline_asis(str, 'ins')
end
|
#inline_kbd(str) ⇒ Object
1064
1065
1066
|
# File 'lib/review/htmlbuilder.rb', line 1064
def inline_kbd(str)
inline_asis(str, 'kbd')
end
|
#inline_labelref(idref) ⇒ Object
Also known as:
inline_ref
790
791
792
|
# File 'lib/review/htmlbuilder.rb', line 790
def inline_labelref(idref)
%Q(<a target='#{escape(idref)}'>「#{I18n.t('label_marker')}#{escape(idref)}」</a>)
end
|
#inline_list(id) ⇒ Object
1000
1001
1002
1003
1004
1005
1006
1007
1008
|
# File 'lib/review/htmlbuilder.rb', line 1000
def inline_list(id)
str = super(id)
chapter, id = (id)
if @book.config['chapterlink']
%Q(<span class="listref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
else
%Q(<span class="listref">#{str}</span>)
end
end
|
#inline_m(str) ⇒ Object
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
|
# File 'lib/review/htmlbuilder.rb', line 915
def inline_m(str)
if @book.config['mathml']
require 'math_ml'
require 'math_ml/symbol/character_reference'
parser = MathML::LaTeX::Parser.new(symbol: MathML::Symbol::CharacterReference)
%Q(<span class="equation">#{parser.parse(str, nil)}</span>)
elsif @book.config['imgmath']
math_str = '$' + str + '$'
key = Digest::SHA256.hexdigest(str)
math_dir = File.join(@book.config['imagedir'], '_review_math')
Dir.mkdir(math_dir) unless Dir.exist?(math_dir)
img_path = File.join(math_dir, "_gen_#{key}.#{@book.config['imgmath_options']['format']}")
if @book.config.check_version('2', exception: false)
make_math_image(math_str, img_path)
%Q(<span class="equation"><img src="#{img_path}" /></span>)
else
defer_math_image(math_str, img_path, key)
%Q(<span class="equation"><img src="#{img_path}" class="math_gen_#{key}" alt="#{escape(str)}" /></span>)
end
else
%Q(<span class="equation">#{escape(str)}</span>)
end
end
|
796
797
798
|
# File 'lib/review/htmlbuilder.rb', line 796
def (id)
error "pageref op is unsupported on this builder: #{id}"
end
|
#inline_raw(str) ⇒ Object
1154
1155
1156
|
# File 'lib/review/htmlbuilder.rb', line 1154
def inline_raw(str)
super(str)
end
|
#inline_recipe(str) ⇒ Object
1116
1117
1118
|
# File 'lib/review/htmlbuilder.rb', line 1116
def inline_recipe(str)
%Q(<span class="recipe">「#{escape(str)}」</span>)
end
|
#inline_samp(str) ⇒ Object
1068
1069
1070
|
# File 'lib/review/htmlbuilder.rb', line 1068
def inline_samp(str)
inline_asis(str, 'samp')
end
|
#inline_small(str) ⇒ Object
1084
1085
1086
|
# File 'lib/review/htmlbuilder.rb', line 1084
def inline_small(str)
inline_asis(str, 'small')
end
|
#inline_strong(str) ⇒ Object
1072
1073
1074
|
# File 'lib/review/htmlbuilder.rb', line 1072
def inline_strong(str)
inline_asis(str, 'strong')
end
|
#inline_sub(str) ⇒ Object
1088
1089
1090
|
# File 'lib/review/htmlbuilder.rb', line 1088
def inline_sub(str)
inline_asis(str, 'sub')
end
|
#inline_sup(str) ⇒ Object
1092
1093
1094
|
# File 'lib/review/htmlbuilder.rb', line 1092
def inline_sup(str)
inline_asis(str, 'sup')
end
|
#inline_table(id) ⇒ Object
1010
1011
1012
1013
1014
1015
1016
1017
1018
|
# File 'lib/review/htmlbuilder.rb', line 1010
def inline_table(id)
str = super(id)
chapter, id = (id)
if @book.config['chapterlink']
%Q(<span class="tableref"><a href="./#{chapter.id}#{extname}##{normalize_id(id)}">#{str}</a></span>)
else
%Q(<span class="tableref">#{str}</span>)
end
end
|
#inline_tcy(str) ⇒ Object
1141
1142
1143
1144
1145
1146
1147
1148
|
# File 'lib/review/htmlbuilder.rb', line 1141
def inline_tcy(str)
style = 'tcy'
if str.size == 1 && str.match(/[[:ascii:]]/)
style = 'upright'
end
%Q(<span class="#{style}">#{escape(str)}</span>)
end
|
#inline_title(id) ⇒ Object
821
822
823
824
825
826
827
828
829
830
|
# File 'lib/review/htmlbuilder.rb', line 821
def inline_title(id)
title = super
if @book.config['chapterlink']
%Q(<a href="./#{id}#{extname}">#{title}</a>)
else
title
end
rescue KeyError
error "unknown chapter: #{id}"
end
|
#inline_tt(str) ⇒ Object
1096
1097
1098
1099
1100
1101
1102
|
# File 'lib/review/htmlbuilder.rb', line 1096
def inline_tt(str)
if @book.htmlversion == 5
%Q(<code class="tt">#{escape(str)}</code>)
else
%Q(<tt>#{escape(str)}</tt>)
end
end
|
#inline_ttb(str) ⇒ Object
883
884
885
886
887
888
889
|
# File 'lib/review/htmlbuilder.rb', line 883
def inline_ttb(str)
if @book.htmlversion == 5
%Q(<code class="tt"><b>#{escape(str)}</b></code>)
else
%Q(<tt><b>#{escape(str)}</b></tt>)
end
end
|
#inline_tti(str) ⇒ Object
875
876
877
878
879
880
881
|
# File 'lib/review/htmlbuilder.rb', line 875
def inline_tti(str)
if @book.htmlversion == 5
%Q(<code class="tt"><i>#{escape(str)}</i></code>)
else
%Q(<tt><i>#{escape(str)}</i></tt>)
end
end
|
#inline_u(str) ⇒ Object
1112
1113
1114
|
# File 'lib/review/htmlbuilder.rb', line 1112
def inline_u(str)
%Q(<u>#{escape(str)}</u>)
end
|
#inline_uchar(str) ⇒ Object
1129
1130
1131
|
# File 'lib/review/htmlbuilder.rb', line 1129
def inline_uchar(str)
%Q(&#x#{str};)
end
|
#inline_var(str) ⇒ Object
1076
1077
1078
|
# File 'lib/review/htmlbuilder.rb', line 1076
def inline_var(str)
inline_asis(str, 'var')
end
|
#label(id) ⇒ Object
766
767
768
|
# File 'lib/review/htmlbuilder.rb', line 766
def label(id)
puts %Q(<a id="#{normalize_id(id)}"></a>)
end
|
#layoutfile ⇒ Object
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
|
# File 'lib/review/htmlbuilder.rb', line 63
def layoutfile
if @book.config.maker == 'webmaker'
htmldir = 'web/html'
localfilename = 'layout-web.html.erb'
else
htmldir = 'html'
localfilename = 'layout.html.erb'
end
if @book.htmlversion == 5
htmlfilename = File.join(htmldir, 'layout-html5.html.erb')
else
htmlfilename = File.join(htmldir, 'layout-xhtml1.html.erb')
end
layout_file = File.join(@book.basedir, 'layouts', localfilename)
if !File.exist?(layout_file) && File.exist?(File.join(@book.basedir, 'layouts', 'layout.erb'))
raise ReVIEW::ConfigError, 'layout.erb is obsoleted. Please use layout.html.erb.'
end
if File.exist?(layout_file)
if ENV['REVIEW_SAFE_MODE'].to_i & 4 > 0
warn %Q(user's layout is prohibited in safe mode. ignored.)
layout_file = File.expand_path(htmlfilename, ReVIEW::Template::TEMPLATE_DIR)
end
else
layout_file = File.expand_path(htmlfilename, ReVIEW::Template::TEMPLATE_DIR)
end
layout_file
end
|
#list(lines, id, caption, lang = nil) ⇒ Object
374
375
376
377
378
379
380
381
382
383
|
# File 'lib/review/htmlbuilder.rb', line 374
def list(lines, id, caption, lang = nil)
puts %Q(<div id="#{normalize_id(id)}" class="caption-code">)
begin
(id, caption, lang)
rescue KeyError
error "no such list: #{id}"
end
list_body(id, lines, lang)
puts '</div>'
end
|
#list_body(_id, lines, lang) ⇒ Object
393
394
395
396
397
398
399
400
401
402
|
# File 'lib/review/htmlbuilder.rb', line 393
def list_body(_id, lines, lang)
class_names = ['list']
lexer = lang
class_names.push("language-#{lexer}") unless lexer.blank?
class_names.push('highlight') if highlight?
print %Q(<pre class="#{class_names.join(' ')}">)
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
puts highlight(body: body, lexer: lexer, format: 'html')
puts '</pre>'
end
|
385
386
387
388
389
390
391
|
# File 'lib/review/htmlbuilder.rb', line 385
def (id, caption, _lang)
if get_chap
puts %Q(<p class="caption">#{I18n.t('list')}#{I18n.t('format_number_header', [get_chap, @chapter.list(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
else
puts %Q(<p class="caption">#{I18n.t('list')}#{I18n.t('format_number_header_without_chapter', [@chapter.list(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
end
end
|
#listnum(lines, id, caption, lang = nil) ⇒ Object
425
426
427
428
429
430
431
432
433
434
|
# File 'lib/review/htmlbuilder.rb', line 425
def listnum(lines, id, caption, lang = nil)
puts %Q(<div id="#{normalize_id(id)}" class="code">)
begin
(id, caption, lang)
rescue KeyError
error "no such list: #{id}"
end
listnum_body(lines, lang)
puts '</div>'
end
|
#listnum_body(lines, lang) ⇒ Object
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
|
# File 'lib/review/htmlbuilder.rb', line 436
def listnum_body(lines, lang)
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
lexer = lang
first_line_number = line_num
hs = highlight(body: body, lexer: lexer, format: 'html', linenum: true,
options: { linenostart: first_line_number })
if highlight?
puts hs
else
class_names = ['list']
class_names.push("language-#{lang}") unless lang.blank?
print %Q(<pre class="#{class_names.join(' ')}">)
hs.split("\n").each_with_index do |line, i|
puts detab((i + first_line_number).to_s.rjust(2) + ': ' + line)
end
puts '</pre>'
end
end
|
#make_math_image(str, path, fontsize = 12) ⇒ Object
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
1204
1205
1206
1207
1208
1209
1210
1211
1212
1213
1214
|
# File 'lib/review/htmlbuilder.rb', line 1186
def make_math_image(str, path, fontsize = 12)
fontsize2 = (fontsize * 1.2).round.to_i
texsrc = <<-EOB
\\documentclass[12pt]{article}
\\usepackage[utf8]{inputenc}
\\usepackage{amsmath}
\\usepackage{amsthm}
\\usepackage{amssymb}
\\usepackage{amsfonts}
\\usepackage{anyfontsize}
\\usepackage{bm}
\\pagestyle{empty}
\\begin{document}
\\fontsize{#{fontsize}}{#{fontsize2}}\\selectfont #{str}
\\end{document}
EOB
Dir.mktmpdir do |tmpdir|
tex_path = File.join(tmpdir, 'tmpmath.tex')
dvi_path = File.join(tmpdir, 'tmpmath.dvi')
File.write(tex_path, texsrc)
cmd = "latex --interaction=nonstopmode --output-directory=#{tmpdir} #{tex_path} && dvipng -T tight -z9 -o #{path} #{dvi_path}"
out, status = Open3.capture2e(cmd)
unless status.success?
error "latex compile error\n\nError log:\n" + out
end
end
end
|
#memo(lines, caption = nil) ⇒ Object
240
241
242
|
# File 'lib/review/htmlbuilder.rb', line 240
def memo(lines, caption = nil)
captionblock('memo', lines, caption)
end
|
#nodisp_begin(level, label, caption) ⇒ Object
168
169
170
171
172
173
174
175
176
177
178
|
# File 'lib/review/htmlbuilder.rb', line 168
def nodisp_begin(level, label, caption)
@nonum_counter += 1
puts '' if level > 1
return unless caption.present?
if label
puts %Q(<a id="#{normalize_id(label)}" /><h#{level} id="#{normalize_id(label)}" hidden="true">#{compile_inline(caption)}</h#{level}>)
else
id = normalize_id("#{@chapter.name}_nonum#{@nonum_counter}")
puts %Q(<a id="#{id}" /><h#{level} id="#{id}" hidden="true">#{compile_inline(caption)}</h#{level}>)
end
end
|
#nodisp_end(level) ⇒ Object
180
181
|
# File 'lib/review/htmlbuilder.rb', line 180
def nodisp_end(level)
end
|
#nofunc_text(str) ⇒ Object
1158
1159
1160
|
# File 'lib/review/htmlbuilder.rb', line 1158
def nofunc_text(str)
escape(str)
end
|
786
787
788
|
# File 'lib/review/htmlbuilder.rb', line 786
def noindent
@noindent = true
end
|
#nonum_begin(level, label, caption) ⇒ Object
138
139
140
141
142
143
144
145
146
147
148
|
# File 'lib/review/htmlbuilder.rb', line 138
def nonum_begin(level, label, caption)
@nonum_counter += 1
puts if level > 1
return unless caption.present?
if label
puts %Q(<h#{level} id="#{normalize_id(label)}">#{compile_inline(caption)}</h#{level}>)
else
id = normalize_id("#{@chapter.name}_nonum#{@nonum_counter}")
puts %Q(<h#{level} id="#{id}">#{compile_inline(caption)}</h#{level}>)
end
end
|
#nonum_end(level) ⇒ Object
150
151
|
# File 'lib/review/htmlbuilder.rb', line 150
def nonum_end(level)
end
|
#note(lines, caption = nil) ⇒ Object
301
302
303
|
# File 'lib/review/htmlbuilder.rb', line 301
def note(lines, caption = nil)
captionblock('note', lines, caption)
end
|
#notice(lines, caption = nil) ⇒ Object
272
273
274
|
# File 'lib/review/htmlbuilder.rb', line 272
def notice(lines, caption = nil)
captionblock('notice', lines, caption)
end
|
#notoc_begin(level, label, caption) ⇒ Object
153
154
155
156
157
158
159
160
161
162
163
|
# File 'lib/review/htmlbuilder.rb', line 153
def notoc_begin(level, label, caption)
@nonum_counter += 1
puts if level > 1
return unless caption.present?
if label
puts %Q(<h#{level} id="#{normalize_id(label)}" notoc="true">#{compile_inline(caption)}</h#{level}>)
else
id = normalize_id("#{@chapter.name}_nonum#{@nonum_counter}")
puts %Q(<h#{level} id="#{id}" notoc="true">#{compile_inline(caption)}</h#{level}>)
end
end
|
#notoc_end(level) ⇒ Object
165
166
|
# File 'lib/review/htmlbuilder.rb', line 165
def notoc_end(level)
end
|
321
322
323
324
325
326
327
328
|
# File 'lib/review/htmlbuilder.rb', line 321
def ol_begin
if @ol_num
puts %Q(<ol start="#{@ol_num}">) @ol_num = nil
else
puts '<ol>'
end
end
|
334
335
336
|
# File 'lib/review/htmlbuilder.rb', line 334
def ol_end
puts '</ol>'
end
|
#ol_item(lines, _num) ⇒ Object
330
331
332
|
# File 'lib/review/htmlbuilder.rb', line 330
def ol_item(lines, _num)
puts "<li>#{join_lines_to_paragraph(lines)}</li>"
end
|
#olnum(num) ⇒ Object
1182
1183
1184
|
# File 'lib/review/htmlbuilder.rb', line 1182
def olnum(num)
@ol_num = num.to_i
end
|
#pagebreak ⇒ Object
774
775
776
|
# File 'lib/review/htmlbuilder.rb', line 774
def pagebreak
puts %Q(<br class="pagebreak" />)
end
|
#paragraph(lines) ⇒ Object
354
355
356
357
358
359
360
361
|
# File 'lib/review/htmlbuilder.rb', line 354
def paragraph(lines)
if @noindent
puts %Q(<p class="noindent">#{join_lines_to_paragraph(lines)}</p>)
@noindent = nil
else
puts "<p>#{join_lines_to_paragraph(lines)}</p>"
end
end
|
363
364
365
|
# File 'lib/review/htmlbuilder.rb', line 363
def parasep
puts '<br />'
end
|
#planning(lines, caption = nil) ⇒ Object
252
253
254
|
# File 'lib/review/htmlbuilder.rb', line 252
def planning(lines, caption = nil)
captionblock('planning', lines, caption)
end
|
#point(lines, caption = nil) ⇒ Object
280
281
282
|
# File 'lib/review/htmlbuilder.rb', line 280
def point(lines, caption = nil)
captionblock('point', lines, caption)
end
|
#post_paragraph ⇒ Object
36
37
38
|
# File 'lib/review/htmlbuilder.rb', line 36
def post_paragraph
'</p>'
end
|
#pre_paragraph ⇒ Object
32
33
34
|
# File 'lib/review/htmlbuilder.rb', line 32
def pre_paragraph
'<p>'
end
|
#quote(lines) ⇒ Object
521
522
523
524
|
# File 'lib/review/htmlbuilder.rb', line 521
def quote(lines)
blocked_lines = split_paragraph(lines)
puts %Q(<blockquote>#{blocked_lines.join("\n")}</blockquote>)
end
|
#read(lines) ⇒ Object
Also known as:
lead
367
368
369
370
|
# File 'lib/review/htmlbuilder.rb', line 367
def read(lines)
blocked_lines = split_paragraph(lines)
puts %Q(<div class="lead">\n#{blocked_lines.join("\n")}\n</div>)
end
|
#ref_begin(level, label, caption) ⇒ Object
212
213
214
215
|
# File 'lib/review/htmlbuilder.rb', line 212
def ref_begin(level, label, caption)
print %Q(<div class="reference">)
headline(level, label, caption)
end
|
#ref_end(_level) ⇒ Object
217
218
219
|
# File 'lib/review/htmlbuilder.rb', line 217
def ref_end(_level)
puts '</div>'
end
|
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
|
# File 'lib/review/htmlbuilder.rb', line 92
def result
@title = strip_html(compile_inline(@chapter.title))
@body = @output.string
@language = @book.config['language']
@stylesheets = @book.config['stylesheet']
@next = @chapter.next_chapter
@prev = @chapter.prev_chapter
@next_title = @next ? compile_inline(@next.title) : ''
@prev_title = @prev ? compile_inline(@prev.title) : ''
if @book.config.maker == 'webmaker'
@toc = ReVIEW::WEBTOCPrinter.book_to_string(@book)
end
ReVIEW::Template.load(layoutfile).result(binding)
end
|
#result_metric(array) ⇒ Object
601
602
603
604
605
606
607
608
609
610
611
612
|
# File 'lib/review/htmlbuilder.rb', line 601
def result_metric(array)
attrs = {}
array.each do |item|
k = item.keys[0]
if attrs[k]
attrs[k] << item[k]
else
attrs[k] = [item[k]]
end
end
' ' + attrs.map { |k, v| %Q(#{k}="#{v.join(' ')}") }.join(' ')
end
|
#security(lines, caption = nil) ⇒ Object
264
265
266
|
# File 'lib/review/htmlbuilder.rb', line 264
def security(lines, caption = nil)
captionblock('security', lines, caption)
end
|
#shoot(lines, caption = nil) ⇒ Object
284
285
286
|
# File 'lib/review/htmlbuilder.rb', line 284
def shoot(lines, caption = nil)
captionblock('shoot', lines, caption)
end
|
#source(lines, caption = nil, lang = nil) ⇒ Object
404
405
406
407
408
409
|
# File 'lib/review/htmlbuilder.rb', line 404
def source(lines, caption = nil, lang = nil)
puts %Q(<div class="source-code">)
(caption)
source_body(caption, lines, lang)
puts '</div>'
end
|
#source_body(_id, lines, lang) ⇒ Object
417
418
419
420
421
422
423
|
# File 'lib/review/htmlbuilder.rb', line 417
def source_body(_id, lines, lang)
print %Q(<pre class="source">)
body = lines.inject('') { |i, j| i + detab(j) + "\n" }
lexer = lang
puts highlight(body: body, lexer: lexer, format: 'html')
puts '</pre>'
end
|
411
412
413
414
415
|
# File 'lib/review/htmlbuilder.rb', line 411
def (caption)
if caption.present?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
end
end
|
#sup_begin(level, label, caption) ⇒ Object
221
222
223
224
|
# File 'lib/review/htmlbuilder.rb', line 221
def sup_begin(level, label, caption)
print %Q(<div class="supplement">)
headline(level, label, caption)
end
|
#sup_end(_level) ⇒ Object
226
227
228
|
# File 'lib/review/htmlbuilder.rb', line 226
def sup_end(_level)
puts '</div>'
end
|
#table(lines, id = nil, caption = nil) ⇒ Object
644
645
646
647
648
649
650
651
652
|
# File 'lib/review/htmlbuilder.rb', line 644
def table(lines, id = nil, caption = nil)
if id
puts %Q(<div id="#{normalize_id(id)}" class="table">)
else
puts %Q(<div class="table">)
end
super(lines, id, caption)
puts '</div>'
end
|
#table_begin(_ncols) ⇒ Object
664
665
666
|
# File 'lib/review/htmlbuilder.rb', line 664
def table_begin(_ncols)
puts '<table>'
end
|
#table_end ⇒ Object
680
681
682
|
# File 'lib/review/htmlbuilder.rb', line 680
def table_end
puts '</table>'
end
|
654
655
656
657
658
659
660
661
662
|
# File 'lib/review/htmlbuilder.rb', line 654
def (id, caption)
if id.nil?
puts %Q(<p class="caption">#{compile_inline(caption)}</p>)
elsif get_chap
puts %Q(<p class="caption">#{I18n.t('table')}#{I18n.t('format_number_header', [get_chap, @chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
else
puts %Q(<p class="caption">#{I18n.t('table')}#{I18n.t('format_number_header_without_chapter', [@chapter.table(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
end
end
|
#talk(lines) ⇒ Object
534
535
536
537
538
539
|
# File 'lib/review/htmlbuilder.rb', line 534
def talk(lines)
puts %Q(<div class="talk">)
blocked_lines = split_paragraph(lines)
puts blocked_lines.join("\n")
puts '</div>'
end
|
676
677
678
|
# File 'lib/review/htmlbuilder.rb', line 676
def td(str)
"<td>#{str}</td>"
end
|
#texequation(lines, id = nil, caption = '') ⇒ Object
541
542
543
544
545
546
547
548
549
550
551
552
|
# File 'lib/review/htmlbuilder.rb', line 541
def texequation(lines, id = nil, caption = '')
if id
puts %Q(<div id="#{normalize_id(id)}" class="caption-equation">)
(id, caption)
end
texequation_body(lines)
if id
puts '</div>'
end
end
|
#texequation_body(lines) ⇒ Object
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
|
# File 'lib/review/htmlbuilder.rb', line 562
def texequation_body(lines)
puts %Q(<div class="equation">)
if @book.config['mathml']
require 'math_ml'
require 'math_ml/symbol/character_reference'
p = MathML::LaTeX::Parser.new(symbol: MathML::Symbol::CharacterReference)
print p.parse(lines.join("\n") + "\n", true)
elsif @book.config['imgmath']
fontsize = @book.config['imgmath_options']['fontsize'].to_f
lineheight = @book.config['imgmath_options']['lineheight'].to_f
math_str = "\\begin{equation*}\n\\fontsize{#{fontsize}}{#{lineheight}}\\selectfont\n#{lines.join("\n")}\n\\end{equation*}\n"
key = Digest::SHA256.hexdigest(math_str)
math_dir = File.join(@book.config['imagedir'], '_review_math')
Dir.mkdir(math_dir) unless Dir.exist?(math_dir)
img_path = File.join(math_dir, "_gen_#{key}.#{@book.config['imgmath_options']['format']}")
if @book.config.check_version('2', exception: false)
make_math_image(math_str, img_path)
puts %Q(<img src="#{img_path}" />)
else
defer_math_image(math_str, img_path, key)
puts %Q(<img src="#{img_path}" class="math_gen_#{key}" alt="#{escape(lines.join(' '))}" />)
end
else
print '<pre>'
puts escape(lines.join("\n"))
puts '</pre>'
end
puts '</div>'
end
|
554
555
556
557
558
559
560
|
# File 'lib/review/htmlbuilder.rb', line 554
def (id, caption)
if get_chap
puts %Q(<p class="caption">#{I18n.t('equation')}#{I18n.t('format_number_header', [get_chap, @chapter.equation(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
else
puts %Q(<p class="caption">#{I18n.t('equation')}#{I18n.t('format_number_header_without_chapter', [@chapter.equation(id).number])}#{I18n.t('caption_prefix')}#{compile_inline(caption)}</p>)
end
end
|
#text(str) ⇒ Object
939
940
941
|
# File 'lib/review/htmlbuilder.rb', line 939
def text(str)
str
end
|
672
673
674
|
# File 'lib/review/htmlbuilder.rb', line 672
def th(str)
"<th>#{str}</th>"
end
|
#tip(lines, caption = nil) ⇒ Object
244
245
246
|
# File 'lib/review/htmlbuilder.rb', line 244
def tip(lines, caption = nil)
captionblock('tip', lines, caption)
end
|
668
669
670
|
# File 'lib/review/htmlbuilder.rb', line 668
def tr(rows)
puts "<tr>#{rows.join}</tr>"
end
|
305
306
307
|
# File 'lib/review/htmlbuilder.rb', line 305
def ul_begin
puts '<ul>'
end
|
317
318
319
|
# File 'lib/review/htmlbuilder.rb', line 317
def ul_end
puts '</ul>'
end
|
#ul_item_begin(lines) ⇒ Object
309
310
311
|
# File 'lib/review/htmlbuilder.rb', line 309
def ul_item_begin(lines)
print "<li>#{join_lines_to_paragraph(lines)}"
end
|
#ul_item_end ⇒ Object
313
314
315
|
# File 'lib/review/htmlbuilder.rb', line 313
def ul_item_end
puts '</li>'
end
|
#warning(lines, caption = nil) ⇒ Object
276
277
278
|
# File 'lib/review/htmlbuilder.rb', line 276
def warning(lines, caption = nil)
captionblock('warning', lines, caption)
end
|
#xcolumn_begin(level, label, caption) ⇒ Object
203
204
205
206
|
# File 'lib/review/htmlbuilder.rb', line 203
def xcolumn_begin(level, label, caption)
puts %Q(<div class="xcolumn">)
headline(level, label, caption)
end
|
#xcolumn_end(_level) ⇒ Object
208
209
210
|
# File 'lib/review/htmlbuilder.rb', line 208
def xcolumn_end(_level)
puts '</div>'
end
|
#xmlns_ops_prefix ⇒ Object
110
111
112
113
114
115
116
|
# File 'lib/review/htmlbuilder.rb', line 110
def xmlns_ops_prefix
if @book.config['epubversion'].to_i == 3
'epub'
else
'ops'
end
end
|