Skip to content

fix: 🐛 save imported images next to the note in notebook subfolders - #8

Merged
mozumasu merged 4 commits into
mozumasu:mainfrom
ShisatoYano:fix/import-image-subfolder
Aug 17, 2026
Merged

mozumasu merged 4 commits into
mozumasu:mainfrom
ShisatoYano:fix/import-image-subfolder

Conversation

@ShisatoYano

Copy link
Copy Markdown
Contributor

概要

<leader>ni で画像をインポートすると常に notebook 直下に保存される一方、挿入される Markdown リンク(![name](name))はノート自身のディレクトリを基準に解決される。ノートが notebook のサブフォルダ内にある場合、この2つの基準がズレてリンク切れになっていた。

変更内容

  • lua/nb/core.lua
    • notebook_of() と対になる folder_of(filepath) を追加。ノートパスから notebook 内のサブフォルダパスを返す(直下なら nil、ネストにも対応)
    • import_file() に任意引数 folder を追加。指定時は notebook 直下ではなくそのサブフォルダにファイルをコピーする。git commit 対象パスも notebook ルート相対(folder/filename)に補正し、.git の存在チェック(git_commit_async)は notebook ルートのまま維持
  • lua/nb/ui.lua
    • import_image() で現在のバッファから folder_of() を求め、import_file() に渡す

戻り値の final_filename は常に bare なファイル名のままなので、リンク組み立て側(![name](name))は変更不要。

動作確認

  • stylua --check . / luacheck lua パス
  • 実際に Neovim 上で <leader>ni を実行して確認:
    • notebook サブフォルダ内のノート → 画像が同じサブフォルダに保存され、リンクが正しく表示される(修正確認)
    • notebook 直下のノート → 従来通り動作(非デグレ)
    • nb 配下外のバッファ → 従来通り "Not in nb directory" 警告(非デグレ)

🤖 Generated with Claude Code

@mozumasu

Copy link
Copy Markdown
Owner

コントリビュートありがとうございます!!
LGTMeow

@mozumasu
mozumasu merged commit fdc955b into mozumasu:main Aug 17, 2026
2 checks passed
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

2 participants