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(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_row_separator_regexp, #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
932
933
934
935
936
937
|
# File 'lib/review/htmlbuilder.rb', line 932
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
946
947
948
|
# File 'lib/review/htmlbuilder.rb', line 946
def bibpaper_bibpaper(_id, _caption, lines)
print split_paragraph(lines).join
end
|
939
940
941
942
943
944
|
# File 'lib/review/htmlbuilder.rb', line 939
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
759
760
761
|
# File 'lib/review/htmlbuilder.rb', line 759
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
767
768
769
770
771
772
773
|
# File 'lib/review/htmlbuilder.rb', line 767
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
1163
1164
1165
|
# File 'lib/review/htmlbuilder.rb', line 1163
def centering(lines)
puts split_paragraph(lines).join("\n").gsub('<p>', %Q(<p class="center">))
end
|
#cmd(lines, caption = nil) ⇒ Object
488
489
490
491
492
493
494
495
496
497
498
499
|
# File 'lib/review/htmlbuilder.rb', line 488
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
|
703
704
705
706
707
708
709
|
# File 'lib/review/htmlbuilder.rb', line 703
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
1151
1152
1153
1154
1155
1156
1157
|
# File 'lib/review/htmlbuilder.rb', line 1151
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
839
840
841
842
843
844
845
846
|
# File 'lib/review/htmlbuilder.rb', line 839
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
831
832
833
834
835
836
837
|
# File 'lib/review/htmlbuilder.rb', line 831
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
515
516
517
518
519
520
521
|
# File 'lib/review/htmlbuilder.rb', line 515
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
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
|
# File 'lib/review/htmlbuilder.rb', line 445
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
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
|
# File 'lib/review/htmlbuilder.rb', line 461
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
699
700
701
|
# File 'lib/review/htmlbuilder.rb', line 699
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
1159
1160
1161
|
# File 'lib/review/htmlbuilder.rb', line 1159
def flushright(lines)
puts split_paragraph(lines).join("\n").gsub('<p>', %Q(<p class="flushright">))
end
|
711
712
713
714
715
716
717
718
719
720
721
722
|
# File 'lib/review/htmlbuilder.rb', line 711
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
581
582
583
584
585
586
587
588
|
# File 'lib/review/htmlbuilder.rb', line 581
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
|
751
752
753
|
# File 'lib/review/htmlbuilder.rb', line 751
def hr
puts '<hr />'
end
|
#image_dummy(id, caption, lines) ⇒ Object
611
612
613
614
615
616
617
618
619
620
621
|
# File 'lib/review/htmlbuilder.rb', line 611
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
1167
1168
1169
|
# File 'lib/review/htmlbuilder.rb', line 1167
def image_ext
'png'
end
|
623
624
625
626
627
628
629
630
631
|
# File 'lib/review/htmlbuilder.rb', line 623
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
603
604
605
606
607
608
609
|
# File 'lib/review/htmlbuilder.rb', line 603
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
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
|
# File 'lib/review/htmlbuilder.rb', line 673
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
694
695
696
697
|
# File 'lib/review/htmlbuilder.rb', line 694
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
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
|
# File 'lib/review/htmlbuilder.rb', line 724
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
1033
1034
1035
|
# File 'lib/review/htmlbuilder.rb', line 1033
def inline_abbr(str)
inline_asis(str, 'abbr')
end
|
#inline_acronym(str) ⇒ Object
1037
1038
1039
|
# File 'lib/review/htmlbuilder.rb', line 1037
def inline_acronym(str)
inline_asis(str, 'acronym')
end
|
#inline_ami(str) ⇒ Object
856
857
858
|
# File 'lib/review/htmlbuilder.rb', line 856
def inline_ami(str)
%Q(<span class="ami">#{escape(str)}</span>)
end
|
#inline_asis(str, tag) ⇒ Object
1029
1030
1031
|
# File 'lib/review/htmlbuilder.rb', line 1029
def inline_asis(str, tag)
%Q(<#{tag}>#{escape(str)}</#{tag}>)
end
|
#inline_b(str) ⇒ Object
852
853
854
|
# File 'lib/review/htmlbuilder.rb', line 852
def inline_b(str)
%Q(<b>#{escape(str)}</b>)
end
|
#inline_balloon(str) ⇒ Object
1139
1140
1141
|
# File 'lib/review/htmlbuilder.rb', line 1139
def inline_balloon(str)
%Q(<span class="balloon">#{escape_html(str)}</span>)
end
|
#inline_bib(id) ⇒ Object
950
951
952
953
954
|
# File 'lib/review/htmlbuilder.rb', line 950
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
1069
1070
1071
|
# File 'lib/review/htmlbuilder.rb', line 1069
def inline_big(str)
inline_asis(str, 'big')
end
|
#inline_bou(str) ⇒ Object
860
861
862
|
# File 'lib/review/htmlbuilder.rb', line 860
def inline_bou(str)
%Q(<span class="bou">#{escape(str)}</span>)
end
|
#inline_br(_str) ⇒ Object
900
901
902
|
# File 'lib/review/htmlbuilder.rb', line 900
def inline_br(_str)
'<br />'
end
|
#inline_chap(id) ⇒ Object
800
801
802
803
804
805
806
807
808
|
# File 'lib/review/htmlbuilder.rb', line 800
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
789
790
791
792
793
794
795
796
797
798
|
# File 'lib/review/htmlbuilder.rb', line 789
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
1041
1042
1043
|
# File 'lib/review/htmlbuilder.rb', line 1041
def inline_cite(str)
inline_asis(str, 'cite')
end
|
#inline_code(str) ⇒ Object
884
885
886
887
888
889
890
|
# File 'lib/review/htmlbuilder.rb', line 884
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
979
980
981
982
983
984
985
986
987
|
# File 'lib/review/htmlbuilder.rb', line 979
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
|
1122
1123
1124
1125
1126
1127
1128
|
# File 'lib/review/htmlbuilder.rb', line 1122
def (str)
if @book.config['draft']
%Q(<span class="draft-comment">#{escape(str)}</span>)
else
''
end
end
|
#inline_del(str) ⇒ Object
1093
1094
1095
|
# File 'lib/review/htmlbuilder.rb', line 1093
def inline_del(str)
inline_asis(str, 'del')
end
|
#inline_dfn(str) ⇒ Object
1045
1046
1047
|
# File 'lib/review/htmlbuilder.rb', line 1045
def inline_dfn(str)
inline_asis(str, 'dfn')
end
|
#inline_dtp(str) ⇒ Object
880
881
882
|
# File 'lib/review/htmlbuilder.rb', line 880
def inline_dtp(str)
"<?dtp #{str} ?>"
end
|
#inline_em(str) ⇒ Object
1049
1050
1051
|
# File 'lib/review/htmlbuilder.rb', line 1049
def inline_em(str)
inline_asis(str, 'em')
end
|
#inline_eq(id) ⇒ Object
1019
1020
1021
1022
1023
1024
1025
1026
1027
|
# File 'lib/review/htmlbuilder.rb', line 1019
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
821
822
823
824
825
826
827
828
829
|
# File 'lib/review/htmlbuilder.rb', line 821
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
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
|
# File 'lib/review/htmlbuilder.rb', line 956
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
896
897
898
|
# File 'lib/review/htmlbuilder.rb', line 896
def inline_hidx(str)
%Q(<!-- IDX:#{(escape(str))} -->)
end
|
#inline_i(str) ⇒ Object
848
849
850
|
# File 'lib/review/htmlbuilder.rb', line 848
def inline_i(str)
%Q(<i>#{escape(str)}</i>)
end
|
#inline_icon(id) ⇒ Object
1109
1110
1111
1112
1113
1114
1115
1116
|
# File 'lib/review/htmlbuilder.rb', line 1109
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
892
893
894
|
# File 'lib/review/htmlbuilder.rb', line 892
def inline_idx(str)
%Q(#{escape(str)}<!-- IDX:#{(escape(str))} -->)
end
|
#inline_img(id) ⇒ Object
1009
1010
1011
1012
1013
1014
1015
1016
1017
|
# File 'lib/review/htmlbuilder.rb', line 1009
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
1097
1098
1099
|
# File 'lib/review/htmlbuilder.rb', line 1097
def inline_ins(str)
inline_asis(str, 'ins')
end
|
#inline_kbd(str) ⇒ Object
1053
1054
1055
|
# File 'lib/review/htmlbuilder.rb', line 1053
def inline_kbd(str)
inline_asis(str, 'kbd')
end
|
#inline_labelref(idref) ⇒ Object
Also known as:
inline_ref
779
780
781
|
# File 'lib/review/htmlbuilder.rb', line 779
def inline_labelref(idref)
%Q(<a target='#{escape(idref)}'>「#{I18n.t('label_marker')}#{escape(idref)}」</a>)
end
|
#inline_list(id) ⇒ Object
989
990
991
992
993
994
995
996
997
|
# File 'lib/review/htmlbuilder.rb', line 989
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
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
|
# File 'lib/review/htmlbuilder.rb', line 904
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
|
785
786
787
|
# File 'lib/review/htmlbuilder.rb', line 785
def (id)
error "pageref op is unsupported on this builder: #{id}"
end
|
#inline_raw(str) ⇒ Object
1143
1144
1145
|
# File 'lib/review/htmlbuilder.rb', line 1143
def inline_raw(str)
super(str)
end
|
#inline_recipe(str) ⇒ Object
1105
1106
1107
|
# File 'lib/review/htmlbuilder.rb', line 1105
def inline_recipe(str)
%Q(<span class="recipe">「#{escape(str)}」</span>)
end
|
#inline_samp(str) ⇒ Object
1057
1058
1059
|
# File 'lib/review/htmlbuilder.rb', line 1057
def inline_samp(str)
inline_asis(str, 'samp')
end
|
#inline_small(str) ⇒ Object
1073
1074
1075
|
# File 'lib/review/htmlbuilder.rb', line 1073
def inline_small(str)
inline_asis(str, 'small')
end
|
#inline_strong(str) ⇒ Object
1061
1062
1063
|
# File 'lib/review/htmlbuilder.rb', line 1061
def inline_strong(str)
inline_asis(str, 'strong')
end
|
#inline_sub(str) ⇒ Object
1077
1078
1079
|
# File 'lib/review/htmlbuilder.rb', line 1077
def inline_sub(str)
inline_asis(str, 'sub')
end
|
#inline_sup(str) ⇒ Object
1081
1082
1083
|
# File 'lib/review/htmlbuilder.rb', line 1081
def inline_sup(str)
inline_asis(str, 'sup')
end
|
#inline_table(id) ⇒ Object
999
1000
1001
1002
1003
1004
1005
1006
1007
|
# File 'lib/review/htmlbuilder.rb', line 999
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
1130
1131
1132
1133
1134
1135
1136
1137
|
# File 'lib/review/htmlbuilder.rb', line 1130
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
810
811
812
813
814
815
816
817
818
819
|
# File 'lib/review/htmlbuilder.rb', line 810
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
1085
1086
1087
1088
1089
1090
1091
|
# File 'lib/review/htmlbuilder.rb', line 1085
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
872
873
874
875
876
877
878
|
# File 'lib/review/htmlbuilder.rb', line 872
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
864
865
866
867
868
869
870
|
# File 'lib/review/htmlbuilder.rb', line 864
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
1101
1102
1103
|
# File 'lib/review/htmlbuilder.rb', line 1101
def inline_u(str)
%Q(<u>#{escape(str)}</u>)
end
|
#inline_uchar(str) ⇒ Object
1118
1119
1120
|
# File 'lib/review/htmlbuilder.rb', line 1118
def inline_uchar(str)
%Q(&#x#{str};)
end
|
#inline_var(str) ⇒ Object
1065
1066
1067
|
# File 'lib/review/htmlbuilder.rb', line 1065
def inline_var(str)
inline_asis(str, 'var')
end
|
#label(id) ⇒ Object
755
756
757
|
# File 'lib/review/htmlbuilder.rb', line 755
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
|
# File 'lib/review/htmlbuilder.rb', line 374
def list(lines, id, caption, lang = nil)
puts %Q(<div id="#{normalize_id(id)}" class="caption-code">)
super(lines, id, caption, lang)
puts '</div>'
end
|
#list_body(_id, lines, lang) ⇒ Object
388
389
390
391
392
393
394
395
396
397
|
# File 'lib/review/htmlbuilder.rb', line 388
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
|
380
381
382
383
384
385
386
|
# File 'lib/review/htmlbuilder.rb', line 380
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
419
420
421
422
423
|
# File 'lib/review/htmlbuilder.rb', line 419
def listnum(lines, id, caption, lang = nil)
puts %Q(<div id="#{normalize_id(id)}" class="code">)
super(lines, id, caption, lang)
puts '</div>'
end
|
#listnum_body(lines, lang) ⇒ Object
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
|
# File 'lib/review/htmlbuilder.rb', line 425
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
1175
1176
1177
1178
1179
1180
1181
1182
1183
1184
1185
1186
1187
1188
1189
1190
1191
1192
1193
1194
1195
1196
1197
1198
1199
1200
1201
1202
1203
|
# File 'lib/review/htmlbuilder.rb', line 1175
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
1147
1148
1149
|
# File 'lib/review/htmlbuilder.rb', line 1147
def nofunc_text(str)
escape(str)
end
|
775
776
777
|
# File 'lib/review/htmlbuilder.rb', line 775
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
1171
1172
1173
|
# File 'lib/review/htmlbuilder.rb', line 1171
def olnum(num)
@ol_num = num.to_i
end
|
#pagebreak ⇒ Object
763
764
765
|
# File 'lib/review/htmlbuilder.rb', line 763
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
510
511
512
513
|
# File 'lib/review/htmlbuilder.rb', line 510
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
590
591
592
593
594
595
596
597
598
599
600
601
|
# File 'lib/review/htmlbuilder.rb', line 590
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
399
400
401
402
403
|
# File 'lib/review/htmlbuilder.rb', line 399
def source(lines, caption = nil, lang = nil)
puts %Q(<div class="source-code">)
super(lines, caption, lang)
puts '</div>'
end
|
#source_body(lines, lang) ⇒ Object
411
412
413
414
415
416
417
|
# File 'lib/review/htmlbuilder.rb', line 411
def source_body(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
|
405
406
407
408
409
|
# File 'lib/review/htmlbuilder.rb', line 405
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
633
634
635
636
637
638
639
640
641
|
# File 'lib/review/htmlbuilder.rb', line 633
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
653
654
655
|
# File 'lib/review/htmlbuilder.rb', line 653
def table_begin(_ncols)
puts '<table>'
end
|
#table_end ⇒ Object
669
670
671
|
# File 'lib/review/htmlbuilder.rb', line 669
def table_end
puts '</table>'
end
|
643
644
645
646
647
648
649
650
651
|
# File 'lib/review/htmlbuilder.rb', line 643
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
523
524
525
526
527
528
|
# File 'lib/review/htmlbuilder.rb', line 523
def talk(lines)
puts %Q(<div class="talk">)
blocked_lines = split_paragraph(lines)
puts blocked_lines.join("\n")
puts '</div>'
end
|
665
666
667
|
# File 'lib/review/htmlbuilder.rb', line 665
def td(str)
"<td>#{str}</td>"
end
|
#texequation(lines, id = nil, caption = '') ⇒ Object
530
531
532
533
534
535
536
537
538
539
540
541
|
# File 'lib/review/htmlbuilder.rb', line 530
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
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
|
# File 'lib/review/htmlbuilder.rb', line 551
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
|
543
544
545
546
547
548
549
|
# File 'lib/review/htmlbuilder.rb', line 543
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
928
929
930
|
# File 'lib/review/htmlbuilder.rb', line 928
def text(str)
str
end
|
661
662
663
|
# File 'lib/review/htmlbuilder.rb', line 661
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
|
657
658
659
|
# File 'lib/review/htmlbuilder.rb', line 657
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
|