Class: ReVIEW::PLAINTEXTBuilder

Inherits:
Builder show all
Includes:
TextUtils
Defined in:
lib/review/plaintextbuilder.rb

Direct Known Subclasses

PLAINTEXTTocBuilder, TOPBuilder

Constant Summary

Constants inherited from Builder

Builder::CAPTION_TITLES

Instance Attribute Summary

Attributes inherited from Builder

#doc_status, #location

Attributes included from Loggable

#logger

Instance Method Summary collapse

Methods included from TextUtils

#add_space?, #detab, #join_lines_to_paragraph, #split_paragraph

Methods inherited from Builder

#beginchild, #bind, #blankline, #caption_top?, #captionblock, #check_nest, #check_nested_minicolumn, #check_printendnotes, #compile_inline, #detab, #embed, #emtable, #endchild, #endnote, #endnote_begin, #endnote_end, #endnote_item, #escape, #extract_chapter_id, #firstlinenum, #get_chap, #graph, #graph_aafigure, #graph_blockdiag, #graph_gnuplot, #graph_graphviz, #graph_plantuml, #handle_metric, #highlight?, #in_minicolumn?, #initialize, #inline_column, #inline_column_chap, #inline_embed, #inline_endnote, #inline_eq, #inline_hd, #inline_href, #inline_img, #inline_imgref, #inline_include, #inline_kw, #inline_list, #inline_ruby, #inline_sec, #inline_sectitle, #inline_table, #inline_title, #inline_w, #inline_wb, #line_num, #load_words, #minicolumn_block_name?, #over_secnolevel?, #parse_metric, #parse_table_rows, #previous_list_type, #printendnotes, #raw, #result_metric, #system_graph, #table_row_separator_regexp, #table_rows, #target_name, #tsize, #ul_item_begin, #ul_item_end

Methods included from Loggable

#app_error, #debug, #error, #error!, #warn

Constructor Details

This class inherits a constructor from ReVIEW::Builder

Instance Method Details

#base_block(_type, lines, caption = nil) ⇒ Object



192
193
194
195
196
197
198
199
200
201
202
# File 'lib/review/plaintextbuilder.rb', line 192

def base_block(_type, lines, caption = nil)
  blank
  if caption_top?('list') && caption.present?
    puts compile_inline(caption)
  end
  puts lines.join("\n")
  if !caption_top?('list') && caption.present?
    puts compile_inline(caption)
  end
  blank
end

#base_parablock(_type, lines, caption = nil) ⇒ Object



204
205
206
207
208
209
# File 'lib/review/plaintextbuilder.rb', line 204

def base_parablock(_type, lines, caption = nil)
  blank
  puts compile_inline(caption) if caption.present?
  puts split_paragraph(lines).join("\n")
  blank
end

#best(lines, caption = nil) ⇒ Object



547
548
549
550
# File 'lib/review/plaintextbuilder.rb', line 547

def best(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('best', lines, caption)
end

#bibpaper(lines, id, caption) ⇒ Object



388
389
390
391
# File 'lib/review/plaintextbuilder.rb', line 388

def bibpaper(lines, id, caption)
  bibpaper_header(id, caption)
  bibpaper_bibpaper(id, caption, lines) unless lines.empty?
end

#bibpaper_bibpaper(_id, _caption, lines) ⇒ Object



398
399
400
# File 'lib/review/plaintextbuilder.rb', line 398

def bibpaper_bibpaper(_id, _caption, lines)
  puts split_paragraph(lines).join("\n")
end

#bibpaper_header(id, caption) ⇒ Object



393
394
395
396
# File 'lib/review/plaintextbuilder.rb', line 393

def bibpaper_header(id, caption)
  print @chapter.bibpaper(id).number
  puts " #{compile_inline(caption)}"
end

#bpo(lines) ⇒ Object



643
644
645
# File 'lib/review/plaintextbuilder.rb', line 643

def bpo(lines)
  base_block('bpo', lines, nil)
end

#caution(lines, caption = nil) ⇒ Object



561
562
563
564
# File 'lib/review/plaintextbuilder.rb', line 561

def caution(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('caution', lines, caption)
end

#centering(lines) ⇒ Object



519
520
521
# File 'lib/review/plaintextbuilder.rb', line 519

def centering(lines)
  base_parablock('centering', lines, nil)
end

#circle_begin(_level, _label, caption) ⇒ Object



715
716
717
# File 'lib/review/plaintextbuilder.rb', line 715

def circle_begin(_level, _label, caption)
  puts "#{caption}"
end

#circle_end(level) ⇒ Object



719
720
# File 'lib/review/plaintextbuilder.rb', line 719

def circle_end(level)
end

#cmd(lines, caption = nil) ⇒ Object



253
254
255
# File 'lib/review/plaintextbuilder.rb', line 253

def cmd(lines, caption = nil)
  base_block('cmd', lines, caption)
end

#column_begin(_level, _label, caption) ⇒ Object



451
452
453
# File 'lib/review/plaintextbuilder.rb', line 451

def column_begin(_level, _label, caption)
  common_column_begin('column', caption)
end

#column_end(_level) ⇒ Object



455
456
457
# File 'lib/review/plaintextbuilder.rb', line 455

def column_end(_level)
  common_column_end('column')
end

#comment(lines, comment = nil) ⇒ Object



331
332
# File 'lib/review/plaintextbuilder.rb', line 331

def comment(lines, comment = nil)
end

#common_column_begin(_type, caption) ⇒ Object



442
443
444
445
# File 'lib/review/plaintextbuilder.rb', line 442

def common_column_begin(_type, caption)
  blank
  puts compile_inline(caption)
end

#common_column_end(_type) ⇒ Object



447
448
449
# File 'lib/review/plaintextbuilder.rb', line 447

def common_column_end(_type)
  blank
end

#compile_href(url, label) ⇒ Object



356
357
358
359
360
361
362
# File 'lib/review/plaintextbuilder.rb', line 356

def compile_href(url, label)
  if label
    "#{label}#{url}"
  else
    url
  end
end

#compile_kw(word, alt) ⇒ Object



348
349
350
351
352
353
354
# File 'lib/review/plaintextbuilder.rb', line 348

def compile_kw(word, alt)
  if alt
    "#{word}#{alt.strip}"
  else
    word
  end
end

#compile_ruby(base, _ruby) ⇒ Object



344
345
346
# File 'lib/review/plaintextbuilder.rb', line 344

def compile_ruby(base, _ruby)
  base
end

#dd(lines) ⇒ Object



139
140
141
142
143
# File 'lib/review/plaintextbuilder.rb', line 139

def dd(lines)
  split_paragraph(lines).each do |paragraph|
    puts paragraph.delete("\n")
  end
end

#dl_beginObject



131
132
133
# File 'lib/review/plaintextbuilder.rb', line 131

def dl_begin
  blank
end

#dl_endObject



145
146
147
# File 'lib/review/plaintextbuilder.rb', line 145

def dl_end
  blank
end

#dt(line) ⇒ Object



135
136
137
# File 'lib/review/plaintextbuilder.rb', line 135

def dt(line)
  puts line
end

#dtp(str) ⇒ Object



640
641
# File 'lib/review/plaintextbuilder.rb', line 640

def dtp(str)
end

#edition_begin(_level, _label, caption) ⇒ Object



483
484
485
# File 'lib/review/plaintextbuilder.rb', line 483

def edition_begin(_level, _label, caption)
  common_column_begin('edition', caption)
end

#edition_end(_level) ⇒ Object



487
488
489
# File 'lib/review/plaintextbuilder.rb', line 487

def edition_end(_level)
  common_column_end('edition')
end

#emlist(lines, caption = nil, _lang = nil) ⇒ Object



211
212
213
# File 'lib/review/plaintextbuilder.rb', line 211

def emlist(lines, caption = nil, _lang = nil)
  base_block('emlist', lines, caption)
end

#emlistnum(lines, caption = nil, _lang = nil) ⇒ Object



215
216
217
218
219
220
221
222
223
224
225
226
227
# File 'lib/review/plaintextbuilder.rb', line 215

def emlistnum(lines, caption = nil, _lang = nil)
  blank
  if caption_top?('list') && caption.present?
    puts compile_inline(caption)
  end
  lines.each_with_index do |line, i|
    puts((i + 1).to_s.rjust(2) + ": #{line}")
  end
  if !caption_top?('list') && caption.present?
    puts compile_inline(caption)
  end
  blank
end

#expert(lines) ⇒ Object



595
596
597
# File 'lib/review/plaintextbuilder.rb', line 595

def expert(lines)
  base_parablock('expert', lines, nil)
end

#extnameObject



40
41
42
# File 'lib/review/plaintextbuilder.rb', line 40

def extname
  '.txt'
end

#flushright(lines) ⇒ Object



515
516
517
# File 'lib/review/plaintextbuilder.rb', line 515

def flushright(lines)
  base_parablock('flushright', lines, nil)
end

#footnote(id, str) ⇒ Object



334
335
336
# File 'lib/review/plaintextbuilder.rb', line 334

def footnote(id, str)
  puts "#{@chapter.footnote(id).number} #{compile_inline(str)}"
end

#graph_mermaid(_id, file_path, _line, _tf_path) ⇒ Object



726
727
728
729
730
731
732
# File 'lib/review/plaintextbuilder.rb', line 726

def graph_mermaid(_id, file_path, _line, _tf_path)
  if self.instance_of?(ReVIEW::PLAINTEXTBuilder)
    file_path
  else
    super
  end
end

#headline(level, _label, caption) ⇒ Object



100
101
102
103
# File 'lib/review/plaintextbuilder.rb', line 100

def headline(level, _label, caption)
  prefix, _anchor = headline_prefix(level)
  puts %Q(#{prefix}#{compile_inline(caption)})
end

#hood_begin(_level, _label, caption) ⇒ Object



475
476
477
# File 'lib/review/plaintextbuilder.rb', line 475

def hood_begin(_level, _label, caption)
  common_column_begin('hood', caption)
end

#hood_end(_level) ⇒ Object



479
480
481
# File 'lib/review/plaintextbuilder.rb', line 479

def hood_end(_level)
  common_column_end('hood')
end

#image(_lines, id, caption, _metric = nil) ⇒ Object



261
262
263
264
265
266
267
268
269
# File 'lib/review/plaintextbuilder.rb', line 261

def image(_lines, id, caption, _metric = nil)
  blank
  if get_chap
    puts "#{I18n.t('image')}#{I18n.t('format_number', [get_chap, @chapter.image(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
  else
    puts "#{I18n.t('image')}#{I18n.t('format_number_without_chapter', [@chapter.image(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
  end
  blank
end

#image_extObject



734
735
736
# File 'lib/review/plaintextbuilder.rb', line 734

def image_ext
  'png'
end

#imgtable(_lines, id, caption = nil, _metric = nil) ⇒ Object



317
318
319
320
321
# File 'lib/review/plaintextbuilder.rb', line 317

def imgtable(_lines, id, caption = nil, _metric = nil)
  blank
  table_header(id, caption) if caption.present?
  blank
end

#important(lines, caption = nil) ⇒ Object



552
553
554
555
# File 'lib/review/plaintextbuilder.rb', line 552

def important(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('important', lines, caption)
end

#indepimage(_lines, _id, caption = nil, _metric = nil) ⇒ Object Also known as: numberlessimage



628
629
630
631
632
# File 'lib/review/plaintextbuilder.rb', line 628

def indepimage(_lines, _id, caption = nil, _metric = nil)
  blank
  puts "図 #{compile_inline(caption)}" if caption.present?
  blank
end

#info(lines, caption = nil) ⇒ Object



538
539
540
541
# File 'lib/review/plaintextbuilder.rb', line 538

def info(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('info', lines, caption)
end

#inline_balloon(str) ⇒ Object



376
377
378
# File 'lib/review/plaintextbuilder.rb', line 376

def inline_balloon(str)
  %Q(#{str.gsub(/@maru\[(\d+)\]/, inline_maru('\1'))})
end

#inline_bib(id) ⇒ Object



402
403
404
405
406
# File 'lib/review/plaintextbuilder.rb', line 402

def inline_bib(id)
  %Q(#{@chapter.bibpaper(id).number} )
rescue KeyError
  app_error "unknown bib: #{id}"
end

#inline_br(_str) ⇒ Object



663
664
665
# File 'lib/review/plaintextbuilder.rb', line 663

def inline_br(_str)
  "\n"
end

#inline_chap(id) ⇒ Object

rubocop:disable Lint/UselessMethodDefinition



671
672
673
674
675
# File 'lib/review/plaintextbuilder.rb', line 671

def inline_chap(id) # rubocop:disable Lint/UselessMethodDefinition
  # "「第#{super}章 #{inline_title(id)}」"
  # "第#{super}章"
  super
end

#inline_chapref(id) ⇒ Object



677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
# File 'lib/review/plaintextbuilder.rb', line 677

def inline_chapref(id)
  if @book.config.check_version('2', exception: false)
    # backward compatibility
    chs = ['', '', '']
    if @book.config['chapref']
      chs2 = @book.config['chapref'].split(',')
      if chs2.size != 3
        app_error '--chapsplitter must have exactly 3 parameters with comma.'
      end
      chs = chs2
    end
    "#{chs[0]}#{@book.chapter_index.number(id)}#{chs[1]}#{@book.chapter_index.title(id)}#{chs[2]}"
  else
    title = super
    if @book.config['chapterlink']
      %Q(<link href="#{id}">#{title}</link>)
    else
      title
    end
  end
rescue KeyError
  app_error "unknown chapter: #{id}"
end

#inline_comment(_str) ⇒ Object



384
385
386
# File 'lib/review/plaintextbuilder.rb', line 384

def inline_comment(_str)
  ''
end

#inline_del(_str) ⇒ Object



655
656
657
# File 'lib/review/plaintextbuilder.rb', line 655

def inline_del(_str)
  ''
end

#inline_dtp(_str) ⇒ Object



647
648
649
# File 'lib/review/plaintextbuilder.rb', line 647

def inline_dtp(_str)
  ''
end

#inline_fn(id) ⇒ Object



338
339
340
341
342
# File 'lib/review/plaintextbuilder.rb', line 338

def inline_fn(id)
  "#{@chapter.footnote(id).number} "
rescue KeyError
  app_error "unknown footnote: #{id}"
end

#inline_hd_chap(chap, id) ⇒ Object



408
409
410
411
412
413
414
415
416
417
# File 'lib/review/plaintextbuilder.rb', line 408

def inline_hd_chap(chap, id)
  n = chap.headline_index.number(id)
  if n.present? && chap.number && over_secnolevel?(n)
    I18n.t('hd_quote', [n, compile_inline(chap.headline(id).caption)])
  else
    I18n.t('hd_quote_without_number', compile_inline(chap.headline(id).caption))
  end
rescue KeyError
  app_error "unknown headline: #{id}"
end

#inline_hidx(_str) ⇒ Object



368
369
370
# File 'lib/review/plaintextbuilder.rb', line 368

def inline_hidx(_str)
  ''
end

#inline_icon(_id) ⇒ Object



372
373
374
# File 'lib/review/plaintextbuilder.rb', line 372

def inline_icon(_id)
  ''
end

#inline_ins(str) ⇒ Object



651
652
653
# File 'lib/review/plaintextbuilder.rb', line 651

def inline_ins(str)
  str
end

#inline_labelref(_idref) ⇒ Object Also known as: inline_ref



705
706
707
# File 'lib/review/plaintextbuilder.rb', line 705

def inline_labelref(_idref)
  ''
end

#inline_pageref(_idref) ⇒ Object



711
712
713
# File 'lib/review/plaintextbuilder.rb', line 711

def inline_pageref(_idref)
  '●ページ' # ページ番号を参照
end

#inline_raw(str) ⇒ Object



364
365
366
# File 'lib/review/plaintextbuilder.rb', line 364

def inline_raw(str)
  super(str).gsub('\\n', "\n")
end

#inline_tcy(str) ⇒ Object



659
660
661
# File 'lib/review/plaintextbuilder.rb', line 659

def inline_tcy(str)
  str
end

#inline_uchar(str) ⇒ Object



380
381
382
# File 'lib/review/plaintextbuilder.rb', line 380

def inline_uchar(str)
  [str.to_i(16)].pack('U')
end

#insideout_begin(_level, _label, caption) ⇒ Object



491
492
493
# File 'lib/review/plaintextbuilder.rb', line 491

def insideout_begin(_level, _label, caption)
  common_column_begin('insideout', caption)
end

#insideout_end(_level) ⇒ Object



495
496
497
# File 'lib/review/plaintextbuilder.rb', line 495

def insideout_end(_level)
  common_column_end('insideout')
end

#insn(lines, caption = nil) ⇒ Object Also known as: box



599
600
601
# File 'lib/review/plaintextbuilder.rb', line 599

def insn(lines, caption = nil)
  base_block('insn', lines, caption)
end

#label(_id) ⇒ Object



636
637
638
# File 'lib/review/plaintextbuilder.rb', line 636

def label(_id)
  ''
end


570
571
572
# File 'lib/review/plaintextbuilder.rb', line 570

def link(lines, caption = nil)
  base_parablock('link', lines, caption)
end

#list(lines, id, caption, lang = nil) ⇒ Object



160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
# File 'lib/review/plaintextbuilder.rb', line 160

def list(lines, id, caption, lang = nil)
  blank
  begin
    if caption_top?('list')
      list_header(id, caption, lang)
      blank
    end
    list_body(id, lines, lang)
    unless caption_top?('list')
      blank
      list_header(id, caption, lang)
    end
  rescue KeyError
    app_error "no such list: #{id}"
  end
  blank
end

#list_body(_id, lines, _lang) ⇒ Object



186
187
188
189
190
# File 'lib/review/plaintextbuilder.rb', line 186

def list_body(_id, lines, _lang)
  lines.each do |line|
    puts detab(line)
  end
end

#list_header(id, caption, _lang) ⇒ Object



178
179
180
181
182
183
184
# File 'lib/review/plaintextbuilder.rb', line 178

def list_header(id, caption, _lang)
  if get_chap
    puts %Q(#{I18n.t('list')}#{I18n.t('format_number', [get_chap, @chapter.list(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)})
  else
    puts %Q(#{I18n.t('list')}#{I18n.t('format_number_without_chapter', [@chapter.list(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)})
  end
end

#listnum(lines, id, caption, lang = nil) ⇒ Object



229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
# File 'lib/review/plaintextbuilder.rb', line 229

def listnum(lines, id, caption, lang = nil)
  blank
  begin
    if caption_top?('list')
      list_header(id, caption, lang)
      blank
    end
    listnum_body(lines, lang)
    unless caption_top?('list')
      blank
      list_header(id, caption, lang)
    end
  rescue KeyError
    app_error "no such list: #{id}"
  end
  blank
end

#listnum_body(lines, _lang) ⇒ Object



247
248
249
250
251
# File 'lib/review/plaintextbuilder.rb', line 247

def listnum_body(lines, _lang)
  lines.each_with_index do |line, i|
    puts((i + 1).to_s.rjust(2) + ": #{line}")
  end
end

#memo(lines, caption = nil) ⇒ Object



528
529
530
531
# File 'lib/review/plaintextbuilder.rb', line 528

def memo(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('memo', lines, caption)
end

#nodisp_begin(level, label, caption) ⇒ Object



436
437
# File 'lib/review/plaintextbuilder.rb', line 436

def nodisp_begin(level, label, caption)
end

#nodisp_end(level) ⇒ Object



439
440
# File 'lib/review/plaintextbuilder.rb', line 439

def nodisp_end(level)
end

#nofunc_text(str) ⇒ Object Also known as: th, td, inline_sup, inline_sub, inline_hint, inline_maru, inline_idx, inline_ami, inline_i, inline_em, inline_b, inline_strong, inline_tt, inline_code, inline_ttb, inline_ttbold, inline_tti, inline_ttibold, inline_u, inline_bou, inline_keytop, inline_m



722
723
724
# File 'lib/review/plaintextbuilder.rb', line 722

def nofunc_text(str)
  str
end

#noindentObject



419
420
# File 'lib/review/plaintextbuilder.rb', line 419

def noindent
end

#nonum_begin(_level, _label, caption) ⇒ Object



422
423
424
# File 'lib/review/plaintextbuilder.rb', line 422

def nonum_begin(_level, _label, caption)
  puts compile_inline(caption)
end

#nonum_end(_level) ⇒ Object



426
427
# File 'lib/review/plaintextbuilder.rb', line 426

def nonum_end(_level)
end

#note(lines, caption = nil) ⇒ Object



523
524
525
526
# File 'lib/review/plaintextbuilder.rb', line 523

def note(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('note', lines, caption)
end

#notice(lines, caption = nil) ⇒ Object



574
575
576
577
# File 'lib/review/plaintextbuilder.rb', line 574

def notice(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('notice', lines, caption)
end

#notoc_begin(_level, _label, caption) ⇒ Object



429
430
431
# File 'lib/review/plaintextbuilder.rb', line 429

def notoc_begin(_level, _label, caption)
  puts compile_inline(caption)
end

#notoc_end(level) ⇒ Object



433
434
# File 'lib/review/plaintextbuilder.rb', line 433

def notoc_end(level)
end

#ol_beginObject



117
118
119
120
# File 'lib/review/plaintextbuilder.rb', line 117

def ol_begin
  blank
  @olitem = 0
end

#ol_endObject



126
127
128
129
# File 'lib/review/plaintextbuilder.rb', line 126

def ol_end
  blank
  @olitem = nil
end

#ol_item(lines, num) ⇒ Object



122
123
124
# File 'lib/review/plaintextbuilder.rb', line 122

def ol_item(lines, num)
  puts "#{num} #{join_lines_to_paragraph(lines)}"
end

#olnum(num) ⇒ Object



54
55
56
# File 'lib/review/plaintextbuilder.rb', line 54

def olnum(num)
  @ol_num = num.to_i
end

#paragraph(lines) ⇒ Object



149
150
151
# File 'lib/review/plaintextbuilder.rb', line 149

def paragraph(lines)
  puts join_lines_to_paragraph(lines)
end

#planning(lines, caption = nil) ⇒ Object



543
544
545
# File 'lib/review/plaintextbuilder.rb', line 543

def planning(lines, caption = nil)
  base_parablock('planning', lines, caption)
end

#point(lines, caption = nil) ⇒ Object



579
580
581
# File 'lib/review/plaintextbuilder.rb', line 579

def point(lines, caption = nil)
  base_parablock('point', lines, caption)
end

#post_paragraphObject



36
37
38
# File 'lib/review/plaintextbuilder.rb', line 36

def post_paragraph
  ''
end

#practice(lines) ⇒ Object



591
592
593
# File 'lib/review/plaintextbuilder.rb', line 591

def practice(lines)
  base_parablock('practice', lines, nil)
end

#pre_paragraphObject



32
33
34
# File 'lib/review/plaintextbuilder.rb', line 32

def pre_paragraph
  ''
end

#quote(lines) ⇒ Object



257
258
259
# File 'lib/review/plaintextbuilder.rb', line 257

def quote(lines)
  base_parablock('quote', lines, nil)
end

#read(lines) ⇒ Object Also known as: lead



153
154
155
156
# File 'lib/review/plaintextbuilder.rb', line 153

def read(lines)
  puts split_paragraph(lines).join("\n")
  blank
end

#ref_begin(_level, _label, caption) ⇒ Object



499
500
501
# File 'lib/review/plaintextbuilder.rb', line 499

def ref_begin(_level, _label, caption)
  common_column_begin('ref', caption)
end

#ref_end(_level) ⇒ Object



503
504
505
# File 'lib/review/plaintextbuilder.rb', line 503

def ref_end(_level)
  common_column_end('ref')
end

#reference(lines) ⇒ Object



587
588
589
# File 'lib/review/plaintextbuilder.rb', line 587

def reference(lines)
  base_parablock('reference', lines, nil)
end

#resultObject



76
77
78
79
# File 'lib/review/plaintextbuilder.rb', line 76

def result
  check_printendnotes
  solve_nest(@output.string)
end

#security(lines, caption = nil) ⇒ Object



557
558
559
# File 'lib/review/plaintextbuilder.rb', line 557

def security(lines, caption = nil)
  base_parablock('security', lines, caption)
end

#shoot(lines, caption = nil) ⇒ Object



583
584
585
# File 'lib/review/plaintextbuilder.rb', line 583

def shoot(lines, caption = nil)
  base_parablock('shoot', lines, caption)
end

#solve_nest(s) ⇒ Object



81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
# File 'lib/review/plaintextbuilder.rb', line 81

def solve_nest(s)
  check_nest
  lines = []
  clevel = []
  s.split("\n", -1).each do |l| # -1 means don't omit last "\n"
    if l =~ /\A\x01→(dl|ul|ol)←\x01/
      clevel.push($1)
      lines.push("\x01→END←\x01")
    elsif %r{\A\x01→/(dl|ul|ol)←\x01}.match?(l)
      clevel.pop
      lines.push("\x01→END←\x01")
    else
      lines.push(("\t" * clevel.size) + l)
    end
  end

  lines.join("\n").gsub(/\n*\x01→END←\x01\n*/, "\n")
end

#source(lines, caption = nil, _lang = nil) ⇒ Object



701
702
703
# File 'lib/review/plaintextbuilder.rb', line 701

def source(lines, caption = nil, _lang = nil)
  base_block('source', lines, caption)
end

#sup_begin(_level, _label, caption) ⇒ Object



507
508
509
# File 'lib/review/plaintextbuilder.rb', line 507

def sup_begin(_level, _label, caption)
  common_column_begin('sup', caption)
end

#sup_end(_level) ⇒ Object



511
512
513
# File 'lib/review/plaintextbuilder.rb', line 511

def sup_end(_level)
  common_column_end('sup')
end

#table(lines, id = nil, caption = nil, noblank = nil) ⇒ Object



289
290
291
292
293
294
# File 'lib/review/plaintextbuilder.rb', line 289

def table(lines, id = nil, caption = nil, noblank = nil)
  unless noblank
    blank
  end
  super(lines, id, caption)
end

#table_begin(_ncols) ⇒ Object



314
315
# File 'lib/review/plaintextbuilder.rb', line 314

def table_begin(_ncols)
end

#table_endObject



327
328
329
# File 'lib/review/plaintextbuilder.rb', line 327

def table_end
  blank
end

#table_header(id, caption) ⇒ Object



296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
# File 'lib/review/plaintextbuilder.rb', line 296

def table_header(id, caption)
  unless caption_top?('table')
    blank
  end

  if id.nil?
    puts compile_inline(caption)
  elsif get_chap
    puts "#{I18n.t('table')}#{I18n.t('format_number', [get_chap, @chapter.table(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
  else
    puts "#{I18n.t('table')}#{I18n.t('format_number_without_chapter', [@chapter.table(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
  end

  if caption_top?('table')
    blank
  end
end

#term(lines) ⇒ Object



566
567
568
# File 'lib/review/plaintextbuilder.rb', line 566

def term(lines)
  base_parablock('term', lines, nil)
end

#texequation(lines, id = nil, caption = '') ⇒ Object



271
272
273
274
275
276
277
# File 'lib/review/plaintextbuilder.rb', line 271

def texequation(lines, id = nil, caption = '')
  blank
  texequation_header(id, caption) if caption_top?('equation')
  puts lines.join("\n")
  texequation_header(id, caption) unless caption_top?('equation')
  blank
end

#texequation_header(id, caption) ⇒ Object



279
280
281
282
283
284
285
286
287
# File 'lib/review/plaintextbuilder.rb', line 279

def texequation_header(id, caption)
  if id
    if get_chap
      puts "#{I18n.t('equation')}#{I18n.t('format_number', [get_chap, @chapter.equation(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
    else
      puts "#{I18n.t('equation')}#{I18n.t('format_number_without_chapter', [@chapter.equation(id).number])}#{I18n.t('caption_prefix_idgxml')}#{compile_inline(caption)}"
    end
  end
end

#text(str) ⇒ Object



667
668
669
# File 'lib/review/plaintextbuilder.rb', line 667

def text(str)
  str
end

#tip(lines, caption = nil) ⇒ Object



533
534
535
536
# File 'lib/review/plaintextbuilder.rb', line 533

def tip(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('tip', lines, caption)
end

#tr(rows) ⇒ Object



323
324
325
# File 'lib/review/plaintextbuilder.rb', line 323

def tr(rows)
  puts rows.join("\t")
end

#ul_beginObject



105
106
107
# File 'lib/review/plaintextbuilder.rb', line 105

def ul_begin
  blank
end

#ul_endObject



113
114
115
# File 'lib/review/plaintextbuilder.rb', line 113

def ul_end
  blank
end

#ul_item(lines) ⇒ Object



109
110
111
# File 'lib/review/plaintextbuilder.rb', line 109

def ul_item(lines)
  puts join_lines_to_paragraph(lines)
end

#warning(lines, caption = nil) ⇒ Object



603
604
605
606
# File 'lib/review/plaintextbuilder.rb', line 603

def warning(lines, caption = nil)
  check_nested_minicolumn
  base_parablock('warning', lines, caption)
end

#world_begin(_level, _label, caption) ⇒ Object



467
468
469
# File 'lib/review/plaintextbuilder.rb', line 467

def world_begin(_level, _label, caption)
  common_column_begin('world', caption)
end

#world_end(_level) ⇒ Object



471
472
473
# File 'lib/review/plaintextbuilder.rb', line 471

def world_end(_level)
  common_column_end('world')
end

#xcolumn_begin(_level, _label, caption) ⇒ Object



459
460
461
# File 'lib/review/plaintextbuilder.rb', line 459

def xcolumn_begin(_level, _label, caption)
  common_column_begin('xcolumn', caption)
end

#xcolumn_end(_level) ⇒ Object



463
464
465
# File 'lib/review/plaintextbuilder.rb', line 463

def xcolumn_end(_level)
  common_column_end('xcolumn')
end