尚未检测到更新。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 運用手順 を参照してください。