narou.rbをWindows環境へインストールする (改造版AozoraEpub3)

:::note info
2025/1/24 諸々のバージョンアップに伴いファイル名等を更新しました。
:::
:::note warn
2025/03/04 小説家になろうのページ変更への対応としてパッチ当て手順を追加
2025/01/23 通常手順だとWEB UI起動時にエラーが発生するので、それを回避する手順を追加
:::

#目的
1. 改造版AozoraEpub3の最新版を使用する (2025.1.24時点で 1.1.1b30Q)
1. 読書端末はKindle PaperWhiteとする
1. Javaも含めて最新版(あればLTS)を使用する
1. 無職転生　- 異世界行ったら本気だす - の変換がEPUBとMOBIで完了すること
1. できる限りnarou.rbで設定しているCSSスタイルに準拠すること

## 基本的な手順、流れは以下と同様

https://qiita.com/kokotaro@github/items/4db382eee10997d1f517

## 2024/10/27時点で採用したバージョン
* [RubyInstaller](https://rubyinstaller.org/downloads/)から Ruby+Devkit 3.4.1-2 (x64)
* [改造版AozoraEpub](https://github.com/kyukyunyorituryo/AozoraEpub3)から AozoraEpub3-1.1.1b30Q.zip 
* [Adoptium公式](https://adoptium.net/)から jdk_21.0.6+7
* [Kindle Previewer3](https://kdp.amazon.co.jp/ja_JP/help/topic/G202131170)から Windows版

## 実際のインストール手順

### Javaのインストール
 [Adoptium公式](https://adoptium.net/)からOpenJDK21U-jdk_x64_windows_hotspot_21.0.6_7.msiをダウンロードする
![Adoptium_openJDK_21.0.3_9.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21516/a156e3bb-54ab-6bf6-2f7c-35976f5f645e.png)

OpenJDK21U-jdk_x64_windows_hotspot_21.0.6_7.msiをダブルクリックしてインストール
特にオプション等の設定変更する必要はなく完了します。インストールが完了したらコマンドプロンプトを開き直しコマンド実行出来るか確認

``` shell
> java -version
openjdk 21.0.6 2025-1-21 LTS
OpenJDK Runtime Environment Temurin-21.0.6+7 (build 21.0.6+7-LTS)
OpenJDK 64-Bit Server VM Temurin-21.0.6+7 (build 21.0.6+7-LTS, mixed mode, sharing)
```
### Rubyのインストール

バージョンアップも手順の変更無し、一応完了したらコマンドプロンプトを開き直しコマンド実行できるか確認

``` shell
> ruby -v
ruby 3.4.1 (2024-12-25 revision 48d4efcb85) [x64-mingw-ucrt]
```

### 改造版AozoraEpub3のインストール
AozoraEpub3-1.1.1b30Q.zip をc:\直下にAozoraEpub3として解凍する

### KindleGenをコピーする

この箇所も変更無し

### narou.rbをインストールする
エクスプローラーからC:\直下で右クリック -> 新規作成 -> フォルダーとクリックし"MyNovel"というフォルダーを作成する。”MyNovel"をダブルクリックし移動したらアドレスバーへ"cmd"と入力する。

:::note info
"MyNovel"の命名は任意で問題ないが、全角文字やスペース等が無い名称を推奨します
:::

コマンドプロンプトのウィンドウが出現するので以下のコマンドを入力して"ENTER"を押して実行する
``` shell
> gem install tilt -v 2.4.0
> gem install narou
```

:::note warn
正式対応までの暫定手順として、gem install tilt -v 2.4.0 を追記
この対応でWEB UI起動時のエラーを回避可能
:::

#### パッチの適用

:::note info
この作業は2025/03/04時点で必要、公式にマージされれば不要になるのでいずれ削除するかも
:::

以下のパッチファイルをダウンロードする。
https://github.com/kokotaro/narou/releases/download/PR446/narou_PR446.zip

zipに含まれる **ncode.syosetu.com.yaml** と **novel18.syosetu.com.yaml** を以下のディレクトへ上書きコピーする
C:/Ruby34-x64/lib/ruby/gems/3.4.0/gems/narou-3.9.1/webnovel

:::note info
コマンドプロンプトから gem which narou を実行することでnarou-3.9.1のフォルダー場所を把握出来る
:::

### narou.rbの初期化作業

この箇所の作業に変更なし

### 無職転生のダウンロードと変換
以下のようにePUBの変換もMobiの変換もエラーがなければ完了
``` shell
> narou download n9669bk
……
ID:0　無職転生　- 異世界行ったら本気だす - の変換を開始
小説状態の調査結果を 調査ログ.txt に出力しました（エラー：0件、警告：43件、INFO：4件）
縦書用の変換が終了しました
AozoraEpub3でEPUBに変換しています......変換しました
kindlegen実行中.................................................変換しました
kindlestrip実行中
[理不尽な孫の手] 無職転生　- 異世界行ったら本気だす -.mobi を出力しました
MOBIファイルを出力しました
```

## 残課題の整理
### スタイルの違い
**表示は左が正規版、右が改造版で変換したEPUBファイルとなる。**

:::note warn
チェックはCalibreのViewerを使用している。他のViewerではもうすこし表示が異なる可能性があるが取り上げない。
:::

* 表紙

![narou-019.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21516/018181dd-1c1e-d04a-0698-a7d7f8b25793.png)

表紙は上記の通り正規版使用時と比較してスタイルが適用されていない。

* 目次

![narou-018.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21516/74c411b1-cec0-67d4-80c0-1657aa4b2960.png)

これは差分ありとしているが●の有無だけなので許容範囲かと

* 章ページ
![narou-017.png](https://qiita-image-store.s3.ap-northeast-1.amazonaws.com/0/21516/7d4794d1-b3dc-6a50-b75b-edaa6d8854d8.png)

恐らくフォント指定が異なっているのか正規版だと明朝体、改造版だとゴシック体で表示されている。


あとはイタリックのスタイルとか話数のタイトルのフォント指定とか細かい差分が見える。ただ読むのに支障がでるような出力でもないので、改造版AozoraEpub3を出来るだけ弄らない方針であれば許容範囲なので放置でも良いかと思っている。

# 結論
目的の5.については完全に準拠できていないが、それ以外の目的は達している。
手動で変更する箇所は多いが、これをベースにLinux版の手順とDocker向けの手順を整理出来ればと。