ガイド · Word → Markdown
Word が Markdown になるとき、何が残るか
「書式を保つ」には二つの意味があって、どちらの話をしているかで結果に納得できるかが決まります。
残るのは骨組みです。見出し、箇条書き、表、強調 —— 文書がどう組まれているかを語る部分。もう半分、その見た目には行き先がありません。Markdown は素のテキストで、素のテキストにフォントも色も余白も改ページもないからです。これは形式の天井で、足りない機能ではありません。
構造は残り、見た目は残らない
.docx を開くと、どの段落にも書式と並んでスタイル名が入っています。意味を持っているのはスタイル名のほう —— 見出し 2、リスト段落、引用文 —— で、書式は Word が今日たまたまそう描いた、というだけのものです。
変換ツールは前者を読み、後者を捨てます。見出し 2 は ## になり、フォントサイズをくっつけたテキストにはなりません。その Markdown が置かれた先で、そのプロジェクトの見出しスタイルをそのまま着ます。
Markdown にはフォントも余白も書く構文がありません。つまり、それらを保つ版はどこにも存在しません。ページの見た目をそのまま残したいなら、欲しいのは PDF で、Markdown ではありません。
# 記号は本物の見出しスタイルから生えてくる
変換前に Word 側でやる価値があるのはこれだけで、良い出力と段落の壁の分かれ目になります。
手で大きくして太字にした行は、ファイルにとってはやはり普通の段落なので、段落になります。「16pt の太字」を ## に戻しつつ、文書中の強調した文を全部巻き込まずに済むような規則は存在しません。
- 01Word で自分の見出しの一つをクリックし、スタイルギャラリーをちらっと見ます。「標準」が選ばれていたら、その一語が問題のすべてです。
- 02そのギャラリーから見出し 1・2・3 を選びます。見た目は変わります —— 新しい見た目が気に入らないなら、手でサイズを指定するのに戻るのではなく、スタイルの定義を編集してください。
- 03箇条書きも同じで、「1.」とタブを打つのではなくリストのボタンを使います。手で打った番号はただの文字になり、もう振り直されません。
- 04変換したら出力の中で # と - を探します。# が一つもないファイルは、はじめから構造を持っていませんでした。
届くもの
見出し 6 レベル、Word のスタイルから。Word の「表題」と「副題」も # と ## に対応します。それがその意味だからです。
太字は **、斜体は _、取り消し線は ~~。上付きと下付きは <sup> と <sub> のまま残ります。Markdown に構文がなく、外すと数式や注の番号の意味が変わってしまうからです。
リンク、番号付き・箇条書きのリスト(入れ子は何段でも)、「引用文」「引用文 2」スタイルからの引用、「コード」「書式なし」スタイルの段落はフェンス付きコードブロックになります。
入れ子の箇条書きと、
3 から始まる番号付きリスト- Outer
- Inner
- Second
3. Third
4. Fourth捨てられるものと、その理由
フォント、サイズ、色、蛍光ペン、配置、字下げ、行間、改ページ、ヘッダー、フッター、余白。どれもページに属する見せ方で、Markdown はページではありません。
一番意外なのは下線です。Markdown に下線はなく、一番近いもの —— リンク —— は何もしないより悪いので、下線付きのテキストは普通のテキストとして出ます。
変更履歴とコメントは消えます。手に入るのは最終テキストで、編集の履歴ではありません。テキストボックス、SmartArt、グラフも残らず、あるとしても中の文字だけです。Word はさらに、対応できなかったスタイルを変換ツールに伝えてきます。その注意書きは出力の上に、重複を除いて最大 8 件まで並び、その後に残りが何件あったかの 1 行が付きます。
表は届く、結合セルは届かない
表は普通のパイプ表になります。セル内の縦棒は \| にエスケープされるので、縦棒 1 本で行が二つに割れることはありません。一番幅の広い行より短い行は埋められ、表は長方形のままです。
結合セルだけは例外で、しかも厳しい例外です。Markdown に colspan も rowspan もありません。2 列にまたがる結合セルは文字をそのまま持ち、隣に空のセルを残します。結合に意味があるなら、先に Word で解除してください。多くの場合、見出しを中央に置くためだけの結合です。
セルの中のインライン書式は問題なく通ります。太字、斜体、コード、リンク。ブロック要素はブロックとして残りません。セル内の箇条書きは項目がつながって出ます。パイプ表の 1 行は 1 行しかないからです。
2 列にまたがる結合ヘッダーセル| Merged head | |
| --- | --- |
| 1 | 2 |画像と、旧 .doc だけができないこと
旧 .doc は例外です。あの形式は 2007 年より前のバイナリで、ここではブラウザの中でバイト単位で読んでいます。画像はそこから取り出せず、リストの正確な番号も復元できません。本文、見出し、表、太字、斜体は届きますし、その経路を通ったことを出力が明示するので、疑わずに済みます。Word が手元にあるなら、.docx として保存し直したほうがきれいに出ます。
もう一つ知っておくとよいこと。Word のハイパーリンクには追跡パラメータが付いていることが多く、Google ドキュメントから保存した文書はリンクを google.com/url のリダイレクトで包んでいます。どちらも本当の宛先までほどかれ、そのことは出力に書かれます。リンクの行き先を変えたなら、一言言うべきです。
- 01Base64 埋め込みは、画像を Markdown そのものの中に入れます。単体で完結し、画像が迷子になりません —— ただしデータ URI は画像より 3 割ほど大きく、テキストエディタで開くと読みづらいファイルになります。
- 02参照だけ残すと  を書き、ファイルはあなたに任せます。すでに images フォルダがあるリポジトリに入れるならこれです。名前は代替テキストから、小文字とハイフンで組み立てます。
- 03削除は画像を丸ごと落とします。テキストだけの書き出しなら正しく、後で「ここに何があったのか」と思うなら間違いです。
見出しスタイルを直してから、ファイルを置いてください。何もアップロードされません —— .docx はこのタブの中で展開されます —— なので、まだ公開していない下書きで試すのがちょうどいいです。
Word → MD