NotionページをMarkdownとして保存する方法(toggle展開、databaseはテーブル化)
Notionのネイティブな「Export as Markdown」は、zipを開くまでは本物の脱出口に見える。toggleは折りたたまれたまま。インラインのdatabaseは壊れたHTMLとして出てくる。calloutは絵文字を失う。ファイル名にはUUIDサフィックスが付く。すべての内部リンクは存在しないパスを指している。そしてほとんどのサードパーティ製「Notion to Markdown」ツールは、レンダリングされたHTMLをそのまま吐き出すだけで、これはもっとひどい --- ノートのふりをした<div>スープが手に入る。
このガイドは、Notionページをクリーンなマークダウンに変換するすべての方法を網羅する --- 1ページから、workspace全体の移行まで。
なぜNotionページをMarkdownで保存するのか?
MarkdownはNotionの壁の外でも生き残る形式だ:
- Obsidian、Logseq、プレーンファイルに移行 --- 1つのフォルダ、独自のNotion blocksなし、全体の全文検索
- LLMに与える --- Claude、ChatGPT、Gemini、ローカルモデルはすべてMarkdownをコンテキストとしてネイティブに読む
- ベンダーロックインから逃れる --- Notionのブロック形式は彼らのもの、Markdownはあなたのもの。出ていくと決めた日に効いてくる
- AIナレッジベースを構築 --- Claude Projectsやローカルなe RAGパイプラインを、クリーンなMarkdownのフォルダに向ければそのまま動く
- 再構成される前にページをアーカイブ --- workspaceは再編される、ページは削除される、あなたのノートが同僚の春の大掃除に依存すべきではない
2026年のNotion-to-Markdownトラフィックを最も牽引しているユースケースは移行だ:2020年にNotionでセカンドブレインを作り、いまは自分が本当にコントロールできる形式に持っていきたい人たち。
方法1: Minibase(最速、ワンクリック)
Minibaseは、任意のNotionページをワンクリックでMarkdownファイルに変換するChrome拡張機能だ。レンダリングされたページを読み、すべてのtoggleを展開し、databaseの行を走査して、本当にノートのように見えるものを生成する --- Notionのブロック ID のダンプではなく。
仕組み:
- ChromeでNotionページを開く(workspaceページでもパブリックリンクでも動作する)
- ツールバーのSave拡張機能アイコンをクリック
.mdファイルが即座にダウンロードされる(接続していればMinibase Vaultに着地する)
手に入るもの:
- toggleが完全に展開 --- すべての折りたたまれたセクションが開かれインライン化されるので、何も隠れない
- インラインdatabaseがMarkdownテーブルに --- カラムはヘッダーに、行は行に、プロパティは読める形のまま
- フルページdatabaseは行のテーブルに --- すべてのエントリーが走査され、プロパティは行全体で保持される
- calloutはスタイル付きblockquoteに --- 絵文字アイコンが引用の先頭に残るので、視覚的な手がかりが形式を超えて生き残る
- コードブロックは言語識別子付き ---
```python、```ts、```bash--- 他にペーストした瞬間にシンタックスハイライトが効く - リンク先ページとバックリンクの参照 --- 内部リンクは関連するslugへのMarkdownリンクとして保持される
- ページタイトル、アイコン、カバー --- フロントマターがタイトル、アイコン、カバー画像URLを取り込み、メタデータが生き残る
取り除かれるもの:
- Notionのサイドバー、パンくず、上部ナビ
- 右側のコメントパネル(明示的にオプトインしない限り)
- 「Share」ボタン、「Updates」インジケーター、その他のUIのゴミ
- 空のプレースホルダーブロックとNotionのデフォルト「Untitled」の残骸
- ファイル名のUUIDサフィックス --- 手に入るのは
product-roadmap-q2.mdであって、Product-Roadmap-Q2-a1b2c3d4e5f6.mdではない
最適なケース: Notion workspaceを移行している人、既存docsからAIナレッジベースを構築している人、あるいはNotionのエクスポートキューを起動せずに1ページだけ取りたい人。toggleやdatabaseを多用したページに特に良い --- まさにNotionのネイティブエクスポートが崩れるところだ。
出力例
toggleとインラインdatabaseを持つ典型的なNotion製品ページを保存すると、こうなる:
---
title: "Product Roadmap Q2 2026"
icon: "🗺️"
cover: "https://www.notion.so/images/page-cover/woodcuts_1.jpg"
url: https://www.notion.so/Product-Roadmap-Q2-2026-a1b2c3d4e5f6
---
# Product Roadmap Q2 2026
## In Progress
### User Authentication Overhaul
- Migrate from JWT to session-based auth
- Add SSO support for enterprise customers
- Timeline: March 15 - April 30
> 💡 **Note:** This blocks the enterprise launch. Prioritize accordingly.
#### Implementation Details
The migration happens in three phases. Phase one ships the new session
store behind a feature flag. Phase two backfills existing JWTs into
sessions on next login. Phase three removes the JWT code path entirely.
```python
session = await create_session(user_id, ttl=86400)
response.set_cookie("sid", session.token, httponly=True)
Planned
API v2
| Endpoint | Status | Owner | Target |
|---|---|---|---|
| /users | Spec complete | Alice | Apr 15 |
| /billing | In review | Bob | Apr 22 |
| /analytics | Not started | — | May 06 |
Related Pages
このファイルはそのままObsidianに落として動くノートになる。Claudeに貼り付ければ、ネイティブエクスポートなら埋もれていたであろうtoggleの内容とdatabaseの行を含む完全なコンテキストをモデルに渡せる。
## 方法2: NotionのネイティブMarkdownエクスポート
Notionはページメニューに「Export as Markdown & CSV」というビルトインオプションを持っている。
**手順:**
1. ページを開き、右上の`...`メニューをクリック
2. **Export**を選び、フォーマットは**Markdown & CSV**
3. zipを待ち、ダウンロードし、解凍して、UUIDサフィックス付きファイルの中から目的のページを探す
**このアプローチの問題:**
- **toggleが無に潰れる** --- `▶ Toggle`ブロック内のコンテンツは旧コードパスでは完全にエクスポートから消えるか、ほとんどのエディタがレンダーしない非標準の`<details>`ブロックとして出てくる
- **databaseが別CSVファイルに分割される** --- ページ自体はインラインテーブルを失い、`.md`と兄弟の`.csv`を手で縫い直さなければならない
- **ファイル名にUUIDサフィックス** --- `My-Page-a1b2c3d4e5f6.md` --- リンクが壊れ、どのファイルブラウザでも見栄えが悪い
- **内部リンクがUUIDパスを指す** --- `[Other Page](Other-Page-b2c3d4e5f6a1.md)` --- 書き直さない限りリンクグラフ全体が壊れる
- **calloutがスタイルを失う** --- 絵文字アイコンは捨てられ、ブロックはただの段落になる
- **カバー画像とアイコンがフロントマターに入らない** --- あなたが本当に欲しいメタデータは消える
テキストのみの1ページなら使える。Notionのリッチなブロック型を使っているものすべてで崩壊する --- つまりほとんどの実ページで。
## 方法3: Notion API + スクリプト
完全な制御がほしいなら、公式Notion APIでページを取得し、ブロックを自分でMarkdownに変換できる。
```bash
# Using notion-to-md (popular community library)
npm install notion-to-md @notionhq/client
# Set NOTION_TOKEN env var (integration token from notion.so/my-integrations)
node convert.js PAGE_ID > page.md
最適なケース: 定期エクスポートを回すエンジニアリングチーム、Notionからdocsサイトへの同期パイプラインを構築する人、あるいは各ブロック型がMarkdownにどうマップされるかを プログラム的に制御したい人。
このアプローチの問題:
- Notionインテグレーションを作成し、ページアクセス権を付与し、トークンを管理する必要がある
- 変換ライブラリ(例:
notion-to-md)は一般的なブロックは扱えるが新しいものには遅れる --- synced blocks、AI blocks、最近の追加要素はしばしば壊れて出てくる - databaseプロパティ(formula、rollup、relation)はAPIが生の参照として返すためカスタム処理が必要で、解決済みの値は返されない
- コンバーターを書いて保守することになる --- 本物のソフトウェアだ
- 大きなworkspaceではレートリミットとページネーションを尊重する必要がある
パイプラインを構築するなら正しい方法。1ページや小さな移行ではオーバーキル。
方法4: サードパーティ移行ツール(Loom、super.so など)
Notion移行に特化した有料ツールの小さなエコシステムがある --- 一部は特定の宛先(Obsidian、Roam)への移行に集中し、他はNotionページをウェブに公開する(super.so、Potion)。
最適なケース: ワンショットの一括移行を行うチームで、ブロック型のロングテールをサービスに任せたく、workspaceあたりの支払いを気にしない場合。
Markdownユースケースでの問題:
- 出力はクリーンでポータブルなMarkdownではなく、特定の宛先(Obsidianヴォルト、Roamグラフ)に縛られていることが多い
- ほとんどがworkspaceまたはページあたり課金の有料サービス
- 品質は大きくばらつく --- 一部のツールは内部でNotionエクスポートを呼んでいるだけなので、その問題をすべて余分なステップ付きで引き継ぐ
- 大きなworkspaceでは操作をバッチ処理するため処理が遅い
- 一回の移行向けに設計されていて、「今すぐこのページを保存」のアドホック用途向けではない
workspace丸ごと移していてスクリプトを触りたくないなら、これらの1つを評価しよう。クリーンな1ページを5秒で欲しいなら、これは間違ったツールだ。
どの方法を使うべきか?
| シナリオ | 最適な方法 |
|---|---|
| NotionページをClaudeやChatGPTに貼り付ける | Minibase --- ワンクリック、toggle展開済み |
| 1ページをObsidianに移行 | Minibase --- クリーンなファイル名、動くリンク |
| workspaceからAIナレッジベースを構築 | Minibase --- ページ間で一貫したMarkdown |
| 同僚が再構成する前にページをアーカイブ | Minibase --- 今見ているものをそのまま取り込む |
| workspace全体を一括ワンショットでエクスポート | Notionネイティブエクスポート --- クリーンアップ税を受け入れる |
| 自動化されたNotion → docsサイトパイプラインを構築 | Notion API + スクリプト --- プログラム的で安定 |
| 移行を代行してくれるサービスに金を払う | サードパーティツール --- 品質が持つなら |
ほとんどの人にとって --- 特にNotionの内容をAIコンテキストとして使う人やMarkdownネイティブのツールに移行する人にとって --- 答えはSaveだ。セットアップゼロで最もクリーンなMarkdownを生成し、ネイティブエクスポートが課す構造的損失なしにtoggle満載・database満載のページを処理する。
Saveが扱うエッジケース
- ページ内のネストされたdatabase。 databaseを持つページで、その行の1つが別のdatabaseを含むページにリンクしている場合 --- Saveはトップレベルのテーブルを展開し、ネストされたページにリンクアウトするが、世界全体をインライン化しようとはしない。ツリー全体が欲しい稀なケース向けに再帰はオプトインだ。
- サブページとリンクされたページ。 内部リンクはMarkdownリンクとして保持される。親と子を別々に保存すれば、リンクは解決する。親だけ保存しても、リンクはあとで解決できる参照として残る。
- synced blocks。 実際の内容に解決される。Markdownにはソースブロックを指すプレースホルダーではなく、解決されたテキストが入る。
- コメント。 デフォルトでオフ。ページ内容と一緒に議論スレッドを取り込みたければ拡張機能の設定でオンに切り替える(アーカイブには有用、AIコンテキストにはノイジー)。
- テンプレートとtemplate button。 テンプレートの内容はレンダリングされた形で取り込まれる。template buttonそのものは、静的表現を持たないインタラクティブ要素なので落とされる。
- wikiページとギャラリービュー。 wikiホームページは子ページリストを保持する。ギャラリービューは可視のプロパティをカラムとしたエントリーのテーブルになる。
- databaseプロパティ(formula、rollup、relation)。 formulaとrollupの値はレンダリング済みテキストとして取り込まれる。relationは関連ページへのMarkdownリンクとして保持される。
- 公開 vs 非公開ページ。 Saveはログイン済みのブラウザが見るものを見る。ページが読めるなら、Saveは変換できる --- workspaceページ、共有ページ、パブリックリンクで同じように動く。
- 数百のブロックを持つ長いページ。 拡張機能はブラウザがフリーズしないよう変換をチャンク化する。出力はページ長に関わらず1つの連続したMarkdownファイル。
あなたのワークフローと組み合わせる
Markdown出力はあなたが必要とするどこでも動く:
- Obsidian --- ヴォルトにファイルを落とせば、ページを保存していくにつれリンクグラフが自動で再構築される
- Logseq --- 同じ話、ページプロパティはLogseqプロパティになる
- Claude / ChatGPT / Gemini --- ファイルを貼り付け、フォローアップ質問をし、Projectのコンテキストとして使う
- Apple Notes --- Markdownシェア拡張機能経由でクリーンにインポート
- プレーンフォルダ + ripgrep --- ミニマリスト路線なら、Markdownのフォルダ +
rgはNotionが今までできた検索より速い - Minibase Vault --- 接続していれば、すべてのNotion保存がバックリンクとタグ付きで自動的にそこに着地するので、移行が進むにつれworkspace全体が検索可能になる
FAQ
Saveは非公開のworkspaceページで動きますか? はい。Saveはログイン済みのブラウザの中で動くので、あなたが読めるもの --- workspaceページ、共有ページ、パブリックリンク --- ならSaveは変換できる。
SaveはNotionのデータを壊しますか? いいえ。Saveは読み取り専用。ブラウザタブのレンダリング済みページを読み、コンピュータにMarkdownファイルを書き出すだけ。Notionを変更することは決してなく、Notion APIを呼ぶことも、workspaceに触れることもない。
画像や添付ファイルはどうなりますか? 画像はNotionのS3 URLを指すMarkdown画像リンクとして参照される。これらのURLは署名されていて期限切れになるので、長期アーカイブにはSaveを「embed images locally」パスと組み合わせること --- 拡張機能にMarkdownと一緒に画像をダウンロードするよう頼む。
toggleは保持されますか? はい、そしてこれがNotionネイティブエクスポートに対する主な差別化点。ページ上のすべてのtoggleが開かれ、内容がインライン化される。見出しだけでなく、ページに実際にあるものすべてが見える。
workspace全体を一括エクスポートできますか? 拡張機能は今のところ1ページずつ。完全なworkspace移行では、ほとんどの人が使うワークフローはこう:workspaceのトップレベルwikiページを保存し(ページツリーが取り込まれる)、それから実際に欲しいページを1つずつ保存する。各保存がワンクリックなので、聞こえるより速い。
Notion mobileで動きますか? Chromeデスクトップのみ。モバイルではURLをコピーしてデスクトップで開くか、MacでMinibase VaultのURLハンドラを使う。
notion-to-mdや他のスクリプトとどう比較されますか?
シンプルなページでは出力品質は同等。toggle、callout、インラインdatabaseを含むページでは、Saveの出力のほうがクリーンだ。生のブロックツリーを歩くのではなくレンダリング済みのDOMを読むからで --- これは新しいブロック型がライブラリの更新を待たずにそのまま動くことを意味する。
いくらかかりますか? Saveには無料枠があるので数ページ試せる。それ以上は小さなサブスクリプションが変換コストをカバーする。
関連するSaveガイド
- Google DocsをMarkdownとして保存 --- コメント、サジェスト、書式を保持
- ConfluenceをMarkdownにエクスポート --- 企業向けwikiの同等品、同じ移行の痛み
- ChatGPTの会話をMarkdownとして保存 --- すべてのターン、コードブロックそのまま
- YouTube動画をMarkdownとして保存 --- 文字起こし、要約、タイムスタンプ、Claude向けに準備済み
Continue reading
ClaudeのチャットをMarkdownで保存する方法(Artifacts、引用、Projects対応)
Claudeのチャットをクリーンなマークダウンに変換:全ターン、Artifactsをコードブロック化、引用も保持。研究者・AIユーザー向け完全ガイド。
ChatGPTの会話をMarkdownで保存する方法(全ターン、コードブロックそのまま)
ChatGPTの会話を綺麗なMarkdownに変換:全ターン、コードブロック、表、引用。研究者とAIユーザー向け2026年完全ガイド。
Saveを使ってLLMナレッジベースを構築する方法
あらゆるウェブコンテンツを個人ナレッジベースに変換し、Claude、ChatGPT、あらゆるLLMを飛躍的に賢くする方法。Andrej Karpathyのアプローチにインスパイアされています。
Claude Code + Obsidian:究極のAIナレッジベースを構築する(2026年)
Claude CodeをObsidianのVaultに接続して、すべてのノート、ウェブクリップ、保存した記事をAIで検索。ステップバイステップのセットアップガイド。