Skip to content

v3.13.0

Choose a tag to compare

@github-actions github-actions released this 28 Jul 10:52
· 140 commits to main since this release

What's new

Added πŸŽ‰

  • Allow custom directory and ID logic for templates
  • When filling out a template with user-provided substitution functions, pass a "context" object to each invocation so that users can respond accordingly.
    • Added obsidian.InsertTemplateContext and obsidian.CloneTemplateContext as these new "context" objects.
  • Github workflow and make types now use lua-language-server to check type issues.
  • Added the completion.create_new option to allow for disabling new note creation in the picker.
  • Added makefile types target to check types via lua-ls.
  • New obsidian.config type for user config type check.
  • More informative healthcheck.
  • A guide to embed images for both viewing in neovim and obsidian app: https://github.com/obsidian-nvim/obsidian.nvim/wiki/Images
  • Added check_buffers option to Note.write and Note.save for automatically reloading buffers with checktime after writing them to disk
  • Added footer options.
  • Added default mappings: ]o and [o, for navigating links in note.
  • Support pasting image to sub directory in current directory.
  • Reimplement Obsidian rename with vim.lsp.
  • Support parsing title frontmatter property.

Changed ⚠️

  • Remove itertools.lua in favor of vim.iter.

  • Commands are now context sensitive (mode and if in note).

  • Remove debug command and lazy log functions, and point user to checkhealth obsidian.

  • Remove mappings.lua, see: https://github.com/obsidian-nvim/obsidian.nvim/wiki/Keymaps

  • Moved daily as its own module instead of client method.

  • Refactor the util module.

  • Refactor several note functionalities from Client into Note:

    Client (old) Note (new)
    write_note write
    create_note create
    open_note open
    parse_title_id_path resolve_title_id_path
    new_note_id generate_id
    new_note_path _generate_path
  • Refactor Client:create_note β†’ Note:create and Client:write_note β†’ Note:write

  • Use vim.defaulttable instead of custom impl.

  • Remove the class obsdian.CallbackManager, but callback system is not changed.

  • Remove api.insert_text, use vim.api.nvim_put

  • change clipboard_is_img to use vim.fn.system instead of io.popen to get the output of the command with awareness of the shell variables.

  • use run_job wrap with bash to run save_clipboard_image async for Wayland sessions to avoid data corruption.

  • Use a Obsidian global variable to hold the state instead of client.

  • opts.img_text_func has an obsidian app compatibility, and only accept one path argument.

  • Moved client:apply_async -> api.dir

  • Deprecate statusline options and vim.g.obsidian in favor of footer options and vim.b.obsidian_footer.

  • Moved client:switch_workspace -> Workspace.switch

  • Moved client:follow_link_async -> api.follow_link

  • Moved client:resolve_note_async -> search.resolve_note_async

  • Moved client:find_notes_async -> search.find_notes_async

  • Obsidian toggle_checkbox will only be triggered in correct context, in paragraph and list ts nodes.

  • opts.checkbox.create_new to configure whether insert new checkbox

  • Don't depend on plenary anymore!

Fixed βœ…

  • Fixed improper tmp-file creation during template tests
  • Only error once if template folder is not found.
  • Fixed corrupted text when custom variables appear more than once in a template file (#198)
  • Add further checks to void false positives when finding tags
  • Off-by-one bug when avoiding tag in code blocks
  • Make tag picker case insensitive
  • ObsidianPasteImg will now work on Wayland sessions
  • Handle error exit code from git in get_plugin_info
  • Fixed incorrect usage of Note.create in daily_notes.
  • Fixed tag completion for blink.cmp and improved frontmatter tag handling
  • Fixed to allow numbers in note IDs.
  • Fixed ignore subdirectories specified in daily_notes.date_format
  • Fixed not make sure template folder exists.
  • Refactored workspace module for a better api.
  • Fixed types in opts.workspaces[*].overrides to all be optional.

Commits

5186cba chore(release): bump version to v3.13.0 for release
b33b680 fix: version, comment out weird test case
c367bda fix: changelog
40816df chore(docs): auto generate docs
0fe3ea7 refactor: remove plenary! (#324)
fa83e52 chore(docs): auto generate docs
8334fbf rename reimplemented with vim.lsp (#231)
8c1d9ed chore(docs): auto generate docs
74ecf2b docs: add VVKot as a contributor for code (#323)
9ae01a6 feat: add support for title frontmatter property (#322)
7400ec3 test: MiniTest for yaml parser
141b6ac chore(docs): auto generate docs
6fcc37f fix: dedup logic workspace:new/new_from_spec, much cleaner (#303)
3c07744 chore(docs): auto generate docs
63532c7 feat: better attachment folder resolve (#317)
0d746fc fix: obsidian commentstring default off
f0b231b chore(docs): auto generate docs
8e90132 fix: small-type fixes (#308)
d4185a1 feat: opts.checkbox.create_new to configure whether insert new checkbox
2cab4fd checkbox with treesitter awareness (#300)
5396d48 fix: accident wrong usage of cursor link
be52e2c chore(docs): auto generate docs
f94a3ee nav_link mappings and find_links api (#275)
a6c5be9 chore(docs): auto generate docs
65920ad refactor: move resolve_note/follow_link away from client (#277)
b86ec1a fix: not warn if statusline is not used
b4c86cd chore(docs): auto generate docs
24e1e99 docs: add chrhjoh as a contributor for code (#296)
b614e21 chore(docs): auto generate docs
ba5a832 refactor: expose Workspace.switch (#295)
6e2b2e1 fix: respect subdirectories in date_format for daily files (#291)
6961e01 Fix false positive invalid id detection (#288)
3181c7c chore(docs): auto generate docs
be0a04a docs: add jakobwesthoff as a contributor for code (#287)
8f4cafd Fix tag completion for blink.cmp (#286)
e9fa4be chore(docs): auto generate docs
99cab8e feat: add check_buffers option to Note.write and Note.save for automatically reloading buffers with checktime after writing them to disk (#282)
21cb4d0 chore(docs): auto generate docs
ff1dbd7 feat: add footer options (#278)
419f986 fix: lua_ls version (#285)
3fbe2a8 fix: current use note:write in daily notes (#281)
70087b1 chore(docs): auto generate docs
d33d0ff fix: remove unused type params
da6fb89 fix: changelog
0da0709 refactor: client:apply_async -> api.dir
170b5ae chore(docs): auto generate docs
acfd1df More Configuration for Templates (#184)
d22a3b5 chore(docs): auto generate docs
609c5dc feat: obsidian + snacks.image compatible img_text_func (#272)
02b128f chore(docs): auto generate docs
214bcff fix: properly deliver deprecate warning. doc: document command usage.
c4c6725 chore(docs): auto generate docs
7e8bfa9 docs: add trash-panda-v91-beta as a contributor for code (#267)
5309954 fix: return consistent structure from get_plugin_info when git fails (#266)
ac3b0e7 fix: update picker usage internally for Obsidian.picker
2f929ee chore(docs): auto generate docs
8161eb4 refactor(client): move more methods away from client
527970f chore(docs): auto generate docs
44cbae2 feat: use _G.Obsidian to hold state, instead of client (#251)
7d05405 feat: check additional os specific dependencies (#259)
ad82f37 chore(docs): auto generate docs
86d853f docs: add redoxahmii as a contributor for code (#261)
3c8a66f Improve clipboard image detection and Wayland paste handling. (#260)
fe64d94 chore(docs): auto generate docs
da36384 docs: add srackham as a contributor for code (#257)
dd646c0 chore(docs): auto generate docs
d834b8c docs: add tricktux as a contributor for code (#256)
ee5c582 fix: incorrect create_new default option
9816948 fix: make tag picker case insensitive (#243)
62aaefc fix: cleanup api (#250)
96762fb fix: remove_callback_manager (#247)
57ffe35 fix: inline some tbl methods and remove lazy log (#246)
b4aef65 chore(docs): auto generate docs
c191280 doc: user-doc named obsidian only
0ee0c5b fix: rename islist
cc49972 fix: address lint and some internal rename
9a4e14e chore(docs): auto generate docs
d30a98a fix: workspace is normalized, follows symlink
cc80395 fix: don't set noremap for smart_action
7d869a2 fix: revert tag false positives
513e391 chore(docs): auto generate docs
b211574 refactor: move client method daily and statusline to their own module (#234)
63d9393 fix: remove Obsidian tag in visual mode
3d77f9a test: minify find_code_blocks
e974eea fix: properly warn mapping field
22e9357 chore(docs): auto generate docs
810d1fd feat: only leave smart_action, remove mappings module (#235)
ae8cb3d chore(docs): auto generate docs
a6906cf feat: separate user/internal config type, inline defaults (#233)
7241221 fix: lint in test_path
c1681b1 test: minify path and workspace
a642d98 fix: off-by-one bug in find_tags
7eb2cfb test: minify some tests
0d04609 fix: remove info function, point user to checkhealth (#232)
2ac8081 fix: avoid tag false positives (#206)
82743e6 feat: make completion and menu mode sensitive (#141)
22dcbe0 feat: expose register_command function for integration
140d3fb fix: not hardcode the list of commands
d491dba fix: changelog and remove old fields
c1a316c feat: move opts.ui.checkboxes to opts.checkbox
3c141a9 chore(docs): auto generate docs
c6fc904 docs: add escapewindow as a contributor for code (#226)
a1d87da chore(docs): auto generate docs
5b94baf feat: add opts.completion.create_new to allow disabling new note creation (#221)
816b1c8 chore(docs): auto generate docs
5cf4a2b docs: add carschandler as a contributor for doc (#224)
42c7c91 Update README.md (#222)
b60fece fix: incorrect type check condition
466d915 fix: missing method from SearchOpts
08cd55a fix(templates): text corrupted when custom variables appear more than once in a template file (#199)
97e1ab4 refactor: clean utils module (#202)
d70580f fix: use vim.defaulttable instead of custom one (#216)
063abeb chore(docs): auto generate docs
5f480e7 ci: fix all types, and typecheck in workflow (#215)
351dac1 fix: error once when template folder is not found (#214)
d03b45e test: use mini for note test (#213)
10ef028 perf: native io function instead of File class (#209)
3b456d7 feat: lsp based rename
e17cb3a chore(docs): auto generate docs
699361e fix: remove plenary.job and plenary.scandirusage (#118)
20c5ccd chore(docs): auto generate docs
c5b2199 docs: add brianrodri as a contributor for code (#201)
594f14a chore(docs): auto generate docs
507cee1 feat(templates): pass context to substitution functions
003655c chore(docs): auto generate docs
682d2e8 docs: add mdavis36 as a contributor for code (#196)
8d64a3d chore(docs): auto generate docs
26df7d1 Force Split Strategies. (#153)
9d165ea fix: #194 (#195)
76058b3 Fix abspath (#193)
fce08db fix: allow @ in urls (#188)
96ee170 fix: remove the accidently committed files