narou 2.8.3.1 → 2.9.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
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 |  |