サブディレクトリ内のMarkdownファイルを編集する際、プラグインが現在のファイルのディレクトリを基準に画像パスを解決しようとするため、プロジェクトルートからの相対パスで指定された画像ファイルが見つからない問題が起こりました。
エラーメッセージ
[denops] No such file or directory (os error 2): stat '/Users/hidemaru/code/zenn-articles/articles/favicon.ico'
[denops] No such file or directory (os error 2): stat '/Users/hidemaru/code/zenn-articles/articles/images/introduce-mdxsnapnvim/snap_markdown.gif'
[denops] No such file or directory (os error 2): stat '/Users/hidemaru/code/zenn-articles/articles/images/introduce-mdxsnapnvim/snap_mdx.gif'
環境
- OS: macOS
- エディタ: Neovim
- プロジェクト: Zenn記事リポジトリ
ディレクトリ構造
.
├── articles
│ └── introduce-mdxsnapnvim.md
├── books
├── images
│ └── introduce-mdxsnapnvim
│ ├── snap_markdown.gif
│ └── snap_mdx.gif
├── README.md
├── bun.lock
└── package.json
再現手順
- リポジトリのルートディレクトリに移動
nvimでNeovimを起動
- ファイルマネージャーで
articles/introduce-mdxsnapnvim.mdを開く
:PreviewMarkdownを実行
- 以下のような画像参照を含むMarkdownを記述:

挙動
プラグインがプロジェクトルートを基準に画像パスを解決し、images/ディレクトリ内の画像が正しく見つかり表示される。
プラグインが現在のファイルのディレクトリ(articles/)を基準に画像パスを解決しようとするため、プロジェクト内の他の場所にある画像でファイルが見つからないエラーが発生する。
Zenn CLIでは、Markdown内の画像ファイルパスはプロジェクトルートからルーティングされます。しかし、現在のプラグインは編集中のファイルが含まれるディレクトリをルートディレクトリとしてパス解決を行うため、異なるディレクトリに保存された画像の取得に失敗しています。
例えば、PreviewMarkdownの引数もしくは設定ファイルなどでどこからルーティングするか指定できるようなユーティリティの用意を提案します。
さいごに、このプラグインはとてもお気に入りで自分が使ってきたマークダウンレンダープラグインの中で最もフィードバックが良かったです!今後ともよろしくお願いします。
サブディレクトリ内のMarkdownファイルを編集する際、プラグインが現在のファイルのディレクトリを基準に画像パスを解決しようとするため、プロジェクトルートからの相対パスで指定された画像ファイルが見つからない問題が起こりました。
エラーメッセージ
環境
ディレクトリ構造
再現手順
nvimでNeovimを起動articles/introduce-mdxsnapnvim.mdを開く:PreviewMarkdownを実行挙動
プラグインがプロジェクトルートを基準に画像パスを解決し、
images/ディレクトリ内の画像が正しく見つかり表示される。プラグインが現在のファイルのディレクトリ(
articles/)を基準に画像パスを解決しようとするため、プロジェクト内の他の場所にある画像でファイルが見つからないエラーが発生する。Zenn CLIでは、Markdown内の画像ファイルパスはプロジェクトルートからルーティングされます。しかし、現在のプラグインは編集中のファイルが含まれるディレクトリをルートディレクトリとしてパス解決を行うため、異なるディレクトリに保存された画像の取得に失敗しています。
例えば、PreviewMarkdownの引数もしくは設定ファイルなどでどこからルーティングするか指定できるようなユーティリティの用意を提案します。
さいごに、このプラグインはとてもお気に入りで自分が使ってきたマークダウンレンダープラグインの中で最もフィードバックが良かったです!今後ともよろしくお願いします。