Bot releases are visible (Hide)
:ObsidianTOC
command for loading the table of contents of the current note into a picker list.:ObsidianNewFromTemplate
command. This command creates a new note from a template.opts.search_max_lines
was not propagated through some client methods.ae1f76a chore(release): bump version to v3.9.0 for release
18bda6d chore(docs): auto generate docs
837e778 Add :ObsidianNewFromTemplate
command (#621)
7a9081a Fix bug where opts.search_max_lines
was not respected (#647)
3cc9aaa chore(docs): auto generate docs
e53072a Add :ObsidianTOC
command (#646)
e170641 Fix typo in contributing guide (#641)
Published by github-actions[bot] 4 months ago
f0bc495 chore(release): bump version to v3.8.1 for release
5e5bc06 Remove duplicate completion suggestions (#639)
Published by github-actions[bot] 4 months ago
daily_notes.default_tags
for customizing (or removing) the default tags given to new daily notes.7507dee chore(release): bump version to v3.8.0 for release
5c314ca chore(docs): auto generate docs
2d69fb2 Add daily_notes.default_tags
option
7e087da feat(backlinks): make relative to root links searchable (#626)
89cab28 Make searching for notes by filename case insensitive (#620)
Published by github-actions[bot] 5 months ago
ui.max_file_length
to disable the UI for files with more than this many lines. Defaults to 5000.search_max_lines
(defaults to 1000) for controlling the max number of lines read from disk from note files during certain searches.ObsidianPasteImg
command.#
.c6bd6d9 chore(release): bump version to v3.7.14 for release
b8ca513 Only warn once about conceallevel
216e5e8 Add support for ObsidianPasteImg
on FreeBSD (#615)
fda8df4 Only collect anchors/blocks when prompted in completion (#590)
2d0432c chore(docs): auto generate docs
80bc7ab Add config option search_max_lines
(#614)
cbffe2a chore(docs): auto generate docs
96630cb Add option to disable UI for long files (#613)
Published by github-actions[bot] 5 months ago
disable_frontmatter
is set to true. Previously the frontmatter would be removed when the template was inserted, now it will be kept unchanged.Client:create_note()
will always ensure the parent directory exists, even when not writing the note itself to disk, to avoid downstream issues (see #600).mailto:
links as URLs.0e9bc3a chore(release): bump version to v3.7.13 for release
3d5fbcd Fix edge case of deduplicating tags
d211c1c chore(docs): auto generate docs
0c819b5 Added checkbox for important tasks in default configuration (#574)
bb785f7 Identify mailto:
links as URLs
1208a02 Fix compat
function to work in async
d136011 Fixed logging from :ObsidianRename --dry-run
(#602)
98275b6 chore(docs): auto generate docs
49cfe4d Always ensure note dir exists from Client:create_note
d808307 fix: upgrade to vim.islist without errors (#598)
3fe34f5 Fix handling checkboxes with regex magic chars
0890a3f Add support for neovim 0.11 (#593)
7b59d90 Fixed using templates with frontmatter with disable_frontmatter=true
6943cb4 Fix finding backlinks with URL encoded paths
a9978d0 Fixed regression with updating frontmatter in templates
2e1f034 Make workspace detection more robust (#578)
Published by github-actions[bot] 6 months ago
templates.subdir
to templates.folder
(subdir
still supported for backwards compat).db41b1f chore(release): bump version to v3.7.12 for release
c28ad22 fix lint
66def9e chore(docs): auto generate docs
dbc2b0a update how templates folder is configured
Published by github-actions[bot] 6 months ago
b1bfc2a chore(release): bump version to v3.7.10 for release
f9e3309 Fix bug with os detection
Published by github-actions[bot] 6 months ago
:ObsidianOpen
issue on WSL OS name identifier check with different release name case.daily_notes.alias_format
is nil
.8a33ad4 chore(release): bump version to v3.7.9 for release
a37619a Change how we infer ID and default alias for daily notes (#544)
6ffd196 fix: os_uname check for wsl (#543)
1265a1f fix: ensure template insertion to occur at the current line instead of below (#539)
Published by github-actions[bot] 6 months ago
9644aca chore(release): bump version to v3.7.8 for release
d8eb52f fix: recover toggle_checkbox util's condition to create a checkbox with a line without a checkbox (#537)
534409d chore(docs): auto generate docs
efbc150 Update <CR>
mapping in README (#530)
Published by github-actions[bot] 7 months ago
:ObsidianToday
command with a defined template, resulting in cleaner output and a more streamlined user experience.6661806 chore(release): bump version to v3.7.7 for release
d8bac78 Fix Excessive Logging Issue with :ObsidianToday Command (#526)
Published by github-actions[bot] 7 months ago
<CR>
, that depends on the context. It will follow links or toggle checkboxes.order
field to ui.checkboxes
config fields that determines the order in which the different checkbox characters are cycled through via :ObsidianToggleCheckbox
and the smart action.d70f328 chore(release): bump version to v3.7.6 for release
3c3656b fix another YAML parser bug
30a7d7b Don't resolve duplicate paths
2516df4 chore(docs): auto generate docs
2f9b95a Added :ObsidianToggleCheckbox
cmd and smart action mapping (#329) (#518)
a7e2ec9 Fix bug with YAML parser
c5c4088 Fix bug with YAML parser
f2eeb0a Ensure fields transfer to new note when cloning from template
Published by github-actions[bot] 7 months ago
nvim-cmp
on Linux.df0c5cc chore(release): bump version to v3.7.5 for release
271db15 Fix bug with cmp_obsidian_new
on Linux (#508)
6a81ca9 clean up Client:should_save_frontmatter()
be075a1 Add more debugging info about completion
dd1e7ad update chars used in debug command
Published by github-actions[bot] 7 months ago
68da729 chore(release): bump version to v3.7.4 for release
b2df42f Make buffer open strategy more robust
02f0136 Fix default format for daily note datetime
a6b5e97 chore(docs): auto generate docs
fd9c8ec return note
9b2b85b Update prompt for title / path
ade062a Add file completion to :ObsidianNew
command
e3d1b86 chore(docs): auto generate docs
87267f9 Clean up templates API
4e80ab4 Fix overwriting frontmatter from template
450c3da Don't open picker for tags when there aren't any results
Published by github-actions[bot] 7 months ago
:ObsidianDailies
picker list.img_text_func
example in README.0f4ea50 chore(release): bump version to v3.7.3 for release
63da36f Load note from buffer to resolve inter-note links
53eace3 chore(docs): auto generate docs
9049199 Fix img_text_func
example in README
82fa400 chore(docs): auto generate docs
538cd94 Add indicator to :ObsidianDailies
entries that don't exist
Published by github-actions[bot] 7 months ago
:ObsidianNew
won't write the new note to disk, it will only populate the buffer.Client:resolve_note
fall back to fuzzy matching when there are no exact matches.5747ae3 chore(release): bump version to v3.7.2 for release
f68f5c8 Don't collect anchors/blocks within code blocks
af0ce46 chore(docs): auto generate docs
4e21c8c Don't write new note from :ObsidianFollowLink
7c9a337 chore(docs): auto generate docs
e6b7ce1 Don't write note on :ObsidianNew
(#490)
52e91bc chore(docs): auto generate docs
4d3f2c2 Make Client:resolve_note
a little fuzzy
979f154 fix: renaming sends proper path to joinpath (#487)
Published by github-actions[bot] 7 months ago
:ObsidianExtractNote
.:ObsidianNew
.b136c15 chore(release): bump version to v3.7.1 for release
0577a02 CHANGELOG
f82d96a Fix title assigned to new notes
78f572c Do not write empty metadata to note (#482)
bd2b2a5 chore(docs): auto generate docs
dc60381 Fix bug with :ObsidianExtractNote
Published by github-actions[bot] 7 months ago
There's a lot of new features and improvements here that I'm really excited about 🥳 They've improved my workflow a ton and I hope they do for you too. To highlight the 3 biggest additions:
🔗 Full support for header anchor links and block links! That means both for following links and completion of links. Various forms of anchor/block links are support. Here are a few examples:
[[My note#Heading 1]]
, [[My note#Heading 1#Sub heading]]
, [[My note#^block-123]]
.[[my-note#heading-1|Heading 1 in My Note]]
.[Heading 1 in My Note](my-note.md#heading-1)
.We also support links to headers within the same note, like for a table of contents, e.g. [[#Heading 1]]
, [[#heading-1|Heading]]
, [[#^block-1]]
.
📲 A basic callback system to let you easily customize obisidian.nvim's behavior even more. There are currently 5 events: post_setup
, enter_note
, leave_note
, pre_write_note
, and post_set_workspace
. You can define a function for each of these in your config.
🔭 Improved picker integrations (especially for telescope), particular for the :ObsidianTags
command. See https://github.com/epwalsh/obsidian.nvim/discussions/450 for a demo.
Full changelog below 👇
Added a configurable callback system to further customize obsidian.nvim's behavior. Callbacks are defined through the callbacks
field in the config:
callbacks = {
-- Runs at the end of `require("obsidian").setup()`.
---@param client obsidian.Client
post_setup = function(client) end,
-- Runs anytime you enter the buffer for a note.
---@param client obsidian.Client
---@param note obsidian.Note
enter_note = function(client, note) end,
-- Runs anytime you leave the buffer for a note.
---@param client obsidian.Client
---@param note obsidian.Note
leave_note = function(client, note) end,
-- Runs right before writing the buffer for a note.
---@param client obsidian.Client
---@param note obsidian.Note
pre_write_note = function(client, note) end,
-- Runs anytime the workspace is set/changed.
---@param client obsidian.Client
---@param workspace obsidian.Workspace
post_set_workspace = function(client, workspace) end,
}
Added configuration option note_path_func(spec): obsidian.Path
for customizing how file names for new notes are generated. This takes a single argument, a table that looks like { id: string, dir: obsidian.Path, title: string|? }
, and returns an obsidian.Path
object. The default behavior is equivalent to this:
---@param spec { id: string, dir: obsidian.Path, title: string|? }
---@return string|obsidian.Path The full path to the new note.
note_path_func = function(spec)
local path = spec.dir / tostring(spec.id)
return path:with_suffix(".md")
end
Added config option picker.tag_mappings
, analogous to picker.note_mappings
.
Added log
field to obsidian.Client
for easier access to the logger.
Added ability to follow anchor and block links.
Added completion support for anchor and block links. Note that this requires you to update your wiki_link_func
and markdown_link_func
in your config to handle anchors and blocks. See the configuration example in the README.
You can set wiki_link_func
to a one of the following strings to use a builtin function:
"use_alias_only"
, e.g. [[Foo Bar]]
"prepend_note_id"
, e.g. [[foo-bar|Foo Bar]]
"prepend_note_path"
, e.g. [[foo-bar.md|Foo Bar]]
"use_path_only"
, e.g. [[foo-bar.md]]
Added command :ObsidianDailies
for opening a picker list of daily notes.
picker.mappings
to picker.note_mappings
.:ObsidianOpen
on windows.:ObsidianPasteImg
.Client:resolve_note()
more robust to when the search term is a file name.6888c76 chore(release): bump version to v3.7.0 for release
d0d699c Update picker titles
43abaa3 Use header under cursor when collecting backlinks
4c5a1b0 Use block ID under cursor for backlinks
eb5706e chore(docs): auto generate docs
ad0d6bb Add leave-note
callback event
ba116f3 chore(docs): auto generate docs
554b0d6 Add template
option to Client:create_note()
656313b Show sub tags
3fd4877 chore(docs): auto generate docs
1c2921e support anchors/blocks in backlinks
598cc7d Fix #478
52f94d0 chore(docs): auto generate docs
e69b824 Support datetime macros with cmp_obsidian_new
51bc688 Make nvim-cmp
completion more robust to different link formats
3393e3b Make Client:resolve_note
robust to file name searches.
497d605 Allow '+' in URLs for detection
81c560a Error when templates fail instead of log
0cde098 Fix some type hints (#474)
86468d7 chore(docs): auto generate docs
7b27902 Add ext marks for block IDs
3704c5e Clean up
02971d2 provide consistency between daily notes frontmatter with/without template (#472)
2814bd2 chore(docs): auto generate docs
1f31e2b Add more context to cmp entry documentation
aa4312f chore(docs): auto generate docs
f1f106e add support for block links
207bdea Clean up unnecessary diagnostic comments
62c845f fix: handle timer nil value in async.throttle function (#468)
169f3ef Handle prompt cancellation gracefully
28ddc4c Fix bug with log.log_once()
3158718 Fix lint
cb309f2 chore(docs): auto generate docs
8d3fbb2 Handle blocks links
a29d178 Ensure line and col are in picker entry
4e53636 Consolidate code that falls back to picker
0e5e062 Use picker when we can't resolve to a single note
57c14b7 Ignore case in backlinks search
ae0c95f Ensure daily note is given title
0a4f7d3 Sort :ObsidianLinks
entries by lnum
8101f72 Add :ObsidianDailies
command
099ef3d Add file/dir completion to image name prompt
656d9c2 Add more details to CHANGELOG
fe7464d Catch single char anchors for completion
42c8d1a chore(docs): auto generate docs
06c1ee7 minor improvements
ab6877f minor improvement to tags and new cmp sources
89672ca chore(docs): auto generate docs
47ccca2 Handle nested anchor links, improve completion (#460)
977e621 Fix open cmd on windows (#459)
c57b248 Respect user's telescope.nvim themes
b14c882 chore(docs): auto generate docs
225f80d Add completion for header anchors (#457)
2746f79 chore(docs): auto generate docs
38abaa1 Merge pull request #455 from epwalsh/epwalsh/lua-api-improvements
60432d3 Add a safety check for note_id_func
6eb6707 chore(docs): auto generate docs
f615466 CHANGELOG
4648518 :ObsidianFollowLink
will now attempt to resolve anchor
1e0b4ce chore(docs): auto generate docs
8879320 Add basic callbacks system (#451)
4c521b9 Make util.get_visual_selection()
more robust
7734811 Fix bug with getting viz selection for tags command
bbc553f Don't use telescope previewer for string values
35f27e2 chore(docs): auto generate docs
9ff9f34 Added note_path_func
option to customize how note fname are generated (#445)
c7812ab chore(docs): auto generate docs
cc4efa1 Picker improvements (#447)
a6af03b add more info to debug output
3cfbf14 Make util.strip_comments()
more robust
f60660b make logging more robust
Published by github-actions[bot] 8 months ago
attachments.confirm_img_paste: boolean
to allow users to control whether they are prompted for confirmation when pasting an image.:ObsidianLinks
.b1f5eb1 chore(release): bump version to v3.6.1 for release
c00b6f2 Make :ObsidianCheck
more robust
813254b Add extra assert to be safe
a07e828 Remove unnecessary code in Path:relative_to()
fc6cb8a Let user control whether paste image is confirmed (#442)
ebf4cd2 Only show unique links with :ObsidianLinks
cmd
Published by github-actions[bot] 8 months ago
Various bug fixes and Lua API improvements.
Client:new_note()
in favor of Client:create_note()
.Client:apply_async()
to take a table of options in place of the 2nd and 3rd arguments.Note:save()
to take a table of options.b77e4c1 chore(release): bump version to v3.6.0 for release
ef956c8 Fix bug with pasting images
cb5a8d1 Make tags search for efficient
60851cc chore(docs): auto generate docs
4c36010 Ignore things that look like tags in code blocks
953f67c Add Note.from_file_with_contents_async()
3ef8090 ignore false positive from Luacheck
37c356c chore(docs): auto generate docs
9cfd03c Make Note:save()
more robust
2fa0d93 Make Path.new
more robust
34897c2 Update API of Note:save()
69bf964 Add @deprecated
annotation to Client:new_note()
b21de4e Update API for Client:apply_async()
d68b2a1 chore(docs): auto generate docs
daab784 API and internal improvements (#438)
Published by github-actions[bot] 8 months ago
9ede6c8 chore(release): bump version to v3.5.3 for release
76d76c6 Fix bug with cloning templates (#437)