aozora2html 0.7.1 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.
Files changed (114) hide show
  1. checksums.yaml +5 -5
  2. data/.github/workflows/rubocop.yml +19 -0
  3. data/.github/workflows/ruby.yml +37 -0
  4. data/.gitignore +8 -3
  5. data/.rubocop.yml +111 -0
  6. data/.rubocop_todo.yml +7 -0
  7. data/CHANGELOG.md +59 -0
  8. data/Gemfile +2 -0
  9. data/Guardfile +3 -1
  10. data/HACKING.md +45 -0
  11. data/LICENSE +116 -0
  12. data/README.md +29 -16
  13. data/Rakefile +12 -5
  14. data/aozora2html.gemspec +24 -24
  15. data/bin/aozora2html +25 -71
  16. data/lib/aozora2html/accent_parser.rb +99 -0
  17. data/lib/aozora2html/error.rb +17 -0
  18. data/lib/aozora2html/header.rb +141 -0
  19. data/lib/aozora2html/i18n.rb +48 -0
  20. data/lib/aozora2html/ruby_buffer.rb +116 -0
  21. data/lib/aozora2html/string_refinements.rb +36 -0
  22. data/lib/aozora2html/style_stack.rb +33 -0
  23. data/lib/aozora2html/tag/accent.rb +37 -0
  24. data/lib/aozora2html/tag/block.rb +21 -0
  25. data/lib/aozora2html/tag/chitsuki.rb +19 -0
  26. data/lib/aozora2html/tag/dakuten_katakana.rb +25 -0
  27. data/lib/aozora2html/tag/decorate.rb +19 -0
  28. data/lib/aozora2html/tag/dir.rb +17 -0
  29. data/lib/aozora2html/tag/editor_note.rb +19 -0
  30. data/lib/aozora2html/tag/embed_gaiji.rb +52 -0
  31. data/lib/aozora2html/tag/font_size.rb +20 -0
  32. data/lib/aozora2html/tag/gaiji.rb +12 -0
  33. data/lib/aozora2html/tag/img.rb +21 -0
  34. data/lib/aozora2html/tag/indent.rb +8 -0
  35. data/lib/aozora2html/tag/inline.rb +16 -0
  36. data/lib/aozora2html/tag/inline_caption.rb +17 -0
  37. data/lib/aozora2html/tag/inline_font_size.rb +19 -0
  38. data/lib/aozora2html/tag/inline_keigakomi.rb +17 -0
  39. data/lib/aozora2html/tag/inline_yokogumi.rb +17 -0
  40. data/lib/aozora2html/tag/jisage.rb +17 -0
  41. data/lib/aozora2html/tag/jizume.rb +19 -0
  42. data/lib/aozora2html/tag/kaeriten.rb +17 -0
  43. data/lib/aozora2html/tag/keigakomi.rb +19 -0
  44. data/lib/aozora2html/tag/kunten.rb +12 -0
  45. data/lib/aozora2html/tag/midashi.rb +20 -0
  46. data/lib/aozora2html/tag/multiline.rb +9 -0
  47. data/lib/aozora2html/tag/multiline_caption.rb +13 -0
  48. data/lib/aozora2html/tag/multiline_chitsuki.rb +10 -0
  49. data/lib/aozora2html/tag/multiline_jisage.rb +10 -0
  50. data/lib/aozora2html/tag/multiline_midashi.rb +25 -0
  51. data/lib/aozora2html/tag/multiline_style.rb +19 -0
  52. data/lib/aozora2html/tag/multiline_yokogumi.rb +14 -0
  53. data/lib/aozora2html/tag/okurigana.rb +17 -0
  54. data/lib/aozora2html/tag/oneline_chitsuki.rb +10 -0
  55. data/lib/aozora2html/tag/oneline_indent.rb +9 -0
  56. data/lib/aozora2html/tag/oneline_jisage.rb +10 -0
  57. data/lib/aozora2html/tag/reference_mentioned.rb +47 -0
  58. data/lib/aozora2html/tag/ruby.rb +202 -0
  59. data/lib/aozora2html/tag/un_embed_gaiji.rb +30 -0
  60. data/lib/aozora2html/tag.rb +57 -0
  61. data/lib/aozora2html/tag_parser.rb +60 -0
  62. data/lib/aozora2html/text_buffer.rb +50 -0
  63. data/lib/aozora2html/utils.rb +156 -0
  64. data/lib/aozora2html/version.rb +3 -1
  65. data/lib/aozora2html/yaml_loader.rb +37 -0
  66. data/lib/aozora2html/zip.rb +4 -0
  67. data/lib/aozora2html.rb +1359 -8
  68. data/lib/extensions.rb +12 -0
  69. data/lib/jstream.rb +139 -0
  70. data/sample/chukiichiran_kinyurei.html +15 -2
  71. data/sample/chukiichiran_kinyurei.txt +15 -2
  72. data/test/test_aozora2html.rb +323 -73
  73. data/test/test_aozora_accent_parser.rb +34 -6
  74. data/test/test_command_parse.rb +216 -0
  75. data/test/test_compat.rb +3 -4
  76. data/test/test_dakuten_katakana_tag.rb +12 -13
  77. data/test/test_decorate_tag.rb +11 -7
  78. data/test/test_dir_tag.rb +11 -7
  79. data/test/test_editor_note_tag.rb +9 -6
  80. data/test/test_exception.rb +11 -9
  81. data/test/test_font_size_tag.rb +22 -11
  82. data/test/test_gaiji_tag.rb +22 -14
  83. data/test/test_header.rb +45 -0
  84. data/test/test_helper.rb +3 -1
  85. data/test/test_i18n.rb +39 -0
  86. data/test/test_img_tag.rb +11 -6
  87. data/test/test_inline_caption_tag.rb +11 -7
  88. data/test/test_inline_font_size_tag.rb +15 -11
  89. data/test/test_inline_keigakomi_tag.rb +11 -7
  90. data/test/test_inline_yokogumi_tag.rb +11 -7
  91. data/test/test_jizume_tag.rb +11 -8
  92. data/test/test_jstream.rb +33 -30
  93. data/test/test_kaeriten_tag.rb +11 -7
  94. data/test/test_keigakomi_tag.rb +14 -11
  95. data/test/test_midashi_tag.rb +39 -0
  96. data/test/test_multiline_caption_tag.rb +11 -8
  97. data/test/test_multiline_midashi_tag.rb +26 -26
  98. data/test/test_multiline_style_tag.rb +11 -8
  99. data/test/test_multiline_yokogumi_tag.rb +11 -8
  100. data/test/test_okurigana_tag.rb +11 -7
  101. data/test/test_ruby_parse.rb +130 -0
  102. data/test/test_ruby_tag.rb +11 -7
  103. data/test/test_tag_parser.rb +31 -29
  104. data/vendor/jis2ucs/README.md +3 -6
  105. data/yml/accent_table.yml +240 -0
  106. data/yml/command_table.yml +61 -0
  107. data/yml/jis2ucs.yml +11234 -0
  108. metadata +99 -21
  109. data/.travis.yml +0 -12
  110. data/appveyor.yml +0 -23
  111. data/lib/accent_tag.rb +0 -23
  112. data/lib/aozora2html/jis2ucs.rb +0 -11237
  113. data/lib/embed_gaiji_tag.rb +0 -34
  114. data/lib/t2hs.rb +0 -2535
@@ -0,0 +1,130 @@
1
+ # frozen_string_literal: true
2
+
3
+ require 'test_helper'
4
+ require 'aozora2html'
5
+
6
+ class RubyParseTest < Test::Unit::TestCase
7
+ def setup
8
+ end
9
+
10
+ def test_parse_ruby1
11
+ src = "青空文庫《あおぞらぶんこ》\r\n"
12
+ parsed = parse_text(src)
13
+ expected = "<ruby><rb>青空文庫</rb><rp>(</rp><rt>あおぞらぶんこ</rt><rp>)</rp></ruby><br />\r\n"
14
+ assert_equal expected, parsed
15
+ end
16
+
17
+ def test_parse_ruby1b
18
+ src = "身装《みなり》\r\n"
19
+ parsed = parse_text(src)
20
+ expected = "<ruby><rb>身装</rb><rp>(</rp><rt>みなり</rt><rp>)</rp></ruby><br />\r\n"
21
+ assert_equal expected, parsed
22
+ end
23
+
24
+ def test_parse_ruby2
25
+ src = "霧の|ロンドン警視庁《スコットランドヤード》\r\n"
26
+ parsed = parse_text(src)
27
+ expected = "霧の<ruby><rb>ロンドン警視庁</rb><rp>(</rp><rt>スコットランドヤード</rt><rp>)</rp></ruby><br />\r\n"
28
+ assert_equal expected, parsed
29
+ end
30
+
31
+ def test_parse_ruby2b
32
+ src = "いかにも最|猛者《もさ》のように\r\n"
33
+ parsed = parse_text(src)
34
+ expected = "いかにも最<ruby><rb>猛者</rb><rp>(</rp><rt>もさ</rt><rp>)</rp></ruby>のように<br />\r\n"
35
+ assert_equal expected, parsed
36
+ end
37
+
38
+ def test_parse_ruby3
39
+ src = "〆切《しめきり》を逃れるために、市ヶ谷《いちがや》から転々《てんてん》と、居を移した。\r\n"
40
+ parsed = parse_text(src)
41
+ expected = "<ruby><rb>〆切</rb><rp>(</rp><rt>しめきり</rt><rp>)</rp></ruby>を逃れるために、<ruby><rb>市ヶ谷</rb><rp>(</rp><rt>いちがや</rt><rp>)</rp></ruby>から<ruby><rb>転々</rb><rp>(</rp><rt>てんてん</rt><rp>)</rp></ruby>と、居を移した。<br />\r\n"
42
+ assert_equal expected, parsed
43
+ end
44
+
45
+ def test_parse_ruby4
46
+ src = "水鉢を置いた※[#「木+靈」、第3水準1-86-29]子窓《れんじまど》の下には\r\n"
47
+ parsed = parse_text(src)
48
+ expected = "水鉢を置いた<ruby><rb><img src=\"../../../gaiji/1-86/1-86-29.png\" alt=\"※(「木+靈」、第3水準1-86-29)\" class=\"gaiji\" />子窓</rb><rp>(</rp><rt>れんじまど</rt><rp>)</rp></ruby>の下には<br />\r\n"
49
+ assert_equal expected, parsed
50
+ end
51
+
52
+ def test_parse_ruby5
53
+ src = "それが彼の 〔E'tude〕《エチュード》 だった。\r\n"
54
+ parsed = parse_text(src)
55
+ expected = "それが彼の <ruby><rb><img src=\"../../../gaiji/1-09/1-09-32.png\" alt=\"※(アキュートアクセント付きE)\" class=\"gaiji\" />tude</rb><rp>(</rp><rt>エチュード</rt><rp>)</rp></ruby> だった。<br />\r\n"
56
+ assert_equal expected, parsed
57
+ end
58
+
59
+ def test_parse_ruby6
60
+ src = "青空文庫[#「青空文庫」の左に「あおぞらぶんこ」のルビ]\r\n"
61
+ parsed = parse_text(src)
62
+ expected = "青空文庫<span class=\"notes\">[#「青空文庫」の左に「あおぞらぶんこ」のルビ]</span><br />\r\n"
63
+ assert_equal expected, parsed
64
+ end
65
+
66
+ def test_parse_ruby7
67
+ src = "青空文庫《あおぞらぶんこ》[#「青空文庫」の左に「aozora bunko」のルビ]\r\n"
68
+ parsed = parse_text(src)
69
+ expected = %Q(<ruby><rb>青空文庫</rb><rp>(</rp><rt>あおぞらぶんこ</rt><rp>)</rp></ruby><span class="notes">[#「青空文庫」の左に「aozora bunko」のルビ]</span><br />\r\n)
70
+ assert_equal expected, parsed
71
+ end
72
+
73
+ def test_parse_ruby8
74
+ src = "大空文庫[#「大空文庫」に「ママ」の注記]\r\n"
75
+ parsed = parse_text(src)
76
+ expected = %Q(<ruby><rb>大空文庫</rb><rp>(</rp><rt>ママ</rt><rp>)</rp></ruby><br />\r\n)
77
+ assert_equal expected, parsed
78
+ end
79
+
80
+ def test_parse_ruby9
81
+ src = "大空文庫[#「大空文庫」の左に「ママ」の注記]\r\n"
82
+ parsed = parse_text(src)
83
+ expected = %Q(大空文庫<span class="notes">[#「大空文庫」の左に「ママ」の注記]</span><br />\r\n)
84
+ assert_equal expected, parsed
85
+ end
86
+
87
+ def test_parse_ruby10
88
+ src = "大空文庫《あおぞらぶんこ》[#「大空文庫」の左に「ママ」の注記]\r\n"
89
+ parsed = parse_text(src)
90
+ expected = %Q(<ruby><rb>大空文庫</rb><rp>(</rp><rt>あおぞらぶんこ</rt><rp>)</rp></ruby><span class="notes">[#「大空文庫」の左に「ママ」の注記]</span><br />\r\n)
91
+ assert_equal expected, parsed
92
+ end
93
+
94
+ def test_parse_ruby11
95
+ src = "大空文庫《あおぞらぶんこ》[#「大空文庫」の左に「ママ」の注記]\r\n"
96
+ parsed = parse_text(src)
97
+ expected = %Q(<ruby><rb>大空文庫</rb><rp>(</rp><rt>あおぞらぶんこ</rt><rp>)</rp></ruby><span class="notes">[#「大空文庫」の左に「ママ」の注記]</span><br />\r\n)
98
+ assert_equal expected, parsed
99
+ end
100
+
101
+ using Aozora2Html::StringRefinements
102
+
103
+ def test_parse_ruby12
104
+ src = "大空文庫《あおぞらぶんこ》[#「大空文庫」に「ママ」の注記]\r\n"
105
+ assert_raise(Aozora2Html::Error.new('同じ箇所に2つのルビはつけられません'.to_sjis)) do
106
+ _parsed = parse_text(src)
107
+ end
108
+ end
109
+
110
+ def test_parse_ruby13
111
+ src = "[#注記付き]名※[#二の字点、1-2-22][#「(銘々)」の注記付き終わり]\r\n"
112
+ parsed = parse_text(src)
113
+ expected = %Q|<ruby><rb>名<img src="../../../gaiji/1-02/1-02-22.png" alt="※(二の字点、1-2-22)" class="gaiji" /></rb><rp>(</rp><rt>(銘々)</rt><rp>)</rp></ruby><br />\r\n|
114
+ assert_equal expected, parsed
115
+ end
116
+
117
+ def parse_text(input_text)
118
+ input = StringIO.new(input_text.to_sjis)
119
+ output = StringIO.new
120
+ parser = Aozora2Html.new(input, output)
121
+ parser.instance_eval { @section = :tail }
122
+ catch(:terminate) do
123
+ loop do
124
+ parser.__send__(:parse)
125
+ end
126
+ end
127
+
128
+ output.string.to_utf8
129
+ end
130
+ end
@@ -1,21 +1,25 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require 'test_helper'
3
4
  require 'aozora2html'
4
5
 
5
6
  class RubyTagTest < Test::Unit::TestCase
6
7
  def setup
7
- stub(@parser).block_allowed_context?{true}
8
+ @parser = Object.new
9
+ stub(@parser).block_allowed_context? { true }
8
10
  end
9
11
 
12
+ using Aozora2Html::StringRefinements
13
+
10
14
  def test_ruby_new
11
- tag = Ruby_tag.new(@parser,"aaa".encode("shift_jis"),"bb")
12
- assert_equal Ruby_tag, tag.class
13
- assert_equal true, tag.kind_of?(Inline_tag)
15
+ tag = Aozora2Html::Tag::Ruby.new(@parser, 'aaa'.to_sjis, 'bb')
16
+ assert_equal Aozora2Html::Tag::Ruby, tag.class
17
+ assert_equal true, tag.is_a?(Aozora2Html::Tag::Inline)
14
18
  end
15
19
 
16
20
  def test_to_s
17
- tag = Ruby_tag.new(@parser,"テスト".encode("shift_jis"),"てすと".encode("shift_jis"))
18
- assert_equal "<ruby><rb>テスト</rb><rp>(</rp><rt>てすと</rt><rp>)</rp></ruby>", tag.to_s.encode("utf-8")
21
+ tag = Aozora2Html::Tag::Ruby.new(@parser, 'テスト'.to_sjis, 'てすと'.to_sjis)
22
+ assert_equal '<ruby><rb>テスト</rb><rp>(</rp><rt>てすと</rt><rp>)</rp></ruby>', tag.to_s.to_utf8
19
23
  end
20
24
 
21
25
  def teardown
@@ -1,4 +1,5 @@
1
- # encoding: utf-8
1
+ # frozen_string_literal: true
2
+
2
3
  require 'test_helper'
3
4
  require 'aozora2html'
4
5
  require 'fileutils'
@@ -6,75 +7,76 @@ require 'tmpdir'
6
7
 
7
8
  class TagParserTest < Test::Unit::TestCase
8
9
  def setup
9
- @jisx0213 = Embed_Gaiji_tag.use_jisx0213
10
+ @jisx0213 = Aozora2Html::Tag::EmbedGaiji.use_jisx0213
10
11
  end
11
12
 
13
+ using Aozora2Html::StringRefinements
14
+
12
15
  def test_parse_katakana
13
- str = "テスト!あいうえお\r\n".encode("shift_jis")
16
+ str = "テスト!あいうえお\r\n".to_sjis
14
17
  strio = StringIO.new(str)
15
18
  stream = Jstream.new(strio)
16
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
17
- expected = "テスト"
18
- assert_equal expected, command.to_s.encode("utf-8")
19
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: nil).process
20
+ expected = 'テスト'
21
+ assert_equal expected, command.to_s.to_utf8
19
22
  end
20
23
 
21
24
  def test_parse_bouten
22
- str = "腹がへっても[#「腹がへっても」に傍点]、ひもじゅうない[#「ひもじゅうない」に傍点]とかぶりを振っている…\r\n".encode("shift_jis")
25
+ str = "腹がへっても[#「腹がへっても」に傍点]、ひもじゅうない[#「ひもじゅうない」に傍点]とかぶりを振っている…\r\n".to_sjis
23
26
  strio = StringIO.new(str)
24
27
  stream = Jstream.new(strio)
25
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
28
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: nil).process
26
29
  expected = '<em class="sesame_dot">腹がへっても</em>、<em class="sesame_dot">ひもじゅうない</em>とかぶりを振っている'
27
- assert_equal expected, command.to_s.encode("utf-8")
30
+ assert_equal expected, command.to_s.to_utf8
28
31
  end
29
32
 
30
33
  def test_parse_gaiji
31
- str = "※[#「てへん+劣」、第3水準1-84-77]…\r\n".encode("shift_jis")
34
+ str = "※[#「てへん+劣」、第3水準1-84-77]…\r\n".to_sjis
32
35
  strio = StringIO.new(str)
33
36
  stream = Jstream.new(strio)
34
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
35
- expected = '<img src="../../../gaiji/1-84/1-84-77.png" alt="※(「てへん+劣」、第3水準1-84-77)" class="gaiji" />'
36
- assert_equal expected, command.to_s.encode("utf-8")
37
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: 'g_dir/').process
38
+ expected = '<img src="g_dir/1-84/1-84-77.png" alt="※(「てへん+劣」、第3水準1-84-77)" class="gaiji" />'
39
+ assert_equal expected, command.to_s.to_utf8
37
40
  end
38
41
 
39
42
  def test_parse_gaiji_a
40
- str = "※[#「口+世」、ページ数-行数]…\r\n".encode("shift_jis")
43
+ str = "※[#「口+世」、ページ数-行数]…\r\n".to_sjis
41
44
  strio = StringIO.new(str)
42
45
  stream = Jstream.new(strio)
43
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
46
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: 'g_dir/').process
44
47
  expected = '※<span class="notes">[#「口+世」、ページ数-行数]</span>'
45
- assert_equal expected, command.to_s.encode("utf-8")
48
+ assert_equal expected, command.to_s.to_utf8
46
49
  end
47
50
 
48
51
  def test_parse_gaiji_b
49
- str = "※[#二の字点、1-2-22]…\r\n".encode("shift_jis")
52
+ str = "※[#二の字点、1-2-22]…\r\n".to_sjis
50
53
  strio = StringIO.new(str)
51
54
  stream = Jstream.new(strio)
52
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
53
- expected = '<img src="../../../gaiji/1-02/1-02-22.png" alt="※(二の字点、1-2-22)" class="gaiji" />'
54
- assert_equal expected, command.to_s.encode("utf-8")
55
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: 'g_dir/').process
56
+ expected = '<img src="g_dir/1-02/1-02-22.png" alt="※(二の字点、1-2-22)" class="gaiji" />'
57
+ assert_equal expected, command.to_s.to_utf8
55
58
  end
56
59
 
57
60
  def test_parse_gaiji_kaeri
58
- str = "自[#二]女王國[#一]東度[#レ]海千餘里。…\r\n".encode("shift_jis")
61
+ str = "自[#二]女王國[#一]東度[#レ]海千餘里。…\r\n".to_sjis
59
62
  strio = StringIO.new(str)
60
63
  stream = Jstream.new(strio)
61
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
64
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: 'g_dir/').process
62
65
  expected = '自<sub class="kaeriten">二</sub>女王國<sub class="kaeriten">一</sub>東度<sub class="kaeriten">レ</sub>海千餘里。'
63
- assert_equal expected, command.to_s.encode("utf-8")
66
+ assert_equal expected, command.to_s.to_utf8
64
67
  end
65
68
 
66
69
  def test_parse_gaiji_jisx0213
67
- Embed_Gaiji_tag.use_jisx0213 = true
68
- str = "※[#「てへん+劣」、第3水準1-84-77]…\r\n".encode("shift_jis")
70
+ Aozora2Html::Tag::EmbedGaiji.use_jisx0213 = true
71
+ str = "※[#「てへん+劣」、第3水準1-84-77]…\r\n".to_sjis
69
72
  strio = StringIO.new(str)
70
73
  stream = Jstream.new(strio)
71
- command, raw = Aozora_tag_parser.new(stream,"".encode("shift_jis"),{},[]).process
74
+ command, _raw = Aozora2Html::TagParser.new(stream, ''.to_sjis, {}, [], gaiji_dir: 'g_dir/').process
72
75
  expected = '&#x6318;'
73
- assert_equal expected, command.to_s.encode("utf-8")
76
+ assert_equal expected, command.to_s.to_utf8
74
77
  end
75
78
 
76
79
  def teardown
77
- Embed_Gaiji_tag.use_jisx0213 = @jisx0213
80
+ Aozora2Html::Tag::EmbedGaiji.use_jisx0213 = @jisx0213
78
81
  end
79
82
  end
80
-
@@ -4,7 +4,7 @@ JIS X 0213の面区点番号からUnicode(UCS)の数値文字参照に変換す
4
4
 
5
5
  元となる対応表は、下記URLのものを使っています。
6
6
 
7
- http://w3.kcua.ac.jp/~fujiwara/jis2000/jis2004/jisx0213-2004-mono.html
7
+ <http://w3.kcua.ac.jp/~fujiwara/jis2000/jis2004/jisx0213-2004-mono.html>
8
8
 
9
9
  ## 生成方法
10
10
 
@@ -12,15 +12,12 @@ http://w3.kcua.ac.jp/~fujiwara/jis2000/jis2004/jisx0213-2004-mono.html
12
12
 
13
13
  `jis2ucs.rb`を生成するには、コマンドラインで以下のように実行します。
14
14
 
15
- ```
15
+ ```shell-session
16
16
  $ ruby mkconv.rb > ../../lib/aozora2html/jis2ucs.rb
17
17
  ```
18
18
 
19
19
  ## License
20
20
 
21
- jis2ucs.rbLicenseはCC0とします。
22
-
21
+ `jis2ucs.rb`のLicenseはCC0とします。
23
22
 
24
23
  Masayoshi Takahashi
25
-
26
-
@@ -0,0 +1,240 @@
1
+ ---
2
+ "!":
3
+ "@":
4
+ - 1-09/1-09-03
5
+ - 逆感嘆符
6
+ "?":
7
+ "@":
8
+ - 1-09/1-09-22
9
+ - 逆疑問符
10
+ A:
11
+ "`":
12
+ - 1-09/1-09-23
13
+ - グレーブアクセント付きA
14
+ "'":
15
+ - 1-09/1-09-24
16
+ - アキュートアクセント付きA
17
+ "^":
18
+ - 1-09/1-09-25
19
+ - サーカムフレックスアクセント付き
20
+ "~":
21
+ - 1-09/1-09-26
22
+ - チルド付きA
23
+ ":":
24
+ - 1-09/1-09-27
25
+ - ダイエレシス付きA
26
+ "&":
27
+ - 1-09/1-09-28
28
+ - 上リング付きA
29
+ _:
30
+ - 1-09/1-09-85
31
+ - マクロン付きA
32
+ E:
33
+ "&":
34
+ - 1-09/1-09-29
35
+ - リガチャAE
36
+ C:
37
+ ",":
38
+ - 1-09/1-09-30
39
+ - セディラ付きC
40
+ E:
41
+ "`":
42
+ - 1-09/1-09-31
43
+ - グレーブアクセント付きE
44
+ "'":
45
+ - 1-09/1-09-32
46
+ - アキュートアクセント付きE
47
+ "^":
48
+ - 1-09/1-09-33
49
+ - サーカムフレックスアクセント付きE
50
+ ":":
51
+ - 1-09/1-09-34
52
+ - ダイエレシス付きE
53
+ _:
54
+ - 1-09/1-09-88
55
+ - マクロン付きE
56
+ I:
57
+ "`":
58
+ - 1-09/1-09-35
59
+ - グレーブアクセント付きI
60
+ "'":
61
+ - 1-09/1-09-36
62
+ - アキュートアクセント付きI
63
+ "^":
64
+ - 1-09/1-09-37
65
+ - サーカムフレックスアクセント付きI
66
+ ":":
67
+ - 1-09/1-09-38
68
+ - ダイエレシス付きI
69
+ _:
70
+ - 1-09/1-09-86
71
+ - マクロン付きI
72
+ N:
73
+ "~":
74
+ - 1-09/1-09-40
75
+ - チルド付きN
76
+ O:
77
+ "`":
78
+ - 1-09/1-09-41
79
+ - グレーブアクセント付きO
80
+ "'":
81
+ - 1-09/1-09-42
82
+ - アキュートアクセント付きO
83
+ "^":
84
+ - 1-09/1-09-43
85
+ - サーカムフレックスアクセント付きO
86
+ "~":
87
+ - 1-09/1-09-44
88
+ - チルド付きO
89
+ ":":
90
+ - 1-09/1-09-45
91
+ - ダイエレシス付きO
92
+ "/":
93
+ - 1-09/1-09-46
94
+ - ストローク付きO
95
+ _:
96
+ - 1-09/1-09-89
97
+ - マクロン付きO
98
+ E:
99
+ "&":
100
+ - 1-11/1-11-11
101
+ - リガチャOE大文字
102
+ U:
103
+ "`":
104
+ - 1-09/1-09-47
105
+ - グレーブアクセント付きU
106
+ "'":
107
+ - 1-09/1-09-48
108
+ - アキュートアクセント付きU
109
+ "^":
110
+ - 1-09/1-09-49
111
+ - サーカムフレックスアクセント付きU
112
+ ":":
113
+ - 1-09/1-09-50
114
+ - ダイエレシス付きU
115
+ _:
116
+ - 1-09/1-09-87
117
+ - マクロン付きU
118
+ Y:
119
+ "'":
120
+ - 1-09/1-09-51
121
+ - アキュートアクセント付きY
122
+ s:
123
+ "&":
124
+ - 1-09/1-09-53
125
+ - ドイツ語エスツェット
126
+ a:
127
+ "`":
128
+ - 1-09/1-09-54
129
+ - グレーブアクセント付きA小文字
130
+ "'":
131
+ - 1-09/1-09-55
132
+ - アキュートアクセント付きA小文字
133
+ "^":
134
+ - 1-09/1-09-56
135
+ - サーカムフレックスアクセント付きA小文字
136
+ "~":
137
+ - 1-09/1-09-57
138
+ - チルド付きA小文字
139
+ ":":
140
+ - 1-09/1-09-58
141
+ - ダイエレシス付きA小文字
142
+ "&":
143
+ - 1-09/1-09-59
144
+ - 上リング付きA小文字
145
+ _:
146
+ - 1-09/1-09-90
147
+ - マクロン付きA小文字
148
+ e:
149
+ "&":
150
+ - 1-09/1-09-60
151
+ - リガチャAE小文字
152
+ c:
153
+ ",":
154
+ - 1-09/1-09-61
155
+ - セディラ付きC小文字
156
+ e:
157
+ "`":
158
+ - 1-09/1-09-62
159
+ - グレーブアクセント付きE小文字
160
+ "'":
161
+ - 1-09/1-09-63
162
+ - アキュートアクセント付きE小文字
163
+ "^":
164
+ - 1-09/1-09-64
165
+ - サーカムフレックスアクセント付きE小文字
166
+ ":":
167
+ - 1-09/1-09-65
168
+ - ダイエレシス付きE小文字
169
+ _:
170
+ - 1-09/1-09-93
171
+ - マクロン付きE小文字
172
+ i:
173
+ "`":
174
+ - 1-09/1-09-66
175
+ - グレーブアクセント付きI小文字
176
+ "'":
177
+ - 1-09/1-09-67
178
+ - アキュートアクセント付きI小文字
179
+ "^":
180
+ - 1-09/1-09-68
181
+ - サーカムフレックスアクセント付きI小文字
182
+ ":":
183
+ - 1-09/1-09-69
184
+ - ダイエレシス付きI小文字
185
+ _:
186
+ - 1-09/1-09-91
187
+ - マクロン付きI小文字
188
+ n:
189
+ "~":
190
+ - 1-09/1-09-71
191
+ - チルド付きN小文字
192
+ o:
193
+ "`":
194
+ - 1-09/1-09-72
195
+ - グレーブアクセント付きO小文字
196
+ "'":
197
+ - 1-09/1-09-73
198
+ - アキュートアクセント付きO小文字
199
+ "^":
200
+ - 1-09/1-09-74
201
+ - サーカムフレックスアクセント付きO小文字
202
+ "~":
203
+ - 1-09/1-09-75
204
+ - チルド付きO小文字
205
+ ":":
206
+ - 1-09/1-09-76
207
+ - ダイエレシス付きO小文字
208
+ _:
209
+ - 1-09/1-09-94
210
+ - マクロン付きO小文字
211
+ "/":
212
+ - 1-09/1-09-77
213
+ - ストローク付きO小文字
214
+ e:
215
+ "&":
216
+ - 1-11/1-11-10
217
+ - リガチャOE小文字
218
+ u:
219
+ "`":
220
+ - 1-09/1-09-78
221
+ - グレーブアクセント付きU小文字
222
+ "'":
223
+ - 1-09/1-09-79
224
+ - アキュートアクセント付きU小文字
225
+ "^":
226
+ - 1-09/1-09-80
227
+ - サーカムフレックスアクセント付きU小文字
228
+ _:
229
+ - 1-09/1-09-92
230
+ - マクロン付きU小文字
231
+ ":":
232
+ - 1-09/1-09-81
233
+ - ダイエレシス付きU小文字
234
+ y:
235
+ "'":
236
+ - 1-09/1-09-82
237
+ - アキュートアクセント付きY小文字
238
+ ":":
239
+ - 1-09/1-09-84
240
+ - ダイエレシス付きY小文字
@@ -0,0 +1,61 @@
1
+ ---
2
+ 傍点:
3
+ - sesame_dot
4
+ - em
5
+ 白ゴマ傍点:
6
+ - white_sesame_dot
7
+ - em
8
+ 丸傍点:
9
+ - black_circle
10
+ - em
11
+ 白丸傍点:
12
+ - white_circle
13
+ - em
14
+ 黒三角傍点:
15
+ - black_up-pointing_triangle
16
+ - em
17
+ 白三角傍点:
18
+ - white_up-pointing_triangle
19
+ - em
20
+ 二重丸傍点:
21
+ - bullseye
22
+ - em
23
+ 蛇の目傍点:
24
+ - fisheye
25
+ - em
26
+ ばつ傍点:
27
+ - saltire
28
+ - em
29
+ 傍線:
30
+ - underline_solid
31
+ - em
32
+ 二重傍線:
33
+ - underline_double
34
+ - em
35
+ 鎖線:
36
+ - underline_dotted
37
+ - em
38
+ 破線:
39
+ - underline_dashed
40
+ - em
41
+ 波線:
42
+ - underline_wave
43
+ - em
44
+ 太字:
45
+ - futoji
46
+ - span
47
+ 斜体:
48
+ - shatai
49
+ - span
50
+ 下付き小文字:
51
+ - subscript
52
+ - sub
53
+ 上付き小文字:
54
+ - superscript
55
+ - sup
56
+ 行右小書き:
57
+ - superscript
58
+ - sup
59
+ 行左小書き:
60
+ - subscript
61
+ - sub