はじめに:「Qiitaの記事を、一冊の本にしたかった」
MDebookの出発点は、
Qiitaに書き溜めた記事を、まとめて一冊のEPUBにしたい。
それだけである。
QiitaはMarkdownで書け、公開は容易で、検索性も高い。だが、Qiitaの記事はあくまで「記事」であり、連載はできるが、一冊の本として読む体験は、そこには存在しない。
スクロールではなく、ページとして読みたい。オフラインで、まとまった思考として読み返したい。そして何より、「これは一冊の本だ」と言える形にしたかった。
MDebookとは何か
MDebookは、ブラウザ上で動作するMarkdown電子書籍エディタだ。VIMキーバインドに対応し、複数言語をサポートし、EPUB/PDF/HTML/Markdownへのエクスポートが可能な、オープンソースのWebアプリケーションである。
- GitHub: https://github.com/fukuyori/mdebook
- オンラインデモ: https://fukuyori.github.io/mdebook/dist/mdebook.html
- ライセンス: MIT License
- 現在のバージョン: 0.8.1
インストール不要。ブラウザを開けば、すぐに本を書き始められる。
Markdownは、なぜ「本」になると途端に難しくなるのか
Markdownは、技術者にとって最も成功した軽量記法のひとつだろう。README、ブログ、ドキュメント――あらゆる場所で使われている。
だが不思議なことに、Markdownは「本」になると急に扱いづらくなる。
理由は明確だ:
- Markdownは「文書」には強いが、「構造」には弱い
- 複数ファイルを一冊として編集する思想が薄い
- EPUBやPDFは常に「変換後の世界」になる
結果として、多くの人は次のような道を辿る:
- Markdownで書く
- PandocやスクリプトでEPUBに変換
- レイアウト崩れに悩む
- どこかで諦める
MDebookは、この「諦めがちな地点」に踏み込んだ。
MDebookの主要機能
エディタ機能
| 機能 | 説明 |
|---|---|
| VIMキーバインド |
:w, :q, :eなどのVIMコマンドに完全対応 |
| CodeMirror 6 | モダンなエディタエンジンによるシンタックスハイライト |
| リアルタイムプレビュー | 双方向スクロール同期付きのMarkdownプレビュー |
| 複数ファイル管理 | ドラッグ&ドロップによる章の並び替え |
インポート・エクスポート
| 機能 | 説明 |
|---|---|
| エクスポート形式 | EPUB, PDF(pdfmake), HTML, Markdown(ZIP) |
| インポート | ローカルファイル、URL(Qiita、GitHub自動変換) |
| プロジェクト形式 |
.mdebook(ZIP形式)による画像付きプロジェクト保存 |
PDF出力(v0.8.1時点でまだ未完成)
- 日本語フォントサポート(カスタムTTF/OTFフォントをIndexedDBに保存)
- 目次の自動生成(内部リンク付き)
- ページ番号(ヘッダーにタイトル、フッターにページ番号)
- テーブル、リンク、書式設定の完全サポート
- 章扉ページ(「第1章 はじめに」形式の統合目次エントリ)
- 奥付の特別フォーマット
EPUBテーマ(v0.8.1時点でまだ調整中)
5つのプリセットテーマを提供。すべてKindle Publishing Guidelines 2025に準拠:
| テーマ | 説明 | 用途 |
|---|---|---|
| Classic | 伝統的なセリフデザイン | 文学、一般書籍 |
| Modern | クリーンなサンセリフ、青のアクセント | ビジネス書 |
| Technical | O'Reilly風の暗赤ヘッダ | 技術ドキュメント |
| Novel | 読書最適化、シーンブレイク対応 | 小説 |
| Academic | 学術スタイル、両端揃え | 論文 |
カスタムCSSのインポート・エクスポートにも対応。
書籍構造テンプレート
| テンプレート | ファイル名 | 配置 |
|---|---|---|
| 📋 奥付(Colophon) |
colophon.md / 奥付.md
|
末尾(自動) |
| 📖 はじめに(Preface) |
preface.md / はじめに.md
|
冒頭(自動) |
| 📑 章扉(Chapter Title) | 章扉N.md |
現在のタブの後 |
| 📚 参考文献(Bibliography) |
bibliography.md / 参考文献.md
|
奥付の前(自動) |
Admonition(コールアウトブロック)
技術文書でよく使われる注意書きブロックに対応:
:::note
これはノートです。
:::
:::warning 警告タイトル
これは警告メッセージです。
:::
対応タイプ: note, warning, tip, info, caution, important
Markdown機能
- テーブル(GFM)
- シンタックスハイライト付きコードブロック
- Mermaidダイアグラム(EPUB用PNG変換)
- 脚注
- 画像埋め込み(ペースト、ドラッグ&ドロップ、ファイル選択)
ユーザーエクスペリエンス
- 5言語対応: 英語、日本語、簡体中文、スペイン語、韓国語
- ダーク/ライトテーマ
- 自動保存: IndexedDBによるセッション管理
- キーボードショートカット: `Ctrl+`` でVIMモード切り替え
VIMキーバインディングという思想的選択
MDebookはCodeMirror 6を採用し、VIMキーバインディングを有効にしている。
これは単なる趣味だが、エディタの機能を強力に拡張できる。
- 書くことを「操作」として扱う
- マウスから手を離す
- 思考と入力の距離を縮める
MDebookは、「文章を書く行為を、プログラミングと同じ身体感覚に近づけたい」という欲望を、かなり露骨に持っている。VIMキーバインドを使わない選択肢もあるが、その部分には開発リソースを割いていない。
主要なVIMコマンド
| コマンド | 説明 |
|---|---|
i, a, o
|
INSERTモードへ |
Esc |
NORMALモードへ |
v, V
|
VISUALモード |
hjkl |
カーソル移動 |
:w |
保存(ファイルハンドルがあれば上書き) |
:w! |
ダイアログ付き保存 |
:w filename |
名前を付けて保存 |
:e filename |
ファイルを開く/作成 |
:q |
現在のファイルを閉じる |
:wq |
保存して閉じる |
:imp |
インポートダイアログを開く |
:imp URL |
URLからインポート |
Webアプリになった理由
MDebookはWebアプリとして動作する。理由は、いちばん実装が簡単で、動作確認がしやすかったから。
- 環境差異が少ない
- ビルドや配布を考えなくてよい
- 修正してすぐ試せる
特に重要だったのは、AIにコードを書かせるという前提だ。
MDebookは、実装のすべてをAI(Claude) によって生成している。開発者自身は、コードを一行も書いていない。
人間がやったのは:
- 何を作りたいかを言語化する
- 動かして、壊れている点を見つける
- 修正の方向性を指示する
それだけだ。
Webアプリは、この「AIと対話しながら作る」という開発スタイルと、圧倒的に相性がよかった。
技術スタック
MDebookは以下の技術で構成されている:
| カテゴリ | 技術 |
|---|---|
| フロントエンド | React 18, TypeScript |
| エディタ | CodeMirror 6 + @replit/codemirror-vim |
| スタイリング | Tailwind CSS |
| ビルド | Vite |
| エクスポート | JSZip, FileSaver.js, Mermaid, pdfmake |
プロジェクト構造
mdebook/
├── src/
│ ├── components/ # Reactコンポーネント
│ ├── utils/ # ユーティリティ関数
│ │ ├── export.ts # EPUB/HTMLエクスポート
│ │ ├── pdf-export.ts # PDFエクスポート(pdfmake)
│ │ └── storage.ts # IndexedDB操作
│ ├── i18n/ # 翻訳
│ ├── types/ # TypeScript型定義
│ ├── hooks/ # Reactフック
│ ├── themes/ # EPUBテーマ定義
│ └── constants/ # 定数
├── dist/ # ビルド出力
└── docs/ # ドキュメント
類似製品との比較
MDebookを理解するには、既存ツールとの比較が欠かせない。
商用ソフトウェア
Scrivener($49〜$50)
長文執筆向け統合型アプリケーションの代表格。研究資料を一か所に集め、PDF、Word、ePub、MOBIなど様々な形式でエクスポート可能。
日本語対応: Scrivener 3から日本語UIに対応。日本語の文章執筆には問題ないが、縦書きはMac版のみ対応(Windows版は非対応)。ルビ、傍点、縦中横など日本語特有の組版ルールには対応しない。
MDebookとの違い: Scrivenerは「書く場所」として優れているが、出版ワークフローは外部依存。
Ulysses(サブスクリプション)
Apple製品に特化した執筆アプリ。Markdown対応で、WordPress、Medium、Ghost、Micro.blogへの直接公開が可能。
日本語対応: 日本語入力は可能だが、UIは英語。縦書きには対応していない。
MDebookとの違い: Ulyssesは書き心地は素晴らしいが、「一冊の本」を扱う思想がない。MDebookは書き心地よりも「まとまり」を優先した。
Vellum($199.99〜$249.99)
Kindle、Kobo、Apple Booksなど、あらゆるプラットフォーム向けの電子書籍を作成可能。美しいデザインと使いやすさで高い評価を得ている。
日本語対応: 対応していない。Mac専用で、UIは英語のみ。日本語フォントの埋め込みや縦書きには非対応。欧米市場向けに設計されている。
MDebookとの違い: Vellumは「美しい英語の書籍」を作るには最高のツールだが、日本語の小説や技術書には向いていない。
Atticus($147)
ブラウザベースでWindows、macOS、Linux、Chromebookで動作するクロスプラットフォームツール。執筆とフォーマットを一体化。
日本語対応: 限定的。日本語入力は可能だが、UIは英語のみ。縦書きには対応していない。
MDebookとの違い: Atticusは便利だが、日本語の縦書き電子書籍には向いていない。
無料・オープンソース
Pandoc
変換エンジンの王者。あるマークアップ形式から別の形式への変換において最も柔軟なツール。
MDebookとの違い: Pandocは「書く場所」ではない。MDebookは、Pandocの前段——書く・構造化する場所でもある。
Sigil
無料、オープンソース、マルチプラットフォームのEPUBエディタ。EPUB 2とEPUB 3の両方に対応し、WYSIWYG編集とコード編集(XHTMLとCSS)の両方をサポート。
日本語対応: UIは日本語対応。EPUB3で縦書き・ルビに対応したが、CSSを手動で記述する必要があり、HTML/CSSの知識が必要。
MDebookとの違い: Sigilは技術的に最も柔軟だが、学習コストが高い。MDebookはMarkdownという親しみやすい形式から始められる。
Calibre
電子書籍ライブラリマネージャー兼フォーマットコンバーター。EPUB編集機能も備える。
日本語対応: UIは日本語対応。縦書きEPUBの編集も可能だが、CSS/HTMLの手動編集が必要。
MDebookとの違い: Calibreは「管理」と「変換」が主目的。
比較表
| 製品 | 価格 | プラットフォーム | 日本語UI | 縦書き | 学習コスト |
|---|---|---|---|---|---|
| MDebook | 無料 | ブラウザ(全OS) | ✅ | ⚠️ CSS設定 | 低 |
| Scrivener | $49 | Win/Mac/iOS | ✅ | ⚠️ Mac版のみ | 中 |
| Ulysses | サブスク | Mac/iOS | ❌ | ❌ | 低 |
| Vellum | $250 | Mac専用 | ❌ | ❌ | 低 |
| Atticus | $147 | 全OS(ブラウザ) | ❌ | ❌ | 低 |
| Sigil | 無料 | 全OS | ✅ | ✅ CSS手動 | 高 |
| Calibre | 無料 | 全OS | ✅ | ✅ CSS手動 | 中〜高 |
| Pandoc | 無料 | 全OS | - | ✅ | 高 |
MDebookのメリット
1. 完全無料でブラウザ動作
Vellumの$250やAtticusの$147と比較して、MDebookは完全無料。インストールも不要で、ブラウザを開けばすぐに使い始められる。
2. 日本語ユーザーのための設計
- UIが完全日本語対応 — 5言語(日本語、英語、中国語、スペイン語、韓国語)対応
- Qiita/GitHubからの直接インポート — 日本の技術者が多く利用するプラットフォームに対応
- 日本語フォント対応 — PDF出力時にカスタムTTF/OTFフォント(Noto Sans JPなど)をアップロード可能
3. VIMキーバインド
プログラマー・技術者にとって親しみやすい操作体系。思考と入力の距離を縮める。
4. 複数ファイル=書籍構造
1ファイル=1章という単純明快なモデル。ドラッグ&ドロップで章を並び替えられる。
5. Kindle最適化テーマ
すべてのEPUBテーマがKindle Publishing Guidelines 2025に準拠。
6. オープンソース
MITライセンスで公開されており、自由にカスタマイズ・拡張が可能。
MDebookのデメリットと制限事項
MDebookは未完成だ。正直に、その制限事項を列挙する。
1. PDF出力の制限
PDF出力はv0.8.1で大幅に強化されたが、以下の制限がある:
| 機能 | 対応状況 |
|---|---|
| 見出し(h1-h4) | ✅ TOCリンク付き |
| テーブル | ✅ ボーダー、ヘッダースタイリング |
| コードブロック | ✅ 等幅フォント、背景色 |
| リスト(ul/ol) | ✅ ネスト対応 |
| リンク | ✅ クリック可能、下線付き |
| 太字・斜体 | ✅ インライン書式 |
| ブロッククォート | ✅ インデント付き |
| 水平線 | ✅ グレーライン |
| 章扉ページ | ✅ 統合TOCエントリ |
| 奥付 | ✅ TOCから除外 |
| 絵文字 | ⚠️ 自動削除(フォント制限) |
| 画像 | ❌ 非対応 |
| Mermaid | ❌ 非対応 |
画像とMermaidダイアグラムがPDFで使えないのは、技術書籍を作る上で大きな制約となる。
2. 縦書きの制限
日本語の小説は伝統的に縦書き右綴じだが、MDebookは縦書きに直接対応していない。
EPUBのCSSでwriting-mode: vertical-rlを設定すれば縦書きにできるが、これはユーザーがカスタムCSSを記述する必要がある。UIから簡単に縦書きを選択する機能はない。
3. ルビ(ふりがな)の制限
日本語の書籍、特に小説や児童書ではルビが必須だが、MDebookはルビに直接対応していない。
HTMLのrubyタグを使えば技術的には可能だが、Markdownの簡便さが失われる。
4. オフライン動作の制限
MDebookはWebアプリなので、基本的にはインターネット接続が必要。
ただし、dist/mdebook.htmlをダウンロードすればオフラインでも動作する(IndexedDBへのフォント保存などは一部制限あり)。
5. 大規模プロジェクトでのパフォーマンス
非常に長い文書や多数の章を持つプロジェクトでは、ブラウザのメモリ使用量が増加し、動作が重くなる可能性がある。
6. 印刷用PDF品質
pdfmakeによるPDF出力は、InDesignやLaTeXと比較すると、印刷品質という点では劣る。商業出版レベルの印刷用PDFが必要な場合は、別途レイアウトソフトでの調整が必要。
7. 協調編集機能がない
Google DocsやNotionのようなリアルタイム協調編集機能はない。複数人での執筆には向いていない。
8. バージョン管理がない
Scrivenerのスナップショット機能のような、文書のバージョン管理機能がない。重要な変更の前に手動でバックアップを取る必要がある。
9. 参考資料の管理機能がない
Scrivenerの「Research」フォルダのような、参考資料を一元管理する機能がない。
10. スペルチェック・文章校正機能がない
組み込みのスペルチェックや文法チェック機能がない(ブラウザの機能に依存)。
MDebookが向いている人
- 技術者・プログラマー — VIMキーバインドに慣れている人
- Qiitaやブログの記事を本にまとめたい人 — URLからの直接インポートが便利
- 無料でEPUBを作りたい人 — 商用ツールに投資する前に試したい人
- Markdownで執筆している人 — 既存のワークフローを活かしたい人
- 横書きの技術書を作りたい人 — 英語の書籍や、横書きの日本語技術書に最適
MDebookが向いていない人
- 縦書きの小説を作りたい人 — Sigilやでんでんコンバーターの方が適している
- 印刷品質のPDFが必要な人 — InDesignやLaTeXを使うべき
- 画像を多用した書籍を作りたい人 — PDF出力で画像が使えない
- 商業出版レベルの品質が必要な人 — 専門ツールを使うべき
- 協調編集が必要な人 — Google DocsやNotionの方が適している
始め方
オンラインで試す(推奨)
インストール不要。ブラウザを開いてすぐに使い始められる。
ソースからビルド
# リポジトリをクローン
git clone https://github.com/fukuyori/mdebook.git
cd mdebook
# 依存関係をインストール
npm install
# 開発サーバー
npm run dev
# 本番ビルド
npm run build
# スタンドアロンHTML生成
node build-html.cjs
日本語PDFのフォント設定
- Google FontsからNoto Sans JPをダウンロード
- 設定(歯車アイコン)を開く
- 「PDFフォント設定」までスクロール
- Regularフォント(必須)とBoldフォント(任意)をアップロード
- フォントはIndexedDBに保存される(セッション間で保持)
未完成であること
MDebookは未完成だ。PDFは制約がある。設計も粗い部分がある。
だが、ここで一つの問いが立ち上がる。
AIがコードを書く時代において、「未完成」とは何を意味するのか。
MDebookは:
- 人間が設計し
- AIが実装し
- 人間が評価する
という、新しい制作モデルの中で生まれた。
その歪みや不完全さは、この時代そのものの写し絵でもある。
従来のソフトウェア開発では、「完成」とは機能が揃い、バグがなく、ドキュメントが整備された状態を指した。しかし、AIと対話しながら開発するスタイルでは、「完成」の定義自体が変わりつつある。
MDebookは、必要最小限の機能で公開され、使いながら改善されていく。そして、「対話的に成長するソフトウェア」 という形を作っている。
- Markdownはどこまで本になれるのか
- 出版はどこまで個人の手に戻せるのか
- AIはどこまで「作る側」に立てるのか
という問いを、実際に動く形で提示したアプリケーションである。
商用ツールのVellumやAtticusは、美しい英語の書籍を作るには最高だが、日本語の縦書き電子書籍には対応していない。Sigilは技術的に最も柔軟だが、HTML/CSSの知識が必要で学習コストが高い。
MDebookは、その中間に位置する。Markdownで書いて、日本語EPUBを作るというワークフローにおいて、最もバランスの取れた選択肢だ。
ただし、すべての人に向いているわけではない。
リンク
- GitHub: https://github.com/fukuyori/mdebook
- オンラインデモ: https://fukuyori.github.io/mdebook/dist/mdebook.html
- チュートリアル(日本語): https://github.com/fukuyori/mdebook/blob/main/docs/tutorial.ja.md
- チュートリアル(英語): https://github.com/fukuyori/mdebook/blob/main/docs/tutorial.md
- ファイル形式仕様: https://github.com/fukuyori/mdebook/blob/main/docs/FILE_FORMAT.md
- ライセンス: MIT License
作成された電子書籍
以下は、MDebookで作成した電子書籍。
- Common Lisp Basic Master
- FORTH Basic Master
謝辞
MDebookは以下のオープンソースプロジェクトを使用しています:

