Method: ConverterBase#convert_novel_rule

Defined in:
lib/converterbase.rb

#convert_novel_rule(data) ⇒ Object

小説のルールに沿うように変換



472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
# File 'lib/converterbase.rb', line 472

def convert_novel_rule(data)
  # 括弧の閉じの直前の句点を消す
  data.gsub!(/。([」』)])/, "\\1")
  # 原則偶数個を1セットで使うべき文字を偶数個に補正
  # MEMO:(―も偶数個セットにするべきだが、記号的な意味で使われる場合もあるので無視)
  %w( ).each do |target|
    data.gsub!(/#{target}+/) do |match|
      len = match.length
      len += 1 if len.odd?
      target * len
    end
  end
  # たまに見かける誤字対策
  data.gsub!(/。 /, "")
  data.gsub!(/([?!])。/, "\\1")
end