Markdown を書きながら PDF をライブプレビューし、必要なら PDF 保存する軽量デスクトップアプリ
miniPDF は、Markdown を編集しながら PDF のライブプレビューを確認し、Markdown や生成 PDF を保存できる軽量デスクトップアプリケーションです。PDF 上でのレイアウト編集 UI は持ちません。
- この README(概要・セットアップ)
- docs/FEATURES.md(操作)
- docs/HTML_PREVIEW.md(HTML ベースのプレビュー実装メモ)
- docs/markdown-editor-preview-sync.md(エディタとプレビューの位置同期メモ)
- docs/markdown-katex-rendering.md(KaTeX 数式レンダリングメモ)
- docs/markdown-preview-cli.md(Markdown から PDF を出力する CLI)
- docs/SPECIFICATION.md(仕様・IPC)
- docs/CURRENT_ISSUES_SUMMARY.md(既知の問題の正本)
- docs/INDEX.md(全体索引)
- docs/RELEASING.md(CI・インストーラー配布)
- Markdown + Mermaid を PDF にしたときの見た目をアプリ内で素早く確認したい
- ソース編集とプレビューを同じ画面で切り替えたくない
- 軽量:起動が速い(1秒以内)を目安
- プレビュー中心:PDF 上のドラッグ編集は行わない
- OSS:完全オープンソース
- Markdownファイルの読み込み・保存
- 生成済みPDFの保存
- (補助)PDFファイルの読み込み
- Markdown入力のライブPDFプレビュー(デバウンス更新)
- Mermaidコードブロックのプレビュー反映(
mmdc利用時) - Mermaid描画失敗時のコードブロックフォールバック
- 連続表示 / 1ページ表示、ズーム、ページ送り
- プレビューで表示中の PDF をファイルに保存
- PDF.js によるページ描画(閲覧専用プレビュー)
- ズーム機能(50% - 200%)
- ページナビゲーション
- Tauri - 軽量デスクトップアプリケーションフレームワーク
- React + TypeScript
- PDF.js - PDF表示
- PDF 生成・プレビュー(Rust)— oxidize-pdf 等
✅ コア機能 — Markdown ライブプレビュー・PDF 保存・表示操作は利用可能です。
- CI(
.github/workflows/ci.yml):main/masterへの push と PR でvitestとcargo test --libを実行します。 - Release(
.github/workflows/release.yml): 手動実行で Windows / macOS / Linux の Tauri バンドルをビルドし Artifact に保存。v*タグを push したときは ドラフトの GitHub Release にインストーラー類を添付します。
手順・バージョン合わせ・アイコン差し替えは docs/RELEASING.md を参照してください。
- Node.js 18+
- Rust (最新安定版)
- Tauri CLI
- Mermaid CLI(
mmdc)※図を画像化する場合。MINIPDF_MERMAID_CLI、リポジトリのnode_modules/.bin(npm install後)、実行ファイル同階、または PATH のいずれかで解決可能(Win / Mac / Linux)
# 依存関係のインストール
npm install
# 開発(Tauri + Vite。単独の npm run dev とポート 5173 が競合するため同時起動しない)
npm run tauri:dev
# ビルド
npm run tauri:buildフロントのみをブラウザで試す場合は npm run dev を使います。別ターミナルで npm run tauri:dev を動かすと Vite のポートが衝突し、tauri dev の beforeDevCommand が失敗することがあります。
Mermaid ブロックを画像化してプレビューするには Mermaid CLI(mmdc) が必要です。次のいずれかで解決します(Windows / macOS / Linux 共通)。
- 環境変数
MINIPDF_MERMAID_CLI— 配布パッケージに同梱したmmdcの絶対パス(PATH に入れなくてよい) - このリポジトリで
npm install済み —@mermaid-js/mermaid-cliが devDependency として入り、アプリはリポジトリ直下のnode_modules/.bin/mmdcを自動で試します(初回は Chromium 取得などで時間がかかることがあります) - 実行ファイルと同じディレクトリに
mmdc(Windows はmmdc.exe)またはbin/mmdcを置く(インストーラが並置する想定) - 従来どおり
mmdcを PATH に追加する
mmdc が起動できない場合、Mermaid ブロックはコードブロックとして表示されます。
※ @mermaid-js/mermaid-cli は内部で Chromium 等を使うため、完全オフライン同梱はサイズが大きくなりがちです。リリースごとに OS 別バイナリをビルド成果物へコピーする運用が現実的です。
変更履歴は専用ファイルを用意していません。履歴は Git のコミット履歴を参照してください。
# フロントエンドテスト
npm run test
# バックエンドテスト(Rust)
cd src-tauri
cargo test詳細は以下を参照してください。
- docs/IMPLEMENTATION_VERIFICATION.md - 実装検証レポート
- docs/ACTUAL_IMPLEMENTATION_STATUS.md - コードベース検証メモ
機能確認の観点は以下を参照してください:
- docs/FEATURES.md - 機能の詳細と操作方法
手動テストの手順書と結果テンプレートは現時点で未整備です。
AGPL-3.0 License - 詳細は LICENSE を参照してください。
コントリビューションを歓迎します!IssueやPull Requestをお気軽に作成してください。
- GitHub Issues - バグ報告・機能要望
- GitHub Pull Requests - コード貢献
プロジェクトの詳細情報は以下の文書を参照してください:
- docs/FEATURES.md - 機能説明書(ユーザー向け) ⭐ - 機能の詳細と操作方法
- docs/HTML_PREVIEW.md - HTML ベースの Markdown プレビュー実装メモ
- docs/markdown-editor-preview-sync.md - Markdown エディタとプレビューの位置同期メモ
- docs/markdown-katex-rendering.md - KaTeX 数式レンダリングメモ
- docs/markdown-preview-cli.md - Markdown から PDF を出力する CLI
- docs/CONCEPT.md - プロジェクトのコンセプト・設計思想
- docs/SPECIFICATION.md - 機能仕様・実装方法(実装時の主要参照文書)
- docs/DO_NOT.md - やらないこと制約リスト(プロジェクトのスコープと制約事項)
- docs/INDEX.md - ドキュメント索引(ドキュメントの読み方)
- docs/FILE_LIST.md - プロジェクトファイルリスト(プロジェクト構造の全体像)
- docs/COMPLETE_FILE_LIST.md - 完全ファイルリスト(全175ファイルの詳細リスト)