HTML Markdown 変換ツール
HTML をブラウザ内できれいな Markdown に変換 — GFM のテーブル、タスクリスト、リンク対応。ATX/Setext 見出しとインラインまたは参照リンクを選択。Web コンテンツの移行や LLM への投入に最適。完全プライベートでアップロード不要。
カスタム CSS
HTML から Markdown への変換とは?
HTML から Markdown への変換は、描画された HTML ドキュメント — ブラウザが表示するタグ、属性、ネスト — を受け取り、それを Markdown、つまり執筆とバージョン管理のために作られた軽量なプレーンテキスト形式として書き直します。Markdown から HTML がコンパクトなテキストを表示用のマークアップに展開するのに対し、これは逆で還元的な方向です:豊かで冗長な HTML から始めて、Markdown が提供する小さく読みやすい規約の集合へと蒸留します。
内部では、変換ツールは HTML を DOM ツリー — ブラウザが構築するのと同じノード構造 — に解析し、その木を歩いて認識した各ノードの Markdown 相当物を出力します。<h2> は ## に、<strong> は **text** に、<ul> は箇条書きリストに、 はリンクに、<table> は GFM パイプテーブルになります。生の文字列に正規表現を走らせるのではなく実際の DOM をたどることが、エッジケースで壊れる代わりにネストしたリスト、混在したインライン書式、テーブルを正しく扱える理由です。
この変換に手を伸ばすのは、HTML に取り込むのではなく HTML から出ていくときです。CMS、WYSIWYG エディター、古い Web ページ、リッチテキストフィールドに閉じ込められたコンテンツは、差分を取るのも、レビューするのも、移動するのも難しいものです。それを Markdown に変換すると、Git リポジトリ、静的サイトジェネレーター、ノートアプリで快適に生き、さらに、ますます、大規模言語モデルが効率よく読む形式へと解放されます。正直なツールがはっきり述べる注意点は、変換がロッシーであることです:HTML は Markdown にできないことを表現できるので、きれいで移植可能なテキストと引き換えに、一部の構造とすべてのスタイル詳細は意図的に捨てられます。
逆の操作 — 公開やプレビューの準備ができたときに Markdown を HTML に戻すこと — も同じく役立ちます。Markdown → HTML タブに切り替えるか、専用の Markdown HTML 変換ツールを開いてください。
HTML in:
<h2>Pricing</h2>
<p>Plans start at <strong>$9/mo</strong>. See the <a href="https://example.com/pricing">details</a>.</p>
<table>
<thead><tr><th>Plan</th><th>Price</th></tr></thead>
<tbody><tr><td>Pro</td><td>$9</td></tr></tbody>
</table>
Markdown out:
## Pricing
Plans start at **$9/mo**. See the [details](https://example.com/pricing).
| Plan | Price |
| ---- | ----- |
| Pro | $9 |
<!-- <div>, classes, and inline styles in the source are dropped — Markdown can't represent them. --> 主な機能
GFM 対応の出力
単なる素の CommonMark ではなく GitHub Flavored Markdown を対象とします:HTML テーブルはパイプテーブルに、チェックボックスの <li> はタスクリスト(`- [x]`)に、<del>/<s> は ~~打ち消し線~~ になります。Markdown は README、GitHub の Issue、ドキュメントサイトにそのまま入り、同じように描画されます。
ATX または Setext 見出し
ハッシュ接頭の ATX 見出し(# H1)か、下線付きの Setext 見出し(H1 は ===、H2 は ---)を選びます。Setext は上位 2 レベルしかカバーしないので、変換ツールは H3 以降を自動的に ATX にフォールバックします — 無効な見出しになることはありません。
インラインまたは参照リンク
インラインリンク — 本文の隣の [text](url) — と、すべての URL をドキュメント末尾の番号付きリストに集める参照リンクを切り替えます。参照スタイルはリンクの多い段落を読みやすく保ち、URL をラベルで再利用できます。
フェンス付きコードブロック
<pre><code> ブロックはトリプルバッククォートのフェンス付きコードブロックになり、<code> 要素の language- クラスがフェンスのインフォ文字列として引き継がれます。インライン <code> はバッククォートのスパンになり、スニペットが無傷で旅を生き延びます。
ネストしたリストとテーブルに対応
実際の DOM をたどるので、ネストした <ul>/<ol> 構造は正しくインデントされた Markdown リストに変換され、順序付きリストは 1 から振り直されます。単純なテーブルはパイプテーブルに平坦化され、本当に複雑なものはデータを失う代わりに生の HTML にフォールバックします。
完全プライベート、ブラウザ内処理
すべての変換は JavaScript でローカルに実行されます — あなたの HTML と生成された Markdown は端末を離れず、サーバーに届かず、ページ読み込み後はオフラインでも動作します。社内 CMS のエクスポート、顧客コンテンツ、未公開ページに安全です。
使用例
Web の <table> を GFM パイプテーブルへ
<table>
<thead><tr><th>Region</th><th>Sales</th></tr></thead>
<tbody>
<tr><td>EMEA</td><td>1,204</td></tr>
<tr><td>APAC</td><td>980</td></tr>
</tbody>
</table> | Region | Sales | | ------ | ----- | | EMEA | 1,204 | | APAC | 980 |
スクレイプまたはコピーした HTML の <table> が GitHub Flavored Markdown のパイプテーブルにまとまります。<thead> 行がヘッダーになり、ダッシュの区切り行が自動生成され、各 <tr> がパイプ区切りの 1 行になります — README やドキュメントページにそのまま入れられる状態です。
リンク:インラインと参照スタイル
<p>Read the <a href="https://example.com/guide">setup guide</a> and the <a href="https://example.com/api">API reference</a>.</p>
Inline: Read the [setup guide](https://example.com/guide) and the [API reference](https://example.com/api). Reference: Read the [setup guide][1] and the [API reference][2]. [1]: https://example.com/guide [2]: https://example.com/api
同じアンカーが 2 通りに描画されます。インラインは URL をテキストの隣に保ちます。参照スタイルはすべての URL を末尾の番号付きリストに移すので、1 文に複数のリンクがある長い段落を読みやすく保ちます。スタイルはリンクのラジオボタンで選びます。
ネストした <ul>/<ol> をインデント付き Markdown リストへ
<ul>
<li>Build
<ol>
<li>Compile</li>
<li>Bundle</li>
</ol>
</li>
<li>Ship</li>
</ul> - Build 1. Compile 2. Bundle - Ship
ネストはインデントで保たれます:内側の <ol> は親 <li> の下に 2 スペース下がって配置され、`-` の箇条書きから `1.` の番号付けに切り替わります。Markdown は順序付きリストを自動で振り直すので、HTML が明示的な value 属性を使っていてもソースはきれいなままです。
Web ページ HTML の一部分をきれいな Markdown へ
<article> <h1>Changelog</h1> <p>We shipped <strong>dark mode</strong> and fixed <code>parseDate()</code>.</p> <blockquote><p>Thanks to everyone who reported it.</p></blockquote> </article>
# Changelog We shipped **dark mode** and fixed `parseDate()`. > Thanks to everyone who reported it.
実際のページの一部を貼り付けます — <article> ラッパーは落とされ(Markdown にはコンテナ要素がありません)、<h1> は `#`、<strong> は `**`、インライン <code> はバッククォート、<blockquote> は `>` 行になります。Markdown に対応物のない構造ラッパーは単に消えます。
HTML を Markdown に変換する方法
- 1
HTML を貼り付ける
コピーした Web ページ、CMS や WYSIWYG のエクスポート、スクレイプした HTML スニペットを入れます。DOM は貼り付けるそばからブラウザ内で解析されて Markdown にシリアライズされます — アップロードなし、ブラウザのメモリを超えるサイズ上限もなし。
- 2
見出しとリンクのスタイルを選ぶ
ATX(#)か Setext(===)の見出しと、インラインか参照のリンクを選びます。Markdown はライブで再描画されるので、スタイルを即座に比較できます。出力は GitHub Flavored Markdown を対象とし、テーブル、タスクリスト、打ち消し線を含みます。
- 3
コピーまたはダウンロード
コピーをクリックして Markdown を取得、またはダウンロードで .md ファイルとして保存します。逆方向に進むには、Markdown → HTML タブに切り替えて Markdown を貼り付け、描画された HTML を取り戻してください。
よくある落とし穴
<div>/<span> の構造が生き残ると期待する
汎用コンテナには Markdown の対応物がないので展開されます — 内容は残りますが、タグと、それに付いたクラスやスタイルは消えます。レイアウトがラップする <div> やスタイル付き <span> に依存していたなら、そのスタイルは Markdown では失われます。これはバグではなく想定どおりです。Markdown には単にそれを表現する手段がありません。
<div class="callout warning"><span style="color:red">Heads up!</span></div> <!-- expecting the callout box and red colour to survive -->
Heads up! <!-- container and styles dropped; only the text remains in Markdown -->
段落内の <br> 改行が失われる
段落内の <br> はソフト改行で、Markdown は改行前の末尾 2 スペース(またはバックスラッシュ)で表現します。HTML を貼り付けて見た目の改行が生き残ると期待すると、隣り合う行が 1 行に流れ込んで驚くことがあります。変換ツールはハード改行の形を出力しますが、後で手編集するなら末尾のスペースを削らないでください。
Line one<br>Line two <!-- if the break form is removed, these merge into one line -->
Line one Line two <!-- two trailing spaces preserve the <br> as a hard break -->
深くネストしたテーブルが劣化する
GFM パイプテーブルはネストもブロックコンテンツの保持もできません。テーブル(やリスト、複数段落)をセルに入れるレガシーレイアウトは、きれいなパイプテーブルになれません — 変換ツールは可能な部分を平坦化し、残りを生の HTML として残して何も失わないようにします。修正は出力ではなくソースを簡素化することです。
<table><tr><td><table><tr><td>inner</td></tr></table></td></tr></table> <!-- nested table can't become a flat pipe table -->
<!-- Flatten to a single-level table first: --> <table><tr><td>inner</td></tr></table> → | inner | | ----- |
<script> やスタイルが生き残ると期待する
<script>、<style>、head レベルの要素はコードと表現であってドキュメントの内容ではないので、完全に取り除かれます — 変換も、生 HTML としての保持もされません。ページ全体を貼り付けて挙動や CSS が Markdown に引き継がれると期待すると失望します。Markdown はコンテンツ形式です。コードやスタイルが必要なら HTML のままにしてください。
<style>.x{color:blue}</style>
<script>track()</script>
<p>Body</p>
<!-- expecting the style and script to come through --> Body <!-- only the content survives; <script>/<style> are dropped -->
一般的なユースケース
- Web や CMS のコンテンツを Notion、Obsidian、静的サイトへ移行
- CMS、WordPress エクスポート、古い HTML サイトからページを取り出し、Notion、Obsidian、Hugo、Jekyll にそのまま入る Markdown に変換します。冗長なマークアップを、Git リポジトリできれいに生き、レビューで素直に差分の取れる移植可能なテキストと交換できます。
- WYSIWYG エディターからエクスポート
- リッチテキストエディターは密で属性の多い HTML を出力します。その出力をここに貼り付けて、下にあるきれいな Markdown — 見出し、リスト、リンク、強調 — を取り戻せば、コンテンツがエディターに閉じ込められたままになるのではなく、ドキュメントパイプラインや Markdown ベースのナレッジベースに移れます。
- HTML をきれいな Markdown にして LLM や RAG パイプラインに投入
- 生の HTML は、モデルが決して必要としないタグ、スクリプト、スタイルにトークンを焼きます。スクレイプしたページを Markdown に変換するとそのノイズが取り除かれ、LLM がよく読む構造は保たれるので、コンテキストウィンドウにより多くの実コンテンツを収め、検索用によりきれいな埋め込みを得られます。
- リッチテキストの貼り付けを Markdown に変換
- Web ページ、メール、ドキュメントから書式付きテキストをコピーすると、クリップボードに HTML として届きます。それをここに貼り付けて、コミットしたり、プルリクエストで送ったり、メモに書き込んだりできる Markdown に変えてください — 書式は保たれ、ごちゃごちゃは消えます。
- ページを Markdown としてアーカイブ
- Web ページの意味あるコンテンツを、スクリプトやトラッキングだらけの重い HTML スナップショットではなく、小さく将来も使える .md ファイルとして保存します。Markdown は数十年後でもどんなテキストエディターでも読めて、わずかな容量しか取りません。
- レガシー HTML ドキュメントを Markdown に
- 手書き HTML として書かれた古いドキュメントはメンテナンスが苦痛です。それを Markdown に変換して、lint でき、プルリクエストでレビューでき、静的サイトジェネレーターで描画できる、現代の docs-as-code ワークフローに持ち込めます。
技術的な詳細
- CommonMark と GitHub Flavored Markdown の出力
- 変換ツールは素の CommonMark か、デフォルトでは GitHub Flavored Markdown スーパーセットを対象にできます。CommonMark は見出し、強調、リスト、リンク、画像、コード、引用を正確に定義します。GFM は一般的な HTML から直接対応付く 4 つの構成要素を追加します:<table> → パイプテーブル、チェックボックスのリスト項目 → タスクリスト、<del>/<s> → 打ち消し線、素の URL → 自動リンク。ほとんどの Web コンテンツはテーブルなどを使うので、GFM 出力が実用的なデフォルトです。配信先のレンダラーが GFM 拡張を理解しない場合にのみ CommonMark を選んでください。その場合テーブルは生の HTML にフォールバックします。
- ロッシーで不可逆な変換 — はっきり明言します
- HTML は Markdown より厳密に表現力が高いので、変換はロスレスになり得ず、それを率直に伝える価値があります。Markdown には <div>、<span>、その他の汎用コンテナの構文がなく、クラス名、id、インライン style、colspan/rowspan、任意の data-* 属性を運ぶ手段がなく、ほとんどのセマンティックまたはレイアウト要素の表現もありません。それらは展開される(内容を保ちタグを落とす)か、捨てられる(属性)か、あるいは — 落とすと意味が失われるとき — 生のインライン HTML として保持されます。HTML → Markdown → HTML の往復は元を再現しません。これは意図的なトレードオフです:Markdown はきれいで差分が取れ、人間が編集できるために存在するのであって、HTML を映すためではありません。多くの競合はこれをぼかしますが、明言することで、Markdown が正しい対象かどうかを目を開けて判断できます。
- スタイルのトレードオフ:ATX/Setext、インライン/参照、フェンス/インデント
- 3 つの出力選択には実際のトレードオフがあります。ATX 見出し(#)は 6 レベルすべてをカバーし、きれいに grep できます。Setext(下線付き)は H1/H2 にしか存在しないので、ツールは上位 2 レベルにそれを出力し、それ以下では ATX にフォールバックします。インラインリンクは URL をテキストの隣に保ち — リンクが疎なときに最適です。参照リンクは URL をドキュメント末尾に引き — リンクの密な本文やラベルによる再利用に最適です。コードでは、フェンス付きブロック(トリプルバッククォート)が言語インフォ文字列を運び、安全にネストするのに対し、インデント(4 スペース)のコードブロックは言語を表現できず、リスト内で壊れます — そのためこの変換ツールは <pre><code> から常にフェンス付きブロックを出力します。
ベストプラクティス
- 変換前に HTML を整形する
- 圧縮された、あるいは深く絡まった HTML — 特にネストしたレイアウトテーブルや散らばったインライン要素 — は、先に整っているとよりきれいに変換されます。乱雑なソースを HTMLフォーマッターに通してきれいに整形・正規化してから変換してください。きれいな入力は、生 HTML へのフォールバックの少ないきれいな Markdown を生みます。
- ロッシーな脱落を予期してレビューする
- 変換を設計上ロッシーなものとして扱ってください。クラス、インラインスタイル、<div>/<span> ラッパー、特殊な属性は出力では消えており、移植可能な Markdown には通常それが望ましいのですが — 属性にしか存在しなかった意味的に重要なもの(aria-label、colspan で結合されたセル)がないか結果をざっと見て、重要なら手で追加してください。
- ドキュメントの密度に合わせてリンクスタイルを選ぶ
- リンクがあちこちにある程度の本文にはインラインリンクを使ってください — URL がテキストの隣に残り、ソースが自然に読めます。セクションがリンクだらけだったり同じ URL を再利用したりするときは参照リンクに切り替えてください:それらを末尾の番号付きリストに引くと段落が見渡しやすく保たれ、長い URL の繰り返しを避けられます。
- ページを LLM に送る前に Markdown に変換する
- Web コンテンツをモデルに投入するとき — プロンプト、埋め込み、RAG ストアのために — まず HTML を Markdown に変換してください。トークンを浪費しノイズを加えるタグ、スクリプト、スタイルを取り除き、モデルが実際に使う構造を保ち、コンテキストウィンドウに大幅に多くの実コンテンツを収められます。
- 変換後に複雑なテーブルを確認する
- GFM パイプテーブルはフラットです — ネストしたテーブルなし、セル内のブロックコンテンツなし、結合セルなし。データの多いテーブルやレイアウトテーブルを変換したら、Markdown を確認してください:単純なグリッドは完璧に変換されますが、colspan やネストしたブロックを含むものは劣化し、生の HTML として現れることがあります。きれいなパイプテーブルが重要なら、先にソーステーブルを簡素化してください。
よくある質問
インラインリンクと参照リンクはどう扱われますか?
ATX と Setext の見出し — どちらを使うべき?
<div> や <span> のように Markdown で表現できない HTML はどうなりますか?
<script> やスタイルは取り除かれますか?
ネストしたテーブルやリストはどう扱われますか?
HTML から Markdown への変換は可逆(ロスレス)ですか?
Markdown を LLM や ChatGPT に投入できますか?
ファイルはサーバーにアップロードされますか?
オフラインで動作しますか?
Markdown を HTML に戻せますか?
関連ツール
すべてのツールを見る →Base64エンコーダー&デコーダー
エンコーディングとフォーマット
Base64のデコード・エンコードが無料でオンラインで行えます。リアルタイム変換、UTF-8・絵文字対応。100%ブラウザ上で動作しデータは外部に送信されません。登録不要。
Base64 画像変換ツール
エンコーディングとフォーマット
Base64 文字列やデータURIをブラウザ上で画像に戻します。プレビューし、寸法と MIME を確認して、PNG・JPG・GIF・SVG としてダウンロード。アップロード不要。
CSV to JSON 変換ツール
エンコーディングとフォーマット
CSVをブラウザ内で即座にJSONに変換。RFC 4180・型推論・ヘッダー行・大整数安全対応。100%プライベート、アップロード不要。
画像 Base64 変換ツール
エンコーディングとフォーマット
画像を Base64 データURIに変換 — PNG・JPG・GIF・WebP・SVG・ICO 対応。HTML・CSS・Markdown・JSON 形式で出力&コピー。完全プライベートでアップロード不要。
JSON Diff(差分)
エンコーディングとフォーマット
2つのJSONファイルをブラウザで即座に比較・差分確認。サイドバイサイドのハイライト表示、RFC 6902 JSON Patch出力、タイムスタンプやIDなどのノイズフィールドを無視。100%プライベート、アップロード不要。
JSONフォーマッター&バリデーター
エンコーディングとフォーマット
無料オンラインJSON整形ツール。ブラウザ上でJSONのフォーマット、構文検証、圧縮を即座に実行。エラー検出、ワンクリックコピー対応。データは端末外に送信されず、100%プライバシー保護。