
テキストエディタでMarkdown画像を挿入するときは、画像ファイルの場所ではなく「原稿ファイルから画像までの道順」を書きます。たとえばmanuscript/chapter01.mdからassets/maps/port.pngを参照するなら、記法はです。原稿または画像を移動した後は、プレビューが見えるかだけで終わらず、記法の解決先が実ファイルと一致するかを確認します。
この記事は、Markdown記法で一枚を挿入し、移動後も参照を保つことに集中します。画像加工、著作権判断、外部URL画像が将来も配信される保証は扱いません。EPUBの表紙・本文画像・削除警告までまとめて検査する場合は、生成物内の画像参照を別工程で確認します。
画像記法の起点は原稿ファイルがあるフォルダ
Markdownの基本形はです。代替テキストは、画像が見えない場合にも内容が分かる短い説明にします。パスが相対パスなら、一般には原稿ファイルのあるフォルダを起点に読みます。
次の配置を例にします。
book/manuscript/chapter01.mdbook/assets/maps/port.png
chapter01.mdから見ると、まずmanuscriptを一つ上がり、assets/mapsへ降りるため、記法はです。先頭の../を省くと、エディタはbook/manuscript/assets/maps/port.pngを探すことになり、別の場所を指します。
絶対パスを貼れば自分のMacでは見えることがありますが、作品フォルダを別のMacへ渡した時に同じ場所は存在しません。作品フォルダ内の資産なら相対パスを使い、原稿と画像の関係を保つほうが移動に強くなります。
挿入直後は三つを別々に確認する
記法を書いた直後に、次の三点を確認します。
port.pngが想定フォルダに実在する- 記法を原稿の位置から解決すると、そのファイルへ到達する
- 代替テキストが「画像」ではなく「港の見取り図」のように内容を説明する
プレビュー表示だけでは、同名の古い画像を偶然参照している可能性があります。Finderなどで実ファイルの場所を確認し、画像を一時的にport-check.pngへ名前変更して参照が切れるかを見ると、どのファイルを読んでいたか分かります。確認後は元へ戻します。
ファイル名では空白、全角半角、英字の大文字小文字を混ぜないほうが安全です。Mac上で同じように見えても、別環境や生成処理で区別される場合があります。Port.pngとport.pngを別名として扱う前提でそろえます。
原稿だけを移動した場合はパスを原稿側から計算し直す
chapter01.mdをbook/chapters/part1/chapter01.mdへ移したとします。画像は元のbook/assets/maps/port.pngに残っています。新しい原稿位置からは二つ上がるため、参照は../../assets/maps/port.pngになります。
ここで画像まで一緒にコピーすると、どちらが正本か分からなくなります。原稿だけを動かす試験では画像を固定し、変更前後の記法を並べます。新しい原稿を開き、リンク先のファイル名だけでなく、フォルダ全体の道順を読み直してください。
画像だけを移動した場合は利用箇所を先に数える
次は画像をbook/assets/maps/port.pngからbook/media/port.pngへ動かす場合です。原稿が元の場所なら、新しい参照は../media/port.pngです。移動前に、古い文字列../assets/maps/port.pngが何か所にあるか検索します。一枚の画像を複数章が使っているなら、一章だけ直しても他章で切れます。
移動後は古い参照を検索し、0件になったことを確認します。次に新しい参照の件数と実際の利用章を照合します。単純な全置換を行うと、説明文やコード例まで変える場合があるため、対象行を確認します。複数ファイルを横断する一括置換は、対象外フォルダと例外行を決めて別に行ってください。
Rune Studioでは名前変更と参照書換えを別工程にする
実際に画像ファイルの名前だけを変えたところ、Markdown参照は旧名のまま残りました。したがって、「移動または名前変更をすると参照が自動で追従する」とは扱いません。ファイル操作の後に、参照を変更するかを別に判断します。
続けて参照書換え機能の対象と変更内容を確認して実行すると、2ファイル・2箇所が新名へ更新されました。確認順は、ファイルを名前変更する、古い参照の件数を確認する、書換え対象と変更内容を確認して実行する、新旧参照を再検索する、です。名前変更と参照書換えを一つの自動動作へまとめないことが重要です。
公開資料ではtxt、text、md、markdown内のMarkdown画像・リンク記法、../を含む原稿起点の相対パス、開いているタブ、閉じた原稿の文字コード保持などが参照書換えの対象範囲として説明されています。外部URL、mailto:、ページ内リンクは変更対象ではありません。確認できた結果は上記2ファイル・2箇所に限られるため、HTML、CSS、すべてのMarkdown方言や任意の移動で自動更新されるとは考えないでください。
参照が切れたときは原稿、記法、画像の順で戻る
表示されないときは、最初に原稿ファイルの現在位置を確認します。次に記法を原稿起点で一節ずつ読み、最後に画像の実在と名前を確認します。プレビュー設定や画像形式を先に疑うと、単純な../不足を見落とします。
参照を直した後は、古いパスが残っていないこと、新しいパスの件数が想定通りであること、別名の同一画像を増やしていないことを確認します。これで「見えた」ではなく「正しい一枚を参照している」と説明できます。
コピーと名前変更は「移動」と分けて考える
画像を移動する操作とコピーする操作では、期待する参照先が違います。移動なら既存の参照は新しい場所へ追従する必要があります。コピーなら、元画像を使い続ける章と、新しい画像へ切り替える章を先に決めます。すべての参照を新しいコピーへ向けるとは限りません。
名前変更も同じです。port.pngをharbor-map.pngへ変える前に、利用箇所を数えます。参照書換え後は古い名前が0件、新しい名前が予定件数になったかを確認します。ファイル名だけを変えて記法が古いままなら切れ、記法だけを変えて実ファイルが古いままでも切れます。
参照表には「操作前の原稿」「操作前の画像」「操作後に正本とする画像」を分けて書きます。これにより、移動後に同名コピーが二つ残っても、削除してよい方を判断できます。画像内容が変わった場合は、代替テキストも旧内容のまま残さないでください。
結論:一枚を挿入し、原稿移動と画像移動を分けて試す
まずchapter01.mdとport.pngの複製を作り、を挿入します。次に原稿だけを移動し、原稿起点の相対パスを計算し直します。元へ戻した後、画像だけを移動し、古い参照件数と新しい参照件数を確認します。
Rune Studioを候補にする場合は、Rune Studioの商品ページで参照書換えの対象形式と除外範囲を確認してください。名前変更後は別工程の参照書換えと新旧参照の再検索まで行います。この記事の完了条件は、画像が一度表示されたことではなく、操作後の記法が意図した実ファイル一つへ解決されることです。


