narou 1.1.0.rc2 → 1.1.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.

checksums.yaml ADDED
@@ -0,0 +1,7 @@
1
+ ---
2
+ SHA1:
3
+ metadata.gz: 12100ac19287f851bc6d0f2092226f0e2d41ca24
4
+ data.tar.gz: ac7fa17436475c5c3c4d36b981d8a0b0db8b7237
5
+ SHA512:
6
+ metadata.gz: e7dd9bc8f09118f5dc5ebd0a7cad57343c9539d6f14af2bc201c71aa264c6b44bccf24cb1c54aed56159af001f3a649ef53739bebaefa174af546bafa238b716
7
+ data.tar.gz: 0c48561bb416ae0396581b2ed84c7f72e839ef26e67c906fd4df1a05ea3ede7cc410a6c8fefb3a174bdc584b5c484acdd17b7d0cb2df0e0c214f98a22d5c199a
data/ChangeLog.md CHANGED
@@ -1,13 +1,18 @@
1
1
  
2
2
  更新履歴 - ChangeLog
3
3
  --------------------
4
+ 2013/03/07 : **1.1.0**
5
+ * Bug Fix
6
+ - xhtml_nav.vm の</ol></li>が過剰付与だったのを修正
7
+ - |《るび》 な場合、ルビ化を無効にする(なろうの仕様に追随)
8
+ * 追加機能もしくは仕様変更
9
+ - Ruby2.0.0対応
4
10
 
5
11
  2013/03/07 : **1.1.0.rc2**
6
12
  * Bug Fix
7
13
  - `update` コマンドに存在しない小説を指定した場合にエラーが出るバグを修正
8
14
  - `convert -o` オプションが正常に動いていなかったバグを修正
9
15
  - テキストファイル変換時のバグ修正
10
-
11
16
  * 追加機能もしくは仕様変更
12
17
  - `update` コマンドで全ての小説を更新する場合、 `convert.no-open` の設定にかかわらず
13
18
  保存フォルダは開かないようにした
data/README.md CHANGED
@@ -16,13 +16,18 @@ Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリ
16
16
 
17
17
  更新履歴 - ChangeLog
18
18
  --------------------
19
+ 2013/03/07 : **1.1.0**
20
+ * Bug Fix
21
+ - xhtml_nav.vm の</ol></li>が過剰付与だったのを修正
22
+ - |《るび》 な場合、ルビ化を無効にする(なろうの仕様に追随)
23
+ * 追加機能もしくは仕様変更
24
+ - Ruby2.0.0対応
19
25
 
20
26
  2013/03/07 : **1.1.0.rc2**
21
27
  * Bug Fix
22
28
  - `update` コマンドに存在しない小説を指定した場合にエラーが出るバグを修正
23
29
  - `convert -o` オプションが正常に動いていなかったバグを修正
24
30
  - テキストファイル変換時のバグ修正
25
-
26
31
  * 追加機能もしくは仕様変更
27
32
  - `update` コマンドで全ての小説を更新する場合、 `convert.no-open` の設定にかかわらず
28
33
  保存フォルダは開かないようにした
data/lib/converterbase.rb CHANGED
@@ -398,7 +398,7 @@ class ConverterBase
398
398
  HALF_INDENT_TARGET = /^[  \t]*([「『((【〈《≪])/
399
399
  FULL_INDENT_TARGET = /^[  \t]*(――)/
400
400
  #
401
- # 行頭鍵カッコ(等)に二分アキを追加する
401
+ # 行頭かぎ括弧(等)に二分アキを追加する
402
402
  #
403
403
  # 「や(などの前にカスタム注記([#二分アキ])を追加し、半文字分字下げする(二分アキ)。
404
404
  # kindle paperwhite で鍵括弧のインデントがおかしいことへの対応
@@ -577,7 +577,7 @@ class ConverterBase
577
577
 
578
578
  BRACKETS = [%w(「 」), %w(『 』)]
579
579
 
580
- # ネストに対応した鍵カッコの正規表現
580
+ # ネストに対応したかぎ括弧の正規表現
581
581
  OPENCLOSE_REGEXPS = BRACKETS.map { |bracket|
582
582
  bo, bc = bracket
583
583
  /(?<oc>#{bo}[^#{bo+bc}]*(?:\g<oc>[^#{bo+bc}]*)*#{bc})/m
@@ -599,7 +599,7 @@ class ConverterBase
599
599
  end
600
600
 
601
601
  #
602
- # 鍵カッコ内自動連結
602
+ # かぎ括弧内自動連結
603
603
  #
604
604
  def auto_join_in_brackets(data)
605
605
  if !@setting.enable_auto_join_in_brackets && !@setting.enable_inspect_invalid_openclose_brackets
@@ -615,10 +615,10 @@ class ConverterBase
615
615
  else
616
616
  stack[j] = match
617
617
  end
618
- "[#鍵カッコ=#{j}]"
618
+ "[#かぎ括弧=#{j}]"
619
619
  end
620
620
  if @setting.enable_inspect_invalid_openclose_brackets
621
- # 正しく閉じてない鍵カッコだけが data に残ってる
621
+ # 正しく閉じてないかぎ括弧だけが data に残ってる
622
622
  @inspector.inspect_invalid_openclose_brackets(data, BRACKETS[i], stack)
623
623
  end
624
624
  data.replace(ConverterBase.rebuild_brackets(data, stack))
@@ -626,7 +626,7 @@ class ConverterBase
626
626
  end
627
627
 
628
628
  def self.rebuild_brackets(data, stack)
629
- data.gsub(/[#鍵カッコ=(\d+)]/) do
629
+ data.gsub(/[#かぎ括弧=(\d+)]/) do
630
630
  stack[$1.to_i]
631
631
  end
632
632
  end
@@ -642,22 +642,6 @@ class ConverterBase
642
642
  #data.gsub!(/[^。…―-\-」』))>>]\]〉》】〕}\}0-90-9]/
643
643
  end
644
644
 
645
- def object_of_ruby?(char)
646
- char =~ /[一-龠A-Za-zA-Za-z]/
647
- end
648
-
649
- def sesame(str, ten)
650
- if str.include?("|")
651
- str.sub("|", "[#傍点]") + "[#傍点終わり]"
652
- else
653
- str.insert(-(ten.length + 1), "[#傍点]") + "[#傍点終わり]"
654
- end
655
- end
656
-
657
- def replace_tatesen(str)
658
- str.gsub("|", "※[#縦線]")
659
- end
660
-
661
645
  #
662
646
  # 小説家になろうのルビ対策
663
647
  #
@@ -671,44 +655,52 @@ class ConverterBase
671
655
  last_i = 0
672
656
  ruby_stack = {}
673
657
  data.gsub!(/(.+?)≪(.+?)≫/).with_index do |match, i|
674
- m1, m2 = $1, $2
675
- ruby_str = case
676
- when m2 =~ /^・+$/
677
- # ルビが・だけの場合、傍点と判断
678
- sesame(m1, m2)
679
- when m1.include?("|"), object_of_ruby?(m1[-1])
680
- "#{m1}《#{m2}》"
681
- else
682
- replace_tatesen(match)
683
- end
658
+ ruby_str = to_ruby(match, $1, $2, ["≪", "≫"])
684
659
  last_i = i
685
660
  ruby_stack[i] = ruby_str
686
661
  "[#ルビ=#{i}]"
687
662
  end
688
663
  # ()なルビの対処
689
664
  data.gsub!(/(.+?)(([ぁ-んァ-ヴーゞ・A-Za-zA-Za-z]{,20}))/).with_index(last_i + 1) do |match, i|
690
- m1, m2 = $1, $2
691
- last_char = m1[-1]
692
- ruby_str = case
693
- when last_char == "|"
694
- # (の直前に|がある場合ルビ化は抑制される
695
- "#{m1[0...-1]}(#{m2})"
696
- when m2 =~ /^・+$/
697
- # ルビが・だけの場合、傍点と判断
698
- sesame(m1, m2)
699
- when m1.include?("|"), object_of_ruby?(last_char)
700
- "#{m1}《#{m2}》"
701
- else
702
- replace_tatesen(match)
703
- end
665
+ ruby_str = to_ruby(match, $1, $2, ["(", ")"])
704
666
  ruby_stack[i] = ruby_str
705
667
  "[#ルビ=#{i}]"
706
668
  end
707
669
  data.replace(replace_tatesen(data))
708
- 2.times do
709
- data.gsub!(/[#ルビ=(\d+)]/) do
710
- ruby_stack[$1.to_i]
711
- end
670
+ data.gsub!(/[#ルビ=(\d+)]/) do
671
+ ruby_stack[$1.to_i]
672
+ end
673
+ end
674
+
675
+ def object_of_ruby?(char)
676
+ char =~ /[一-龠A-Za-zA-Za-z]/
677
+ end
678
+
679
+ def sesame(str, ten)
680
+ if str.include?("|")
681
+ str.sub("|", "[#傍点]") + "[#傍点終わり]"
682
+ else
683
+ str.insert(-(ten.length + 1), "[#傍点]") + "[#傍点終わり]"
684
+ end
685
+ end
686
+
687
+ def replace_tatesen(str)
688
+ str.gsub("|", "※[#縦線]")
689
+ end
690
+
691
+ def to_ruby(match, m1, m2, openclose_symbols)
692
+ last_char = m1[-1]
693
+ case
694
+ when last_char == "|"
695
+ # 直前に|がある場合ルビ化は抑制される
696
+ "#{m1[0...-1]}#{openclose_symbols[0]}#{m2}#{openclose_symbols[1]}"
697
+ when m2 =~ /^・+$/
698
+ # ルビが・だけの場合、傍点と判断
699
+ sesame(m1, m2)
700
+ when m1.include?("|"), object_of_ruby?(last_char)
701
+ "#{m1}《#{m2}》"
702
+ else
703
+ replace_tatesen(match)
712
704
  end
713
705
  end
714
706
 
@@ -3,17 +3,18 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- require "dl/import"
6
+ require "fiddle"
7
7
  require "win32ole"
8
8
 
9
9
  module WinAPI
10
+ include Fiddle
10
11
  class InvalidOS < StandardError; end
11
- extend DL::Importer
12
- begin
13
- dlload "kernel32"
14
- extern "long GetLogicalDriveStrings(long, void*)"
15
- rescue DL::DLError
16
- raise InvalidOS, "not Windows"
12
+ Handle = RUBY_VERSION >= "2.0.0" ? Fiddle::Handle : DL::Handle
13
+
14
+ def self.GetLogicalDriveStrings(buf_size, buffer)
15
+ @@get_logical_drive_strings ||= Function.new(Handle.new("kernel32")["GetLogicalDriveStrings"],
16
+ [TYPE_LONG, TYPE_VOIDP], TYPE_LONG)
17
+ @@get_logical_drive_strings.call(buf_size, buffer)
17
18
  end
18
19
  end
19
20
 
data/lib/inspector.rb CHANGED
@@ -103,7 +103,7 @@ class Inspector
103
103
  end
104
104
 
105
105
  #
106
- # 連結した鍵カッコが正常かどうか
106
+ # 連結したかぎ括弧が正常かどうか
107
107
  #
108
108
  def validate_joined_inner_brackets(raw_strings, joined_strings, brackets)
109
109
  error_result = false
@@ -117,7 +117,7 @@ class Inspector
117
117
  # 連結した文章があまりにも長い場合、特殊な用途で使われている可能性がある
118
118
  when joined_strings.length >= LINE_LENGTH_THRESHOLD
119
119
  warning("連結結果が長過ぎます。連結を中止しました。" +
120
- "特殊な用途(手紙形式)等で鍵カッコが使われている可能性があります。\n" +
120
+ "特殊な用途(手紙形式)等でかぎ括弧が使われている可能性があります。\n" +
121
121
  omit_message(raw_strings))
122
122
  error_result = true
123
123
  end
@@ -125,7 +125,7 @@ class Inspector
125
125
  end
126
126
 
127
127
  #
128
- # 鍵カッコのとじ開きの異常部分を調査
128
+ # かぎ括弧のとじ開きの異常部分を調査
129
129
  #
130
130
  def inspect_invalid_openclose_brackets(data, brackets, stack)
131
131
  brackets.each do |bracket|
@@ -135,7 +135,7 @@ class Inspector
135
135
  match_after = $'.dup
136
136
  before = ConverterBase.rebuild_brackets(match_before, stack)
137
137
  after = ConverterBase.rebuild_brackets(match_after, stack)
138
- error("鍵カッコ(#{bracket})が正しく閉じていません。\n" +
138
+ error("かぎ括弧(#{bracket})が正しく閉じていません。\n" +
139
139
  omit_message((before[-15..-1] || before) + bracket + after))
140
140
  buffer = match_before
141
141
  end
data/lib/novelsetting.rb CHANGED
@@ -134,7 +134,7 @@ class NovelSetting
134
134
  {
135
135
  name: "enable_half_indent_bracket",
136
136
  value: true,
137
- help: "行頭鍵カッコに二分アキを挿入する"
137
+ help: "行頭かぎ括弧に二分アキを挿入する"
138
138
  },
139
139
  {
140
140
  name: "enable_auto_indent",
@@ -144,12 +144,12 @@ class NovelSetting
144
144
  {
145
145
  name: "enable_auto_join_in_brackets",
146
146
  value: true,
147
- help: "鍵カッコ内自動連結を有効に\n例)\n「~~~!\n ***?」 → 「~~~! ***?」"
147
+ help: "かぎ括弧内自動連結を有効に\n例)\n「~~~!\n ***?」 → 「~~~! ***?」"
148
148
  },
149
149
  {
150
150
  name: "enable_inspect_invalid_openclose_brackets",
151
151
  value: true,
152
- help: "鍵カッコ内のとじ開きが正しくされているかどうか調査する"
152
+ help: "かぎ括弧内のとじ開きが正しくされているかどうか調査する"
153
153
  },
154
154
  {
155
155
  name: "enable_auto_join_line",
data/lib/version.rb CHANGED
@@ -3,7 +3,7 @@
3
3
  # Copyright 2013 whiteleaf. All rights reserved.
4
4
  #
5
5
 
6
- Version = "1.1.0.rc2"
6
+ Version = "1.1.0"
7
7
 
8
8
  cv_path = File.expand_path(File.join(File.dirname(__FILE__), "../commitversion"))
9
9
  if File.exists?(cv_path)
@@ -13,5 +13,7 @@
13
13
  ここで後書き終わり </div><div class="clear"></div> 1
14
14
  濁点 <span class="dakuten">
15
15
  濁点終わり </span>
16
+ ここから柱 <div class="running_head yoko"> 1
17
+ ここで柱終わり </div> 1
16
18
 
17
- ### Narou.rb embedded custom chuki ###
19
+ ### Narou.rb embedded custom chuki ###
@@ -17,6 +17,14 @@ rt { font-size: 0.6em; }
17
17
 
18
18
  /* カスタム注記用 */
19
19
 
20
+ /* 柱(もどき) */
21
+ .running_head {
22
+ position: absolute !important;
23
+ top: 0;
24
+ left: 0;
25
+ font-size: 0.8em;
26
+ }
27
+
20
28
  /* 濁点フォント */
21
29
  @font-face {
22
30
  font-family: "DakutenAokinMincho";
data/preset/xhtml_nav.vm CHANGED
@@ -97,7 +97,8 @@ li a {text-decoration:none; border-bottom-width:1px; border-bottom-style:solid;
97
97
  #end
98
98
  #end
99
99
  #if (${navNest})
100
- #foreach (${end} in [${nest_level}..0])
100
+ #set ($tag_close_count=$nest_level - 1)
101
+ #foreach (${n} in [${tag_close_count}..0])
101
102
  </li>
102
103
  </ol>
103
104
  #end
@@ -13,11 +13,8 @@
13
13
  [#改ページ]
14
14
  <% if section["chapter"] != "" -%>
15
15
  [#ページの左右中央]
16
- <%= toc["title"] %>
17
-
18
- [#ここから大見出し]<%= section["chapter"] %>[#ここで大見出し終わり]
19
-  
20
-  
16
+ [#ここから柱]<%= toc["title"] %>[#ここで柱終わり]
17
+ [#ここから大見出し]   <%= section["chapter"] %>[#ここで大見出し終わり]
21
18
  [#改ページ]
22
19
  <% end -%>
23
20
  [#3字下げ][#ここから中見出し]<%= section["subtitle"].rstrip %>[#ここで中見出し終わり]
metadata CHANGED
@@ -1,8 +1,7 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: narou
3
3
  version: !ruby/object:Gem::Version
4
- version: 1.1.0.rc2
5
- prerelease: 6
4
+ version: 1.1.0
6
5
  platform: ruby
7
6
  authors:
8
7
  - whiteleaf7
@@ -92,29 +91,36 @@ files:
92
91
  - commitversion
93
92
  homepage: http://whiteleaf.hatenablog.com/
94
93
  licenses: []
95
- post_install_message: ! "*******************************************************************************\n\nnarou
96
- コマンドのインストール or アップデートが完了しました。\n詳しい説明は `narou help' コマンドをご覧下さい。\n\n NOTICE\n 初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。\n
97
- \ 任意のフォルダで `narou init' を実行して下さい。\n\n*******************************************************************************\n"
94
+ metadata: {}
95
+ post_install_message: |
96
+ *******************************************************************************
97
+
98
+ narou コマンドのインストール or アップデートが完了しました。
99
+ 詳しい説明は `narou help' コマンドをご覧下さい。
100
+
101
+ NOTICE
102
+ 初めてこのアプリケーションを使う場合、小説管理用のフォルダを初期化する必要があります。
103
+ 任意のフォルダで `narou init' を実行して下さい。
104
+
105
+ *******************************************************************************
98
106
  rdoc_options: []
99
107
  require_paths:
100
108
  - lib
101
109
  required_ruby_version: !ruby/object:Gem::Requirement
102
- none: false
103
110
  requirements:
104
- - - ! '>='
111
+ - - '>='
105
112
  - !ruby/object:Gem::Version
106
113
  version: 1.9.3
107
114
  required_rubygems_version: !ruby/object:Gem::Requirement
108
- none: false
109
115
  requirements:
110
- - - ! '>'
116
+ - - '>='
111
117
  - !ruby/object:Gem::Version
112
- version: 1.3.1
118
+ version: '0'
113
119
  requirements: []
114
120
  rubyforge_project:
115
- rubygems_version: 1.8.25
121
+ rubygems_version: 2.0.0
116
122
  signing_key:
117
- specification_version: 3
123
+ specification_version: 4
118
124
  summary: Narou.rb ― 小説家になろうダウンローダ&縦書用整形スクリプト
119
125
  test_files:
120
126
  - test/data/test.ini