narou 2.8.3.1 → 2.9.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 +4 -4
- data/ChangeLog.md +77 -0
- data/Gemfile +2 -1
- data/README.md +69 -86
- data/lib/command/convert.rb +10 -11
- data/lib/command/init.rb +2 -2
- data/lib/command/list.rb +12 -3
- data/lib/command/setting.rb +20 -5
- data/lib/command/update.rb +0 -3
- data/lib/command/version.rb +2 -3
- data/lib/command/web.rb +58 -7
- data/lib/converterbase.rb +7 -24
- data/lib/database.rb +7 -6
- data/lib/device.rb +15 -1
- data/lib/device/ibunko.rb +1 -2
- data/lib/device/library/mac.rb +7 -0
- data/lib/downloader.rb +44 -21
- data/lib/extension.rb +25 -0
- data/lib/helper.rb +4 -3
- data/lib/html.rb +18 -2
- data/lib/narou.rb +20 -0
- data/lib/novelconverter.rb +11 -35
- data/lib/novelinfo.rb +19 -8
- data/lib/novelsetting.rb +0 -6
- data/lib/version.rb +1 -1
- data/lib/web/appserver.rb +134 -15
- data/lib/web/public/favicon.ico +0 -0
- data/lib/web/public/resources/common.ui.js +2 -2
- data/lib/web/public/resources/narou.library.js +657 -91
- data/lib/web/public/resources/narou.queue.js +1 -1
- data/lib/web/public/resources/narou.ui.js +253 -102
- data/lib/web/public/resources/sprintf.js +245 -0
- data/lib/web/pushserver.rb +14 -3
- data/lib/web/views/_about.haml +188 -0
- data/lib/web/views/{diff_list.haml → _diff_list.haml} +0 -0
- data/lib/web/views/{edit_replace_txt.haml → _edit_replace_txt.haml} +4 -4
- data/lib/web/views/_rebooting.haml +18 -0
- data/lib/web/views/bookmarklet/download.js.erb +2 -2
- data/lib/web/views/bookmarklet/insert_button.js.erb +1 -1
- data/lib/web/views/edit_menu.haml +223 -0
- data/lib/web/views/help.haml +29 -12
- data/lib/web/views/index.haml +99 -88
- data/lib/web/views/layout.haml +5 -3
- data/lib/web/views/notepad.haml +39 -0
- data/lib/web/views/novels/setting.haml +15 -5
- data/lib/web/views/settings.haml +2 -2
- data/lib/web/views/style.scss +72 -21
- data/lib/web/views/widget/download.haml +3 -2
- data/lib/web/views/widget/drag_and_drop.haml +3 -2
- data/lib/web/views/widget/notepad.haml +44 -0
- data/narou.gemspec +75 -6
- data/narou.rb +8 -14
- data/preset/ncode.syosetu.com/n5115cq/converter.rb +30 -0
- data/preset/ncode.syosetu.com/n7594ct/converter.rb +37 -0
- data/preset/ncode.syosetu.com/n8725k/converter.rb +1 -1
- data/preset/vertical_font.css +0 -10
- data/spec/generator/convert_spec_gen.rb +2 -0
- data/template/novel.txt.erb +3 -0
- data/webnovel/https.syosetu.org.yaml +1 -1
- data/webnovel/kakuyomu.jp.yaml +82 -0
- data/webnovel/ncode.syosetu.com.yaml +1 -0
- data/webnovel/syosetu.org.yaml +1 -1
- metadata +89 -12
- data/lib/web/views/about.haml +0 -85
- data/preset/DMincho.ttf +0 -0
data/lib/web/views/layout.haml
CHANGED
@@ -33,15 +33,17 @@
|
|
33
33
|
- message, type = session[:alert]
|
34
34
|
- session[:alert] = nil
|
35
35
|
.container
|
36
|
-
|
36
|
+
.fadeout-alert.alert(class="alert-#{type}")
|
37
37
|
&= message
|
38
38
|
!= yield
|
39
39
|
%script{:src => "//code.jquery.com/jquery-1.11.1.min.js"}
|
40
40
|
%script{:src => "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"}
|
41
|
-
%script{:src => "//cdn.datatables.net/1.10.
|
41
|
+
%script{:src => "//cdn.datatables.net/1.10.10/js/jquery.dataTables.min.js"}
|
42
42
|
%script{:src => "//cdn.datatables.net/plug-ins/725b2a2115b/integration/bootstrap/3/dataTables.bootstrap.js"}
|
43
|
-
%script{:src => "//cdn.datatables.net/colreorder/1.
|
43
|
+
%script{:src => "//cdn.datatables.net/colreorder/1.3.0/js/dataTables.colReorder.min.js"}
|
44
44
|
%script{:src => "//cdnjs.cloudflare.com/ajax/libs/bootstrap-select/1.6.5/js/bootstrap-select.min.js"}
|
45
|
+
%script{:src => "//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"}
|
46
|
+
%script{:src => "/resources/sprintf.js"}
|
45
47
|
%script{:src => "/resources/dataTables.colVis.js"}
|
46
48
|
%script{:src => "/resources/bootbox.min.js"}
|
47
49
|
%script{:src => "/resources/shortcut.js"}
|
@@ -0,0 +1,39 @@
|
|
1
|
+
:javascript
|
2
|
+
local_initialize_functions.push(function($) {
|
3
|
+
$("[data-toggle=tooltip]").tooltip({
|
4
|
+
animation: false,
|
5
|
+
container: "body",
|
6
|
+
});
|
7
|
+
|
8
|
+
Narou.Notepad.replace("notepad");
|
9
|
+
});
|
10
|
+
|
11
|
+
.navbar.navbar-default.navbar-fixed-top(role="navigation")
|
12
|
+
.container
|
13
|
+
.navbar-header
|
14
|
+
%button.navbar-toggle(type="button")
|
15
|
+
%span.sr-only Toggle navigation
|
16
|
+
%span.icon-bar
|
17
|
+
%span.icon-bar
|
18
|
+
%span.icon-bar
|
19
|
+
%a.navbar-brand(href="#" data-move-to="top") Narou.rb WEB UI
|
20
|
+
#bs-navbar-collapse-1.collapse.navbar-collapse
|
21
|
+
%ul.nav.navbar-nav
|
22
|
+
%li
|
23
|
+
%a(href="/settings") 環境設定
|
24
|
+
%li
|
25
|
+
%a(href="/help") ヘルプ
|
26
|
+
%li
|
27
|
+
%a(href="/") 戻る
|
28
|
+
%p#queue-text.navbar-text.navbar-right(data-toggle="tooltip" title="キューに積まれた処理の数" data-placement="bottom")
|
29
|
+
%span.glyphicon.glyphicon-inbox
|
30
|
+
%span#queue 0
|
31
|
+
|
32
|
+
.container.theme-showcase(role="main")
|
33
|
+
%h1 メモ帳
|
34
|
+
%ul.text-muted
|
35
|
+
%li 編集したら自動でサーバに保存されます
|
36
|
+
%li 別のブラウザで開いていても内容をリアルタイムに同期します
|
37
|
+
.row
|
38
|
+
.col-sm-9
|
39
|
+
#notepad
|
@@ -1,11 +1,11 @@
|
|
1
1
|
-# このページ内専用のjavascriptでjQueryオブジェクトを参照したい場合この関数に記述
|
2
2
|
:javascript
|
3
3
|
local_initialize_functions.push(function($) {
|
4
|
-
var
|
5
|
-
var stream_console = new Narou.Console(notification, {
|
4
|
+
var stream_console = new Narou.Console({
|
6
5
|
restore: false, buttons: false
|
7
6
|
});
|
8
7
|
var action = new Narou.Action(null);
|
8
|
+
var storage = new Narou.Storage;
|
9
9
|
|
10
10
|
// 小説変換ボタン
|
11
11
|
$("#console-dialog").on("shown.bs.modal", function() {
|
@@ -34,6 +34,16 @@
|
|
34
34
|
container: "body",
|
35
35
|
width: "100%"
|
36
36
|
});
|
37
|
+
|
38
|
+
// 変換設定ページを新規タブで開く様に設定している場合、
|
39
|
+
// 「戻る」リンクを「閉じる」に書き換える
|
40
|
+
if (storage.get("open_new_tab_setting_pages")) {
|
41
|
+
$("#back-to")
|
42
|
+
.html('<a href="#">閉じる</a>')
|
43
|
+
.on("click", function() {
|
44
|
+
window.close();
|
45
|
+
});
|
46
|
+
}
|
37
47
|
});
|
38
48
|
|
39
49
|
%form(action="/novels/#{@id}/setting" method="POST")
|
@@ -50,7 +60,7 @@
|
|
50
60
|
%ul.nav.navbar-nav
|
51
61
|
%li.active
|
52
62
|
%a(href="/novels/#{@id}/setting") 小説設定
|
53
|
-
%li
|
63
|
+
%li#back-to
|
54
64
|
%a(href="/") 戻る
|
55
65
|
.navbar-form.navbar-left
|
56
66
|
%input.btn.btn-info(type="submit" value="設定を保存" style="margin-left: 50px")
|
@@ -138,13 +148,13 @@
|
|
138
148
|
%p.panel-settings-link
|
139
149
|
goto <a href="#setting-panel" data-move-to="#setting-panel">変換設定</a>
|
140
150
|
|
141
|
-
-
|
151
|
+
- replace_panel_var = { title: "<b>#{h @novel_title}</b> の置換設定",
|
142
152
|
panel_class: "panel-info",
|
143
153
|
body_class: "",
|
144
154
|
body: ["・この小説の文章を置換する設定を行うことが出来ます(replace.txt を書き換えます)",
|
145
155
|
"・変更を反映させるには再度変換を実行する必要があります",
|
146
156
|
"・保存するとこの小説の replace.txt に書かれているコメントは削除されます"] }
|
147
|
-
= haml :
|
157
|
+
= haml :_edit_replace_txt, locals: { replace_panel_var: replace_panel_var }
|
148
158
|
|
149
159
|
%input(type="submit" value="設定を保存" class="btn btn-info" style="float:none")
|
150
160
|
|
data/lib/web/views/settings.haml
CHANGED
@@ -151,11 +151,11 @@
|
|
151
151
|
.clearfix
|
152
152
|
|
153
153
|
.tab-pane(role="tabpanel" id="replace")
|
154
|
-
-
|
154
|
+
- replace_panel_var = { title: "全小説対象の置換設定",
|
155
155
|
panel_class: "panel-info",
|
156
156
|
body_class: "list-group-item-default",
|
157
157
|
body: ["・全ての小説に対する置換設定を行うことが出来ます",
|
158
158
|
"・変更を反映させるには再度変換を実行する必要があります"] }
|
159
|
-
= haml :
|
159
|
+
= haml :_edit_replace_txt, locals: { replace_panel_var: replace_panel_var }
|
160
160
|
|
161
161
|
%input(type="submit" value="設定を保存" class="btn btn-info" style="float:none")
|
data/lib/web/views/style.scss
CHANGED
@@ -58,7 +58,7 @@ body {
|
|
58
58
|
display: none;
|
59
59
|
}
|
60
60
|
|
61
|
-
|
61
|
+
.fadeout-alert {
|
62
62
|
position: fixed;
|
63
63
|
z-index: 1000;
|
64
64
|
width: 350px;
|
@@ -369,7 +369,7 @@ table.dataTable {
|
|
369
369
|
* フォーム関係
|
370
370
|
*/
|
371
371
|
#myFilter {
|
372
|
-
width:
|
372
|
+
width: 250px;
|
373
373
|
border-radius: 18px;
|
374
374
|
padding-left: 29px;
|
375
375
|
padding-right: 23px;
|
@@ -381,7 +381,10 @@ table.dataTable {
|
|
381
381
|
width: 100px;
|
382
382
|
}
|
383
383
|
@media (min-width:992px){
|
384
|
-
width:
|
384
|
+
width: 300px;
|
385
|
+
}
|
386
|
+
@media (min-width:1200px){
|
387
|
+
width: 350px;
|
385
388
|
}
|
386
389
|
}
|
387
390
|
@mixin placeholder { color: #bbb !important }
|
@@ -574,7 +577,7 @@ input::-ms-clear {
|
|
574
577
|
/*
|
575
578
|
* コントロールパネル
|
576
579
|
*/
|
577
|
-
|
580
|
+
.control-panel-inner {
|
578
581
|
@media (min-width:768px) {
|
579
582
|
width: 100%;
|
580
583
|
}
|
@@ -587,6 +590,11 @@ input::-ms-clear {
|
|
587
590
|
button {
|
588
591
|
margin-bottom: 5px;
|
589
592
|
}
|
593
|
+
|
594
|
+
&.in-footer {
|
595
|
+
margin-top: 7px;
|
596
|
+
margin-bottom: 6px !important;
|
597
|
+
}
|
590
598
|
}
|
591
599
|
|
592
600
|
/*
|
@@ -606,6 +614,7 @@ $console-color: white;
|
|
606
614
|
margin-bottom: 20px !important;
|
607
615
|
}
|
608
616
|
.console {
|
617
|
+
text-align: left;
|
609
618
|
position: relative;
|
610
619
|
overflow: hidden;
|
611
620
|
padding: 5px 15px 5px 15px;
|
@@ -789,7 +798,7 @@ $console-color: white;
|
|
789
798
|
/*
|
790
799
|
* 個別メニュー
|
791
800
|
*/
|
792
|
-
|
801
|
+
.context-menu {
|
793
802
|
z-index: 102;
|
794
803
|
}
|
795
804
|
|
@@ -922,11 +931,6 @@ $console-color: white;
|
|
922
931
|
}
|
923
932
|
}
|
924
933
|
|
925
|
-
/* タグ検索用ボックス */
|
926
|
-
#tag-search {
|
927
|
-
display: none;
|
928
|
-
}
|
929
|
-
|
930
934
|
/* 差分表示用ダイアログ */
|
931
935
|
.diff-list-container {
|
932
936
|
.title {
|
@@ -1040,17 +1044,23 @@ $console-color: white;
|
|
1040
1044
|
}
|
1041
1045
|
|
1042
1046
|
/* くるくるまわるアイコン */
|
1043
|
-
|
1044
|
-
|
1045
|
-
|
1046
|
-
|
1047
|
-
|
1048
|
-
|
1049
|
-
|
1050
|
-
|
1051
|
-
|
1052
|
-
|
1053
|
-
|
1047
|
+
.rotate-progress {
|
1048
|
+
.icon {
|
1049
|
+
display: inline-block;
|
1050
|
+
position: absolute;
|
1051
|
+
width: 18px;
|
1052
|
+
height: 18px;
|
1053
|
+
border-radius: 50%;
|
1054
|
+
border: 4px solid #17cddd;
|
1055
|
+
border-right-color: transparent;
|
1056
|
+
-webkit-animation: spin 1s linear infinite;
|
1057
|
+
-moz-animation: spin 1s linear infinite;
|
1058
|
+
animation: spin 1s linear infinite;
|
1059
|
+
}
|
1060
|
+
|
1061
|
+
.text {
|
1062
|
+
padding-left: 23px;
|
1063
|
+
}
|
1054
1064
|
}
|
1055
1065
|
@-webkit-keyframes spin {
|
1056
1066
|
0% { -webkit-transform: rotate(0deg); opacity: 0.4; }
|
@@ -1067,3 +1077,44 @@ $console-color: white;
|
|
1067
1077
|
50% { transform: rotate(180deg); opacity: 1; }
|
1068
1078
|
100% { transform: rotate(360deg); opacity: 0.4; }
|
1069
1079
|
}
|
1080
|
+
|
1081
|
+
.link-to-changelog-in-about {
|
1082
|
+
position: absolute;
|
1083
|
+
top: 5px;
|
1084
|
+
right: 15px;
|
1085
|
+
}
|
1086
|
+
|
1087
|
+
.log-box {
|
1088
|
+
position: relative;
|
1089
|
+
text-align: left;
|
1090
|
+
width: 100%;
|
1091
|
+
width: 100%;
|
1092
|
+
max-width: 100%;
|
1093
|
+
min-width: 100%;
|
1094
|
+
height: 100px;
|
1095
|
+
overflow-x: hidden;
|
1096
|
+
overflow-y: scroll;
|
1097
|
+
border-radius: 4px;
|
1098
|
+
border: 1px solid lightgray;
|
1099
|
+
font-size: 85%;
|
1100
|
+
padding: 5px;
|
1101
|
+
|
1102
|
+
&.large {
|
1103
|
+
height: 270px;
|
1104
|
+
}
|
1105
|
+
}
|
1106
|
+
|
1107
|
+
#footer-navbar {
|
1108
|
+
min-height: 30px;
|
1109
|
+
}
|
1110
|
+
|
1111
|
+
.notepad-container {
|
1112
|
+
position: relative;
|
1113
|
+
|
1114
|
+
span {
|
1115
|
+
position: absolute;
|
1116
|
+
right: 20px;
|
1117
|
+
top: 10px;
|
1118
|
+
color: darkseagreen;
|
1119
|
+
}
|
1120
|
+
}
|
@@ -38,13 +38,14 @@
|
|
38
38
|
|
39
39
|
%script{:src => "//code.jquery.com/jquery-1.11.1.min.js"}
|
40
40
|
%script{:src => "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"}
|
41
|
+
%script{:src => "//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"}
|
42
|
+
%script{:src => "/resources/sprintf.js"}
|
41
43
|
%script{:src => "/resources/perfect-scrollbar.min.js"}
|
42
44
|
%script{:src => "/resources/narou.library.js?_=#{Version}"}
|
43
45
|
%script{:src => "/resources/narou.queue.js?_=#{Version}"}
|
44
46
|
:javascript
|
45
47
|
$(document).ready(function($) {
|
46
|
-
var
|
47
|
-
var stream_console = new Narou.Console(notification, {
|
48
|
+
var stream_console = new Narou.Console({
|
48
49
|
restore: false, buttons: false
|
49
50
|
});
|
50
51
|
});
|
@@ -60,6 +60,8 @@
|
|
60
60
|
%script{:src => "//code.jquery.com/jquery-1.11.1.min.js"}
|
61
61
|
%script{:src => "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"}
|
62
62
|
%script{:src => "/resources/perfect-scrollbar.min.js"}
|
63
|
+
%script{:src => "//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"}
|
64
|
+
%script{:src => "/resources/sprintf.js"}
|
63
65
|
%script{:src => "/resources/narou.library.js?_=#{Version}"}
|
64
66
|
%script{:src => "/resources/narou.queue.js?_=#{Version}"}
|
65
67
|
:javascript
|
@@ -67,8 +69,7 @@
|
|
67
69
|
$("#link-drop-here").hide();
|
68
70
|
|
69
71
|
var action = new Narou.Action(null);
|
70
|
-
var
|
71
|
-
var stream_console = new Narou.Console(notification, {
|
72
|
+
var stream_console = new Narou.Console({
|
72
73
|
restore: false, buttons: false
|
73
74
|
});
|
74
75
|
var dnd = new Narou.DragDrop;
|
@@ -0,0 +1,44 @@
|
|
1
|
+
!!! 5
|
2
|
+
%html{:lang => "ja"}
|
3
|
+
%head
|
4
|
+
%meta{:charset => "utf-8"}/
|
5
|
+
%meta{:content => "IE=edge", "http-equiv" => "X-UA-Compatible"}/
|
6
|
+
%meta{:content => "width=device-width, initial-scale=1", :name => "viewport"}/
|
7
|
+
%meta{:content => "whiteleaf", :name => "author"}/
|
8
|
+
%meta{:content => "none", :name => "robots"}/
|
9
|
+
%title Narou.rb メモ帳
|
10
|
+
%link{:href => "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css", :rel => "stylesheet"}/
|
11
|
+
%link{:href => "/resources/perfect-scrollbar.min.css", :rel => "stylesheet"}/
|
12
|
+
%link{:href => "/style.css?_=#{Version}", :rel => "stylesheet"}/
|
13
|
+
%link{:href => "/resources/default-style.css?_=#{Version}", :rel => "stylesheet"}/
|
14
|
+
/ HTML5 shim and Respond.js IE8 support of HTML5 elements and media queries
|
15
|
+
/[if lt IE 9]
|
16
|
+
<script src="https://oss.maxcdn.com/html5shiv/3.7.2/html5shiv.min.js"></script>
|
17
|
+
<script src="https://oss.maxcdn.com/respond/1.4.2/respond.min.js"></script>
|
18
|
+
%body
|
19
|
+
:scss
|
20
|
+
html, body {
|
21
|
+
height: 100%;
|
22
|
+
margin: 0;
|
23
|
+
padding: 0;
|
24
|
+
}
|
25
|
+
|
26
|
+
#notepad.fullscreen {
|
27
|
+
&, div, textarea {
|
28
|
+
box-sizing: border-box;
|
29
|
+
height: 100%;
|
30
|
+
}
|
31
|
+
}
|
32
|
+
|
33
|
+
#notepad.fullscreen
|
34
|
+
|
35
|
+
%script{:src => "//code.jquery.com/jquery-1.11.1.min.js"}
|
36
|
+
%script{:src => "//maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"}
|
37
|
+
%script{:src => "//cdnjs.cloudflare.com/ajax/libs/lodash.js/4.6.1/lodash.min.js"}
|
38
|
+
%script{:src => "/resources/sprintf.js"}
|
39
|
+
%script{:src => "/resources/narou.library.js?_=#{Version}"}
|
40
|
+
:javascript
|
41
|
+
$(document).ready(function($) {
|
42
|
+
Narou.Notepad.replace("notepad");
|
43
|
+
});
|
44
|
+
|
data/narou.gemspec
CHANGED
@@ -30,15 +30,84 @@ Gem::Specification.new do |gem|
|
|
30
30
|
を違和感なく縦書で読むことが出来るようになります。
|
31
31
|
}.split("\n").join
|
32
32
|
install_message = <<-EOS
|
33
|
-
#{"*" *
|
33
|
+
#{"*" * 60}
|
34
34
|
|
35
|
-
2.
|
35
|
+
2.9.0 : 2016/03/28
|
36
36
|
------------------
|
37
|
-
####
|
38
|
-
-
|
39
|
-
|
37
|
+
#### WEB UI
|
38
|
+
- メニュー(歯車アイコン)に「サーバを再起動」を追加しました。WEB UIから直接WEB
|
39
|
+
UIサーバを再起動できるようになります
|
40
|
+
- 「Narou.rbについて」ダイアログで最新バージョンを確認できた場合に、その場で
|
41
|
+
システムの更新及び再起動が出来るようになりました。
|
42
|
+
(sudo が必要な環境の場合はコマンドで更新して下さい)
|
43
|
+
- 小説リスト部分で右クリックすることで個別メニューを呼び出せるようになりました
|
44
|
+
- 各小説をそれぞれ個別に更新出来るボタンを追加しました
|
45
|
+
- 「表示」メニューを拡張しました
|
46
|
+
+ 「変換設定ページは新規タブで開く」を追加しました
|
47
|
+
+ 「ボタンを画面下部に固定」を追加しました
|
48
|
+
+ 「個別メニューを編集」を追加しました
|
49
|
+
- 「ツール」に「メモ帳」を追加しました
|
50
|
+
+ メモはサーバに保存され、各PC間で共有出来ます。個別メニューの編集内容の
|
51
|
+
受渡しや小説URLの一時的プールなどに使うことを想定しています
|
52
|
+
- タグ検索をフィルターに統合しました
|
53
|
+
+ フィルター欄に `tag:タグ名` と入力することでタグ検索が可能になります。
|
54
|
+
(既存のキーワード検索との併用も可能です)
|
55
|
+
+ `tag:タグ名1 tag:タグ名2` と複数入力することで、複数のタグでの絞り込みが
|
56
|
+
可能です
|
57
|
+
+ `-tag:タグ名` と `-` を付けることで、除外タグ検索になります
|
58
|
+
+ メニューのタグか小説リストのタグ名をクリックすることで、フィルター欄に自動
|
59
|
+
で入力されます。また、Altキーを押しながらクリックすることで、除外タグが入力
|
60
|
+
されます
|
61
|
+
- タグの並び順をソートするようにしました
|
62
|
+
- 一部のボタンのアイコンを変更しました
|
63
|
+
- ツールチップを表示してしばらくしたら自動で閉じるようにしました
|
64
|
+
- 表示件数に200、500を追加しました
|
65
|
+
- 電子書籍端末を接続時に、取り外すための Eject ボタンを表示するようにしました
|
66
|
+
(現時点でMacのみサポート)
|
40
67
|
|
41
|
-
|
68
|
+
#### 追加機能
|
69
|
+
- [カクヨム](https://kakuyomu.jp/)に対応しました
|
70
|
+
+ 各話の更新状況を(目次ページから)取得する方法が現時点で無いので、新着のみ
|
71
|
+
取得出来ます(各話を最新の状態にしたい場合は、強制ダウンロードをする必要が
|
72
|
+
あります)
|
73
|
+
- `narou setting 変数名` コマンドで現在の設定値を確認出来るようになりました。
|
74
|
+
(例 `narou s device`)
|
75
|
+
- `list` コマンドに `--gl` オプションが追加されました
|
76
|
+
+ 表示・ソート対象の日付を更新日から最新話掲載日に切り替えます
|
77
|
+
+ general-lastup の略です
|
78
|
+
- 変換プリセットを追加しました
|
79
|
+
- n5115cq 最果てのパラディン
|
80
|
+
- n7594ct 10年ごしの引きニートを辞めて外出したら自宅ごと異世界に転移してた
|
81
|
+
|
82
|
+
#### 仕様変更
|
83
|
+
- 変換処理で body や introduction 等を処理して最後に subtitle を変換していた
|
84
|
+
のを先に subtitle を処理するように変更しました
|
85
|
+
- converter.rb でサブタイトルで本文の処理内容を調整したい場合に今までの処理順
|
86
|
+
では不可能だったため
|
87
|
+
- title_date_format の $s が古い作品だと5桁になってしまうのを4桁に収まるように
|
88
|
+
調整しました(小説家になろうの最も古い作品が4桁に収まるようにしました)
|
89
|
+
- `あ゛` のような記述を濁点フォントに置き換える処理を廃止し、AozoraEpub3 による
|
90
|
+
一文字フォント置き換え機能に任せるようにしました
|
91
|
+
+ `narou init` が必要です
|
92
|
+
+ この変更に伴い、setting.ini の enable_dakuten_font は廃止されました
|
93
|
+
+ Kindle 端末において、挿絵が表紙画像になってしまう問題がこの仕様変更で改善
|
94
|
+
されます
|
95
|
+
|
96
|
+
#### 修正
|
97
|
+
- httpsなサイトでダウンロード用のブックマークレットが動かない問題に対応しました
|
98
|
+
(ヘルプからブックマークレットの再取得が必要です)
|
99
|
+
- Windows において、WEB UI の「Narou.rbについて」ダイアログで最新バージョンの
|
100
|
+
確認に失敗する場合がある問題に対応しました
|
101
|
+
- WEB UI の小説リストの項目を入れ替えた後に各種ボタンが反応しなくなるのを修正
|
102
|
+
- 凍結済み小説を強制更新した際に凍結が解除されてしまう場合があったのを修正
|
103
|
+
- thin などがすでにインストール済みの場合に narou web コマンドで WEB UI サーバ
|
104
|
+
を起動できない場合があるので、必ず WEBrick で起動するようにしました
|
105
|
+
- ノクターン・ムーンライト・ミッドナイトノベルズの認証方法変更後、Nコードのみで
|
106
|
+
ダウンロードが出来なくなっていたのを修正
|
107
|
+
- Linux でダウンロード時にエラーが出る場合があったのを修正
|
108
|
+
- その他パフォーマンス等の調整
|
109
|
+
|
110
|
+
#{"*" * 60}
|
42
111
|
EOS
|
43
112
|
gem.post_install_message = install_message.gsub("\t", " ")
|
44
113
|
|