Method: ConverterBase#double_dash_to_image

Defined in:
lib/converterbase.rb

#double_dash_to_image(text, output_text_dir) ⇒ Object



1401
1402
1403
1404
1405
1406
1407
1408
1409
1410
1411
1412
1413
1414
1415
1416
1417
1418
1419
1420
1421
1422
1423
1424
1425
# File 'lib/converterbase.rb', line 1401

def double_dash_to_image(text, output_text_dir)
  return text unless @setting.enable_double_dash_to_image
  begin
    # AozoraEpub3 は相対パスじゃないとエラーになるので相対パスに変換
    dash_paths = dash_image_relative_paths(Narou.get_preset_dir, output_text_dir)
  rescue ArgumentError => e
    if e.message =~ /^different prefix/
      # Windowsにおいて、スクリプト本体のあるドライブと小説フォルダがあるドライブが
      # 違う場合、相対パスを計算できなくなる。そのための対処として、.narou ディレクトリ
      # に画像データをコピーし、同一ドライブ内で相対パスを取れるようにする
      copy_dash_images_to_local_setting_dir
      dash_paths = dash_image_relative_paths(Narou.get_local_setting_dir, output_text_dir)
    else
      raise
    end
  end
  text.gsub(/―{2,}/) do |match|
    len = match.length
    result = "※[#(#{dash_paths[1]})]" * (len / 2)
    if len.odd?
      result += "※[#(#{dash_paths[0]})]"
    end
    result
  end
end