narou 2.9.5 → 3.0.0

Sign up to get free protection for your applications and to get access to all the features.

Potentially problematic release.


This version of narou might be problematic. Click here for more details.

Files changed (112) hide show
  1. checksums.yaml +4 -4
  2. data/.gitignore +7 -0
  3. data/.reek +34 -0
  4. data/.rspec +1 -0
  5. data/.rubocop.yml +9 -1
  6. data/ChangeLog.md +90 -0
  7. data/Gemfile +4 -0
  8. data/README.md +85 -8
  9. data/lib/command/convert.rb +1 -1
  10. data/lib/command/list.rb +59 -73
  11. data/lib/command/list/novel_decorator.rb +107 -0
  12. data/lib/command/send.rb +23 -13
  13. data/lib/command/setting.rb +5 -1
  14. data/lib/command/update.rb +104 -138
  15. data/lib/command/update/general_lastup_updater.rb +105 -0
  16. data/lib/command/update/interval.rb +29 -0
  17. data/lib/command/web.rb +1 -1
  18. data/lib/commandbase.rb +24 -17
  19. data/lib/converterbase.rb +10 -5
  20. data/lib/database.rb +16 -5
  21. data/lib/device.rb +5 -1
  22. data/lib/device/library/linux.rb +68 -8
  23. data/lib/downloader.rb +24 -23
  24. data/lib/extension.rb +16 -3
  25. data/lib/helper.rb +26 -3
  26. data/lib/html.rb +1 -1
  27. data/lib/inspector.rb +9 -0
  28. data/lib/inventory.rb +20 -6
  29. data/lib/logger.rb +8 -2
  30. data/lib/mailer.rb +2 -1
  31. data/lib/narou.rb +28 -18
  32. data/lib/narou/api.rb +62 -31
  33. data/lib/novelconverter.rb +8 -1
  34. data/lib/novelinfo.rb +8 -7
  35. data/lib/novelsetting.rb +1 -0
  36. data/lib/progressbar.rb +6 -2
  37. data/lib/sitesetting.rb +2 -1
  38. data/lib/version.rb +1 -1
  39. data/lib/web/appserver.rb +72 -9
  40. data/lib/web/public/resources/narou.library.js +130 -13
  41. data/lib/web/public/resources/narou.ui.js +96 -9
  42. data/lib/web/settingmessages.rb +2 -1
  43. data/lib/web/views/_about.haml +15 -2
  44. data/lib/web/views/index.haml +12 -3
  45. data/lib/web/views/layout.haml +2 -1
  46. data/lib/web/views/style.scss +12 -0
  47. data/narou.gemspec +88 -11
  48. data/narou.rb +7 -1
  49. data/preset/mail_setting.yaml +40 -6
  50. data/webnovel/kakuyomu.jp.yaml +8 -8
  51. metadata +95 -139
  52. data/spec/README.txt +0 -4
  53. data/spec/convert_spec.rb +0 -119
  54. data/spec/converterbase_spec.rb +0 -298
  55. data/spec/data/convert_test/auto_indent/correct_test_auto_indent.txt +0 -28
  56. data/spec/data/convert_test/auto_indent/test_auto_indent.txt +0 -32
  57. data/spec/data/convert_test/auto_join_bracket/correct_test_auto_join_bracket.txt +0 -24
  58. data/spec/data/convert_test/auto_join_bracket/test_auto_join_bracket.txt +0 -28
  59. data/spec/data/convert_test/auto_join_line/correct_test_auto_join_line.txt +0 -43
  60. data/spec/data/convert_test/auto_join_line/test_auto_join_line.txt +0 -59
  61. data/spec/data/convert_test/convert_page_break/correct_test_convert_page_break.txt +0 -22
  62. data/spec/data/convert_test/convert_page_break/setting.ini +0 -5
  63. data/spec/data/convert_test/convert_page_break/test_convert_page_break.txt +0 -60
  64. data/spec/data/convert_test/double_dash_to_image/correct_test_double_dash_to_image.txt +0 -14
  65. data/spec/data/convert_test/double_dash_to_image/setting.ini +0 -1
  66. data/spec/data/convert_test/double_dash_to_image/test_double_dash_to_image.txt +0 -12
  67. data/spec/data/convert_test/english/correct_test_english.txt +0 -27
  68. data/spec/data/convert_test/english/test_english.txt +0 -27
  69. data/spec/data/convert_test/force_indent_special_chapter/correct_test_force_indent_special_chapter.txt +0 -64
  70. data/spec/data/convert_test/force_indent_special_chapter/test_force_indent_special_chapter.txt +0 -61
  71. data/spec/data/convert_test/horizontal_ellipsis/correct_test_horizontal_ellipsis.txt +0 -53
  72. data/spec/data/convert_test/horizontal_ellipsis/test_horizontal_ellipsis.txt +0 -57
  73. data/spec/data/convert_test/insert_separator/correct_test_insert_separator.txt +0 -13
  74. data/spec/data/convert_test/insert_separator/setting.ini +0 -3
  75. data/spec/data/convert_test/insert_separator/test_insert_separator.txt +0 -12
  76. data/spec/data/convert_test/insert_separator_and_replace_txt/correct_test_insert_separator_and_replace_txt.txt +0 -12
  77. data/spec/data/convert_test/insert_separator_and_replace_txt/setting.ini +0 -3
  78. data/spec/data/convert_test/insert_separator_and_replace_txt/test_insert_separator_and_replace_txt.txt +0 -11
  79. data/spec/data/convert_test/kanji_num/correct_test_kanji_num.txt +0 -50
  80. data/spec/data/convert_test/kanji_num/test_kanji_num.txt +0 -56
  81. data/spec/data/convert_test/nonokagi/correct_test_nonokagi.txt +0 -30
  82. data/spec/data/convert_test/nonokagi/test_nonokagi.txt +0 -34
  83. data/spec/data/convert_test/replace/correct_test_replace.txt +0 -13
  84. data/spec/data/convert_test/replace/test_replace.txt +0 -14
  85. data/spec/data/convert_test/ruby/correct_test_ruby.txt +0 -161
  86. data/spec/data/convert_test/ruby/test_ruby.txt +0 -205
  87. data/spec/data/convert_test/ruby_youon/correct_test_ruby_youon.txt +0 -13
  88. data/spec/data/convert_test/ruby_youon/setting.ini +0 -2
  89. data/spec/data/convert_test/ruby_youon/test_ruby_youon.txt +0 -14
  90. data/spec/data/convert_test/sesame/correct_test_sesame.txt +0 -41
  91. data/spec/data/convert_test/sesame/test_sesame.txt +0 -52
  92. data/spec/data/convert_test/to_odd_leader/correct_test_to_odd_leader.txt +0 -21
  93. data/spec/data/convert_test/to_odd_leader/test_to_odd_leader.txt +0 -21
  94. data/spec/data/html_test.html +0 -5
  95. data/spec/data/html_test.txt +0 -4
  96. data/spec/data/test.ini +0 -10
  97. data/spec/device_spec.rb +0 -39
  98. data/spec/downloader_spec.rb +0 -37
  99. data/spec/eventable_spec.rb +0 -172
  100. data/spec/exit_code_spec.rb +0 -67
  101. data/spec/generator/convert_spec_gen.rb +0 -96
  102. data/spec/generator/num_to_kanji_test_gen.rb +0 -33
  103. data/spec/helper_spec.rb +0 -90
  104. data/spec/html_spec.rb +0 -83
  105. data/spec/ini_spec.rb +0 -145
  106. data/spec/input_spec.rb +0 -76
  107. data/spec/logger_spec.rb +0 -92
  108. data/spec/novelinfo_spec.rb +0 -15
  109. data/spec/novelsetting_spec.rb +0 -35
  110. data/spec/num_to_kanji_spec.rb +0 -2482
  111. data/spec/spec_helper.rb +0 -16
  112. data/spec/worker_spec.rb +0 -75
@@ -1,298 +0,0 @@
1
- # -*- Encoding: utf-8 -*-
2
- #
3
- # Copyright 2013 whiteleaf. All rights reserved.
4
- #
5
-
6
- require_relative "../lib/inspector"
7
- require_relative "../lib/novelsetting"
8
- require_relative "../lib/converterbase"
9
-
10
- describe ConverterBase do
11
- before do
12
- novelsetting = NovelSetting.create("", true, true)
13
- inspector = Inspector.new(novelsetting)
14
- @converter = ConverterBase.new(novelsetting, inspector, nil)
15
- end
16
-
17
- context "#erase_comments_block" do
18
- before do
19
- @converter.instance_variable_set(:@text_type, "textfile")
20
- end
21
-
22
- context "コメントブロックが存在した場合" do
23
- before do
24
- @text = <<-EOS
25
- abcdefg
26
- --------------------------------------------------
27
- hijklmn
28
- --------------------------------------------------
29
- opqrstu
30
- EOS
31
- end
32
-
33
- it "削除する" do
34
- expect(@converter.erase_comments_block(@text)).to eq <<-EOS
35
- abcdefg
36
- opqrstu
37
- EOS
38
- end
39
-
40
- context "複数のコメントブロックが存在した場合" do
41
- it "それぞれのブロックの中だけ削除する" do
42
- text = @text * 2
43
- expect(@converter.erase_comments_block(text)).to eq <<-EOS
44
- abcdefg
45
- opqrstu
46
- abcdefg
47
- opqrstu
48
- EOS
49
- end
50
- end
51
-
52
- context "@text_file が \"textfile\" ではなかった場合" do
53
- it "削除しない" do
54
- @converter.instance_variable_set(:@text_type, "body")
55
- expect(@converter.erase_comments_block(@text)).to eq @text
56
- end
57
- end
58
- end
59
-
60
- it "コメントじゃなかった場合は削除しない(-が49文字以下)" do
61
- text = <<-EOS
62
- abcdefg
63
- -------------------------------------------------
64
- hijklmn
65
- -------------------------------------------------
66
- opqrstu
67
- EOS
68
- expect(@converter.erase_comments_block(text)).to eq text
69
- end
70
- end
71
-
72
- context "#modify_kana_ni_to_kanji_ni" do
73
- describe "ニ(カタカナ)の前後1文字がカタカナの場合" do
74
- it "カタカナのまま" do
75
- expect(@converter.modify_kana_ni_to_kanji_ni("イチニサン")).to eq "イチニサン"
76
- expect(@converter.modify_kana_ni_to_kanji_ni("ニーサン")).to eq "ニーサン"
77
- end
78
- end
79
-
80
- describe "ニ(カタカナ)の前後1文字がカタカナではなく、さらにその前後がカタカナの場合" do
81
- it "カタカナのまま" do
82
- expect(@converter.modify_kana_ni_to_kanji_ni("イチ、ニ、サン")).to eq "イチ、ニ、サン"
83
- expect(@converter.modify_kana_ni_to_kanji_ni("『ニ、ニンゲンの――』")).to eq "『ニ、ニンゲンの――』"
84
- expect(@converter.modify_kana_ni_to_kanji_ni("ニ、ニンゲン")).to eq "ニ、ニンゲン"
85
- end
86
- end
87
-
88
- describe "ニ(カタカナ)の前後1文字がカタカナではなく、さらにその前後がカタカナではない場合" do
89
- it "漢字の二に修正する" do
90
- expect(@converter.modify_kana_ni_to_kanji_ni("価格はニ千万円")).to eq "価格は二千万円"
91
- end
92
- end
93
- end
94
-
95
- context "#insert_word_separator" do
96
- before do
97
- @converter.instance_variable_set(:@text_type, "body")
98
- setting = @converter.instance_variable_get(:@setting)
99
- setting.enable_insert_word_separator = true
100
- end
101
-
102
- describe "Kindle以外" do before do
103
- @converter.instance_variable_set(:@device, Narou.get_device("reader"))
104
- end
105
-
106
- it "何も弄らない" do
107
- expect(@converter.insert_separator_for_selection("今日もいい天気ですね")).to eq "今日もいい天気ですね"
108
- end
109
- end
110
-
111
- describe "単語単位で区切る" do
112
- it do
113
- expect(@converter.insert_word_separator \
114
- "今日もいい天気ですね").to eq \
115
- "今日[#zws]もいい[#zws]天気[#zws]ですね[#zws]"
116
- end
117
-
118
- it do
119
- expect(@converter.insert_word_separator \
120
- "合計1500円です").to eq \
121
- "合計[#zws]1500[#zws]円[#zws]です[#zws]"
122
- end
123
-
124
- it do
125
- expect(@converter.insert_word_separator \
126
- "[#二分アキ]「注釈内は区切らない」").to eq \
127
- "[#二分アキ]「注釈内[#zws]は[#zws]区切[#zws]らない[#zws]」"
128
- end
129
-
130
- it do
131
- expect(@converter.insert_word_separator \
132
- "あいう・えお").to eq \
133
- "あいう[#zws]・[#zws]えお[#zws]"
134
- end
135
-
136
- it do
137
- expect(@converter.insert_word_separator \
138
- "アイウ・エオ").to eq \
139
- "アイウ・エオ[#zws]"
140
- end
141
-
142
- it do
143
- expect(@converter.insert_word_separator \
144
- "彼は――そう……言った").to eq \
145
- "彼[#zws]は[#zws]――[#zws]そう[#zws]……[#zws]言[#zws]った[#zws]"
146
- end
147
-
148
- it do
149
- expect(@converter.insert_word_separator \
150
- "「あいう」、「えお」").to eq \
151
- "「あいう[#zws]」、「えお[#zws]」"
152
- end
153
-
154
- it "ルビは除外" do
155
- expect(@converter.insert_word_separator \
156
- "これは|漢字《かんじ》です").to eq \
157
- "これは[#zws]|漢字《かんじ》[#zws]です[#zws]"
158
- expect(@converter.insert_word_separator \
159
- "俺の妹がこんなに|可愛い《かわいい》わけがない").to eq \
160
- "俺[#zws]の[#zws]妹[#zws]がこんなに[#zws]|可愛い《かわいい》[#zws]わけがない[#zws]"
161
- end
162
-
163
- it "外字注記は連続させる" do
164
- expect(@converter.insert_word_separator \
165
- "失われし楽園※[#始め二重山括弧]パラダイスロスト※[#終わり二重山括弧]!!").to eq \
166
- "失[#zws]われし[#zws]楽園[#zws]※[#始め二重山括弧][#zws]パラダイスロスト[#zws]※[#終わり二重山括弧]!!"
167
- end
168
-
169
- # zws があるせいで禁則処理が正常に働かないための対応
170
- it "開きカッコの直後にzwsは挿入しない" do
171
- expect(@converter.insert_word_separator \
172
- "そっちの『鈴』と一緒に入っていた").to eq \
173
- "そっちの[#zws]『鈴[#zws]』[#zws]と[#zws]一緒[#zws]に[#zws]入[#zws]っていた[#zws]"
174
- end
175
-
176
- it "開きカッコの直後にzwsは挿入しない" do
177
- expect(@converter.insert_word_separator \
178
- "(ほげ)『ふが』").to eq \
179
- "(ほげ[#zws])『ふが[#zws]』"
180
- end
181
-
182
- it "開きカッコの直後にzwsは挿入しない" do
183
- expect(@converter.insert_word_separator \
184
- "[ほげ]").to eq \
185
- "[ほげ[#zws]]"
186
- end
187
-
188
- it "英語はそのまま" do
189
- expect(@converter.insert_word_separator \
190
- "トムは言った。「This is a pen」").to eq \
191
- "トム[#zws]は[#zws]言[#zws]った[#zws]。「This is a pen[#zws]」"
192
- end
193
-
194
- it "タグの中ではzwsは挿入しない" do
195
- expect(@converter.insert_word_separator \
196
- "click <a href=\"http://google.com\">link</a>").to eq \
197
- "click [#zws]<a href=\"http://google.com\">link[#zws]</a>"
198
- end
199
- end
200
-
201
- describe "文字単位で区切る" do
202
- it do
203
- expect(@converter.insert_char_separator \
204
- "今日もいい天気").to eq \
205
- "今[#zws]日[#zws]も[#zws]い[#zws]い[#zws]天[#zws]気[#zws]"
206
- end
207
-
208
- it "連続させないとまずいものは連続させる" do
209
- expect(@converter.insert_char_separator \
210
- "――何ということでしょう……。").to eq \
211
- "――[#zws]何[#zws]と[#zws]い[#zws]う[#zws]こ[#zws]と[#zws]で[#zws]し[#zws]ょ[#zws]う[#zws]……[#zws]。[#zws]"
212
- end
213
-
214
- it "外字注記は連続させる" do
215
- expect(@converter.insert_char_separator \
216
- "失われし楽園※[#始め二重山括弧]パラダイスロスト※[#終わり二重山括弧]!!").to eq \
217
- "失[#zws]わ[#zws]れ[#zws]し[#zws]楽[#zws]園[#zws]※[#始め二重山括弧][#zws]パ[#zws]ラ[#zws]ダ[#zws]イ[#zws]ス[#zws]ロ[#zws]ス[#zws]ト[#zws]※[#終わり二重山括弧]!!"
218
- end
219
- end
220
- end
221
-
222
- describe "#to_ruby" do
223
- def to_ruby(match, m1, m2, open_close)
224
- @converter.to_ruby(match, m1, m2, open_close).gsub("[#ルビ用縦線]", "|")
225
- end
226
-
227
- describe "拗音の巨大化チェック" do
228
- before do
229
- @converter.instance_variable_get(:@setting).enable_ruby_youon_to_big = true
230
- end
231
-
232
- it "大きくなるべき" do
233
- expect(to_ruby( \
234
- "ここは東京", "ここは東京", "とうきょう", ["(", ")"])).to eq \
235
- "ここは|東京《とうきよう》"
236
- end
237
-
238
- it "大きくなるべき" do
239
- expect(to_ruby( \
240
- "ここは|東京", "ここは|東京", "とうきょう", ["(", ")"])).to eq \
241
- "ここは|東京《とうきよう》"
242
- end
243
-
244
- it "大きくなるべき" do
245
- expect(to_ruby( \
246
- "ここは東京", "ここは東京", "トウキョウ", ["(", ")"])).to eq \
247
- "ここは|東京《トウキヨウ》"
248
- end
249
-
250
- it "大きくなるべき" do
251
- expect(to_ruby( \
252
- "ここは|東京", "ここは|東京", "トウキョウ", ["(", ")"])).to eq \
253
- "ここは|東京《トウキヨウ》"
254
- end
255
- end
256
-
257
- describe "半角スペースがある場合の挙動" do
258
- it "ルビにはならない(先頭スペース1個+末尾スペース1個)" do
259
- expect(to_ruby( \
260
- "追撃をしない俺に振り返り、再度《 パワースラッシュ 》",
261
- "追撃をしない俺に振り返り、再度", " パワースラッシュ ", ["《", "》"])).to eq \
262
- "追撃をしない俺に振り返り、再度《 パワースラッシュ 》"
263
- end
264
- it "ルビにはならない(先頭スペース1個)" do
265
- expect(to_ruby( \
266
- "追撃をしない俺に振り返り、再度《 パワースラッシュ》",
267
- "追撃をしない俺に振り返り、再度", " パワースラッシュ", ["《", "》"])).to eq \
268
- "追撃をしない俺に振り返り、再度《 パワースラッシュ》"
269
- end
270
- it "ルビにはならない(末尾スペース2個以上)" do
271
- expect(to_ruby( \
272
- "追撃をしない俺に振り返り、再度《パワースラッシュ 》",
273
- "追撃をしない俺に振り返り、再度", "パワースラッシュ ", ["《", "》"])).to eq \
274
- "追撃をしない俺に振り返り、再度《パワースラッシュ 》"
275
- end
276
- it "ルビにはならない(末尾スペース2個以上)" do
277
- expect(to_ruby( \
278
- "追撃をしない俺に振り返り、再度《パワースラッシュ 》",
279
- "追撃をしない俺に振り返り、再度", "パワースラッシュ ", ["《", "》"])).to eq \
280
- "追撃をしない俺に振り返り、再度《パワースラッシュ 》"
281
- end
282
-
283
- it "ルビになるべき" do
284
- expect(to_ruby( \
285
- "追撃をしない俺に振り返り、再度《パワースラッシュ》",
286
- "追撃をしない俺に振り返り、再度", "パワースラッシュ", ["《", "》"])).to eq \
287
- "追撃をしない俺に振り返り、|再度《パワースラッシュ》"
288
- end
289
- it "ルビになるべき(末尾スペース1個)" do
290
- expect(to_ruby( \
291
- "追撃をしない俺に振り返り、再度《パワースラッシュ 》",
292
- "追撃をしない俺に振り返り、再度", "パワースラッシュ ", ["《", "》"])).to eq \
293
- "追撃をしない俺に振り返り、|再度《パワースラッシュ 》"
294
- end
295
- end
296
- end
297
- end
298
-
@@ -1,28 +0,0 @@
1
- test_auto_indent
2
- whiteleaf
3
-
4
- [#改ページ]
5
-
6
- [#3字下げ][#中見出し]オートインデントテスト[#中見出し終わり]
7
-
8
-
9
- [#二分アキ]「おはようございます、先輩♪」
10
-  朝から元気に挨拶をしてきたのは、一つしたの後輩、光坂瑞穂である。
11
-  こいつは昔から近所同士の付き合いをしてきた、いわゆる幼馴染という奴だ。
12
-  ……というのは嘘だ。
13
-  ・・これはインデントされる
14
-
15
- ・提案一
16
-  ああしろ、こうしろ
17
-
18
- ・提案二
19
-  どうしろ、さあしろ
20
-
21
- ・英文のインデント
22
-  Deus ex machina
23
-
24
- ・半角スペースを全角スペースで字下げ
25
-  半角スペースで字下げしたつもりの行
26
-  半角スペースで字下げしたつもりの行
27
-   半角スペース四個分は全角二個
28
-    奇数の場合は二で割って切り上
@@ -1,32 +0,0 @@
1
- test_auto_indent
2
- whiteleaf
3
-
4
- [#改ページ]
5
- オートインデントテスト
6
-
7
-
8
- 「おはようございます、先輩♪」
9
- 朝から元気に挨拶をしてきたのは、一つしたの後輩、光坂瑞穂である。
10
- こいつは昔から近所同士の付き合いをしてきた、いわゆる幼馴染という奴だ。
11
- ・・・というのは嘘だ。
12
-
13
- ・・これはインデントされる
14
-
15
-
16
- ・提案1
17
- ああしろ、こうしろ
18
-
19
-
20
- ・提案2
21
- どうしろ、さあしろ
22
-
23
-
24
- ・英文のインデント
25
- Deus ex machina
26
-
27
-
28
- ・半角スペースを全角スペースで字下げ
29
- 半角スペースで字下げしたつもりの行
30
- 半角スペースで字下げしたつもりの行
31
- 半角スペース4個分は全角2個
32
- 奇数の場合は2で割って切り上
@@ -1,24 +0,0 @@
1
- test_auto_join_bracket
2
- whiteleaf
3
-
4
- [#改ページ]
5
-
6
- [#3字下げ][#中見出し]カギ括弧連結テスト[#中見出し終わり]
7
-
8
-
9
- [#二分アキ]「あいうえお? 二かきくけこ! 三さしすせそ[#縦中横]!?[#縦中横終わり]」たちつてと。
10
-
11
- [#二分アキ]「そういえば、それはミツキも同じだろ? ミツキは大丈夫なのか?」
12
- [#二分アキ]「私ですか? 一週間程度なら、連戦も問題ありません」
13
- [#二分アキ]「そ、そうか……」
14
-
15
- [#二分アキ]「改行の
16
-  多い
17
-  鍵カッコの
18
-  文章は
19
-  手紙形式の
20
-  可能性が
21
-  あるため
22
-  連結をしないで
23
-  そのままに
24
-  しておく!」
@@ -1,28 +0,0 @@
1
- test_auto_join_bracket
2
- whiteleaf
3
-
4
- [#改ページ]
5
- カギ括弧連結テスト
6
-
7
- 「あいうえお?
8
-  二かきくけこ!
9
-  三さしすせそ!?」たちつてと。
10
-
11
-
12
- 「そういえば、それはミツキも同じだろ?
13
-  ミツキは大丈夫なのか?」
14
- 「私ですか?
15
-  一週間程度なら、連戦も問題ありません」
16
- 「そ、そうか……」
17
-
18
-
19
- 「改行の
20
-  多い
21
-  鍵カッコの
22
-  文章は
23
-  手紙形式の
24
-  可能性が
25
-  あるため
26
-  連結をしないで
27
-  そのままに
28
-  しておく!」
@@ -1,43 +0,0 @@
1
- test_auto_join_line
2
- whiteleaf
3
-
4
- [#改ページ]
5
-
6
- [#3字下げ][#中見出し]作者による折り返しを強制連結テスト[#中見出し終わり]
7
-
8
-
9
- ○前後の文がつながって欲しい表現
10
-  悲痛な叫び声が背中に突き刺さっていたが、明日香は無視して走り続けた。
11
-
12
-  悲痛な叫び声が背中に突き刺さっていたが、明日香は無視して走り続けた。
13
-
14
-
15
- ×前後の文はつながって欲しくない表現
16
- 悲痛な叫び声が背中に突き刺さっていたが、
17
- 明日香は無視して走り続けた。
18
-
19
-  悲痛な叫び声が背中に突き刺さっていたが、
20
-
21
-  明日香は無視して走り続けた。
22
-
23
-  次の行が字下げなしの場合は、箇条書きの説明等の可能性があるため連結して欲しくない。
24
-  悲痛な叫び声が背中に突き刺さっていたが、
25
- 明日香は無視して走り続けた。
26
-
27
-  悲痛な叫び声が背中に突き刺さっていたが、
28
-  ……明日香は無視して走り続けた。
29
-
30
-  悲痛な叫び声が背中に突き刺さっていたが、
31
-  ――明日香は無視して走り続けた。
32
-
33
-  悲痛な叫び声が背中に突き刺さっていたが、
34
- [#二分アキ]「私が行かなければ彼の犠牲は無駄になる……!」
35
-
36
-  悲痛な叫び声が背中に突き刺さっていたが、
37
- [#二分アキ]「私が行かなければ彼の犠牲は無駄になる……!」
38
-
39
-  悲痛な叫び声が背中に突き刺さっていたが、
40
- [#二分アキ](私が行かなければ彼の犠牲は無駄になる……!)
41
-
42
-       一度鑑定するか、倒した魔物、アイテムの情報を蓄積し、
43
-       後に閲覧できる。