OKfmt

DOCX から Markdown へ: ドキュメントシステム移行のためのフォーマットガイド

本稿ではDOCXとMarkdownの表現の違いを解説し、5種類のコアフォーマットのマッピング規則をまとめ、GitBookなどのシステムへのWordドキュメントの移行を完了するための支援を行います。

2026-08-11 更新

DOCXとMarkdownの表現ロジックの違い

DOCXはOOXML仕様に基づいて保存され、スタイルをコアとしてフォーマットを記述します。同じ意味内容であっても、複数の視覚スタイルで表現することが可能です。Markdownは意味をコアとし、簡潔な構文でコンテンツの階層をマークし、各種静的ドキュメントシステムのレンダリングに適応します。

技術文書移行のコア要求は、DOCX内の視覚スタイルをMarkdownが認識可能な意味マーカーに変換し、冗長なページレイアウト情報を削除し、コンテンツの階層関係を保持することです。

コアフォーマットのマッピング規則

マッピング規則は意味優先の原則に従い、Markdown仕様に準拠したコンテンツマーカーのみを保持し、Word内のページ余白や行間隔などのレイアウト情報を破棄します。変換ツールはWordの組み込みスタイルのレベルに基づいて対応する見出しレベルを照合します。カスタムスタイルはツールのスタイル認識規則に依存する必要があります。

Word DOCX スタイル対応するMarkdown構文
Heading 1 から Heading 6# から ###### のレベルの見出しに対応
太字** で両側を囲む
斜体* で両側を囲む
罫線付きグリッドテーブル区切り線を使用した標準Markdownテーブル
インデントされた整形済みコード```language-tag のコードブロック ```

画像変換の処理境界

純粋なフォーマット変換ツールは、Wordドキュメントに埋め込まれた画像を抽出し、対応するMarkdownの画像リンク構文を生成するだけで、画像のクラウドストレージへのアップロードは自動的に完了しません。抽出された画像は元のファイルの解像度とフォーマットを保持し、圧縮やフォーマットトランスコーディングは行われません。

ドキュメント移行の際、ユーザーは抽出された画像をドキュメントシステムの画像ホスティングに自分でアップロードし、生成されたローカルパスを置き換えることで、画像を正常に表示できるようになります。

旧形式DOCとDOCXの変換サポートの違い

現在主流のブラウザ側DOCX-Markdown変換ツールはmammoth.jsベースで開発されています。このライブラリはOOXML仕様に準拠したDOCXファイルのみをサポートしており、旧形式のバイナリ形式DOCファイルはサポートしていません。

旧形式DOCファイルは、事前にWordまたはLibreOfficeでDOCX形式にエクスポートしてから、DOCX to Markdownコンバーターで処理することで、規則に準拠した変換結果を得ることができます。

Markdownの逆公開におけるツールの組み合わせ

DOCXからMarkdownへの変換とコンテンツ修正が完了した後、公開先に応じて異なるツールを組み合わせて配信を完了できます。GitBookまたはVitePressの場合、変換後のMarkdownを対応するプロジェクトのコンテンツディレクトリに直接保存し、ビルドツールと連携して静的サイトを生成できます。

Yuequeなどのオンラインドキュメントシステムの場合、変換後のMarkdownファイルを直接インポートでき、システムが自動的に構文レンダリングを完了し元のコンテンツ階層を保持します。PDFまたは新規Wordドキュメントにエクスポートする必要がある場合は、Pandocを使用してフォーマット変換を完了でき、パラメータは現在の公式発表に従います。

よくある質問

変換後のフォーマットのずれはどのように処理しますか

まずWordドキュメントが組み込みの見出しスタイルを使用しているか確認してください。カスタムスタイルは階層認識エラーの原因となるためです。Wordの組み込みスタイルを再適用して再度変換することで、大半のずれの問題は修正可能です。

旧形式DOCファイルを直接アップロードして変換できますか

できません。現在のmammoth.jsベースの変換ツールはDOCX形式のみをサポートしています。旧形式DOCは事前にDOCXにエクスポートしてから、ツールに変換を送信する必要があります。

変換後のMarkdownはVitePressで直接使用できますか

はい、変換によって生成される標準CommonMark仕様のMarkdownはVitePressのコンテンツフォーマット要件を満たしており、使用前に対応するfrontmatterメタデータを追加するだけで利用可能です。