尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證正在載入完整 README。 以下為已儲存的摘錄。
スキャンした文書画像を輝度・コントラスト調整して、1つのPDFまたはEPUBに変換するWebアプリです。 画像は一切サーバーに送信されません。デコード・補正・見開き結合・PDF/EPUB生成のすべてがブラウザ内で完結し、 ページ画像と調整パラメータはIndexedDBに保存されるためリロードしても作業内容が残ります。 React + TypeScript + Vite / Canvas 2D API / pdf-lib / JSZip / IndexedDB。 書き出し処理はWeb Worker上で実行され、UIをブロックしません。 npm test は esbuild 経由で型チェックを行わないため、変更後は npm run build も必ず実行してください。檢視完整 README ↗
スキャンした文書画像を輝度・コントラスト調整して、1つのPDFまたはEPUBに変換するWebアプリです。
画像は一切サーバーに送信されません。デコード・補正・見開き結合・PDF/EPUB生成のすべてがブラウザ内で完結し、 ページ画像と調整パラメータはIndexedDBに保存されるためリロードしても作業内容が残ります。
操作は3つの必須工程(1. 読み込み → 2. 並べ替え・調整 → 詳細&書き出し)と、任意のOCR・目次の作成工程で進みます。
React + TypeScript + Vite / Canvas 2D API / pdf-lib / JSZip / IndexedDB。 書き出し処理はWeb Worker上で実行され、UIをブロックしません。
ページは window.EbookMaker としてJS APIを公開しており、describe() でメソッド一覧、getState() で現在の状態を取得できます。
詳細は public/llms.txt と src/lib/automationApi.ts を参照してください。
npm install # 依存関係のインストール
npm run dev # 開発サーバー起動
npm test # 単体・コンポーネントテスト (Vitest)
npm run build # 型チェック (tsc -b) + 本番ビルド
npm run test:e2e # E2Eテスト (Playwright)
npm run lint # oxlint
npm test は esbuild 経由で型チェックを行わないため、変更後は npm run build も必ず実行してください。
本機能は国立国会図書館 NDLOCR-Lite (https://github.com/ndl-lab/ndlocr-lite, CC BY 4.0) のレイアウト検出・文字認識モデル(202604 の PARSeq は公式リポジトリの ver1.2)および文字セット NDLmoji.yaml を、固定コミット d25e0d415b607ad44459ca6b95c7512a54363935 から取得し、ONNX 形式のまま自サイトから配信しています。文字セットは公式版に切り替えました(プレースホルダだった箇所が希少CJK文字4字になります)。ブラウザ側のパイプラインは ndlocrlite-web (Yuta Hashimoto, CC BY 4.0, https://github.com/yuta1984/ndlocrlite-web) をWeb実装の参考にしており(本アプリのコードは独自実装)、DEIMv2 の第2取得元としても同リポジトリを使います。
モデルはNDL公式リポジトリ ndl-lab/ndlocr-lite の固定コミット d25e0d415b607ad44459ca6b95c7512a54363935 から取得します(以前使っていたファイルとバイト単位で同一で、SHA-256で検証済み)。文字セットも公式の NDLmoji.yaml を採用しています。個人バケットへの依存はありません。
ライセンスの解釈に関する注意: 公式リポジトリ全体は CC BY 4.0 ですが、ONNXモデルファイルが明示的に列挙されているわけではありません。判断の経緯は モデル配布元の判断(ADR) を参照してください。
モデルは npm run fetch-models で取得します(git管理外)。取得元を順に試し、各ファイルのSHA-256を検証します(DEIMv2は第2ソースとして ndlocrlite-web@50216cc も持ちます)。
公式ソースが全滅したときの保険として、Cloudflare R2 の非公開バケット ebook-maker にモデル5本のミラーを配置済みです。CIに R2 の Secrets が設定されていれば fetch-models が自動でフォールバックし(S3互換APIへのSigV4署名リクエスト。wrangler はCIでは使いません)、ミラー経路でも同じSHA-256検証を通します。Secrets が無い環境(フォークなど)では公式ソースのみで動作します。ミラーへのアップロードは所有者がローカルで R2_BUCKET=ebook-maker npm run mirror-models -- --execute(既定はdry-run)を実行する運用で、こちらは wrangler を使います。取得元の生死は週次ワークフローで監視しており、公式ソースが落ちたらR2が代替できていても警報が鳴ります。詳細は Cloudflare R2 運用手順 を参照してください。