Skip to content

サブディレクトリ内のファイル編集時に画像パス解決が失敗する #35

@HidemaruOwO

Description

@HidemaruOwO

サブディレクトリ内の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

再現手順

  1. リポジトリのルートディレクトリに移動
  2. nvimでNeovimを起動
  3. ファイルマネージャーでarticles/introduce-mdxsnapnvim.mdを開く
  4. :PreviewMarkdownを実行
  5. 以下のような画像参照を含むMarkdownを記述:
    ![マークダウンのスナップ](/images/introduce-mdxsnapnvim/snap_markdown.gif)

挙動

  • 期待していた動作

プラグインがプロジェクトルートを基準に画像パスを解決し、images/ディレクトリ内の画像が正しく見つかり表示される。

  • 実際の動作

プラグインが現在のファイルのディレクトリ(articles/)を基準に画像パスを解決しようとするため、プロジェクト内の他の場所にある画像でファイルが見つからないエラーが発生する。


Zenn CLIでは、Markdown内の画像ファイルパスはプロジェクトルートからルーティングされます。しかし、現在のプラグインは編集中のファイルが含まれるディレクトリをルートディレクトリとしてパス解決を行うため、異なるディレクトリに保存された画像の取得に失敗しています。

例えば、PreviewMarkdownの引数もしくは設定ファイルなどでどこからルーティングするか指定できるようなユーティリティの用意を提案します。

さいごに、このプラグインはとてもお気に入りで自分が使ってきたマークダウンレンダープラグインの中で最もフィードバックが良かったです!今後ともよろしくお願いします。

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions