Releases: lervag/wiki.vim
wiki.vim v0.9
It's been way too long since I made a release. Still, there has been a lot of improvements and updates. The main highlights of this update are:
- The
g:wiki_select_method
has become much more powerful. - Added
WikiLinkIncomingToggle
andWikiLinkIncomingHover
. - Added
WikiLinkAdd
.
Important: This is the final release of wiki.vim that supports older Vim and neovim versions. Starting now, I will bump the version requirements to Vim 9.1 and Neovim 0.9.5. I am aware that these are very recent versions, but I want to have that flexibility. Users who for some reason need to or want to use older version should stay on the v0.9
tag.
Features
- UI
- Added
:WikiLinkAdd
with corresponding mapping and API method (#329) - Added
g:wiki_ui_method
for choosing ui backends (#317) - [breaking] Generalized
g:wiki_select_method
- This allows custom backends for
Wiki{Pages,Tags,Toc}
- This adds support for Telescope as a select method
- See
:help wiki-advanced-config-3
for an example on how to customize the
select method withfzf-lua
.
- This allows custom backends for
- Added
- Link graph
- Added incoming links functionality (#313)
:help WikiLinkIncomingToggle
:help WikiLinkIncomingHover
- Change default depth for
WikiGraph{In,Out}
- Added incoming links functionality (#313)
- API changes
- [breaking] Renamed
Wiki#toc#get_section_at
towiki#toc#get_section
- Improved
wiki#toc#gather_entries
- Improve filetype specifications for
wiki#toc#...
(#346) - Skip fenced code blocks in
wiki#link#get_all_from_lines
- [breaking] Renamed
- Other
Bug Fixes
- Wrapped
fd
path in quotes to handle spaces in the path (#336) - Improved formatted
echo
s - Ensure folds are disabled in popups
- Fixed regression in
wiki#graph#check_orphans
(#322) - Removed empty anchors from urls (#323)
- Only remove first toc entry if it makes sense
- Fixed bug with handling windows paths in
wiki#paths#relative
(#340)
Acknowledgements
I would like to give a special thanks to @camfowler who contributed with the PR #336.
wiki.vim v0.8
This is a significant update that brings several breaking changes! I'm quite proud of the updates and I believe they both very much improves wiki.vim as a plugin for users, and also makes it easier to continue future maintenance and improvement. I've tried to highlight the most important changes below, but the gist, in short:
- Much more flexible handling of links and URLs with new options:
g:wiki_link_creation
g:wiki_link_schemes
g:wiki_link_default_schemes
- Better UI for Neovim with popups for actions to
input
,confirm
orselect
stuff. - Better docs!
- Lots of other changes and improvements!
Also, wiki.vim is no longer considered "simple". That is, the slogan A simple wiki plugin for Vim is now A wiki plugin for Vim. 🚀
Features
- Breaking changes
-
Added new option
g:wiki_link_creation
(#296, #299)
This option provides a more flexible filetype dependent behaviour. It also deprecates four other options and thus makes configuring wiki.vim easier for most people. And since the new option provides sensible defaults, it also means most people will require less customization.The following options are deprecated:
g:wiki_map_text_to_link
g:wiki_map_create_page
g:wiki_link_extension
g:wiki_link_target_type
-
Changed the word toggle to transform, e.g.
<plug>(wiki-link-toggle)
is now<plug>(wiki-link-transform)
.
The word "toggle" is not a good word for the act of changing a link from one type to another. Transform may not be perfect, but at least it is much better.This changes two options:
g:wiki_link_toggles
→g:wiki_link_transforms
g:wiki_link_toggle_on_follow
→g:wiki_link_transform_on_follow
-
Changed default of
g:wiki_write_on_nav
to 1 -
Refactored significant parts of the code. These are mostly hygienic changes that makes it easier to continue development and perform other improvements. But I believe they make things simpler to reason about. Highlights:
-
Changed how URL handlers/resolvers are implemented (#302, #304)
The old style was somewhat convoluted in that the URLs were unnecessarily entwined with the link concept. The new implementation more properly separates the concepts. This is a major step towards allowing more flexibility for users to define their own URL resolvers and handlers.In the process, the
g:wiki_resolver
andg:wiki_file_handler
options were removed! The new optiong:wiki_link_schemes
replaces both of these. Also,g:wiki_month_names
was renamed tog:wiki_template_month_names
.The documentation has also been revised and there are a couple of advanced configuration examples that should be helpful for users who want to customize things.
-
The concept of a "link matcher" is changed to "link definition" and the matcher is converted to a "pure" function. All link definitions are gather in
autoload/wiki/link/def.vim
. -
All link templates (for inserting a link) are gathered in the corresponding
autoload/wiki/link/template.vim
. -
The link templates must now accept three arguments, the third argument is the origin link itself. This allows to use templates in a more functional way and makes the data flow clearer. Note: This means that anyone who used their own
g:wiki_link_transforms
functions will need to adjust them to accept the third argument.
-
-
- Added new option
g:wiki_link_default_schemes
(#301, #303)
This allows a flexible way to specify default schemes for each link, per filetype if desired. - Added Neovim-specific UI elements with a floating window popup for
input
,confirm
andselect
actions. - Added visual mode version of
:WikiLinkExtractHeader
(#280) - Added
:WikiGraphCheckOrphans
(#311) - Added
wiki#buffer#refresh_incoming_links
(#313) - Use scratch buffer to show link data (#301)
- Other minor things:
- Changed name
wiki#complete#link
→wiki#complete#url
- Allow argument for
:WikiOpen
- Added
wiki#link#get_all_from_range
- Added
wiki#graph#get_backlinks_enriched
- Added
:wiki#u#associate_by
- Changed name
Performance
- Improve performance of
wiki#graph#check_orphans
- Improve graph
cache_links_in
refresh mechanism
Bug Fixes
- Use
fd -I
to respect.gitignore
for completion (#307) - Complete links for all chosen filetypes (#312)
- Ensure the
cache_links_in
graph is properly read before refreshing the graph data - Use
inputlist()
forui#select
when buffered - Use
silent!
to ignore potential errors inurl#follow
- A few other minor fixes
Documentation
- Large improvements to the documentation
- Improved descriptions of links and urls (#301)
- Improved the structure and flow of sections
- Added some advanced configuration examples
- Fixed typo in example (#314)
Acknowledgements
As always, I much appreciate contribution from the community, and I would like to thank in particular those who contributed PRs: @jiz40h (#314).
wiki.vim v0.7
I'm planning some relatively large changes in future work, see e.g. #296, #297, #301, and #302. I believe these will be very good changes that will allow much more user flexibility and keep wiki.vim more filetype agnostic than before.
However, since these are major updates, I believe it is useful to make a small release now that allows users to pin their local versions to a stable release. I would not be surprised if I push some bugs while developing, so pinning to this release may give a more stable experience for those who don't want to be surprised.
Features
- Breaking change: Use absolute paths for
journal.link_*_parser
- Add support for separate root directory for the journal (#273)
- Generalize the TOC feature (#295, #288)
- Allow "edit in vim" for file handler, see
:help g:wiki_viewer
- Use modern jobs backends for Zotero viewer
Documentation
Acknowledgements
As before I would like to give a special thanks to those who contributes with PRs: @Betmaster (#293) and @saccarosium (#295).
wiki.vim v0.6
It's time for a new release. This release brings a few important updates, including one important breaking change (see #289): The default filetype is now Markdown, instead of the previous .wiki
. This should be more aligned with user expectations and I believe it would reduce the required configuration for most users.
Notice that those who use the wiki
filetype and want to still do that now likely need to apply some configuration, e.g.:
let g:wiki_filetypes = ['wiki']
let g:wiki_link_target_type = 'wiki'
let g:wiki_link_extension = ''
Features
- Breaking changes!
- Changed default filetype to Markdown (#289)
- Added
g:wiki_journal_index
option (#260)- The option
g:wiki_journal.index_use_journal_scheme
is deprecated!
- The option
- Unified the "search" commands
WikiPages
,WikiTags
, andWikiToc
and thereby deprecatedWikiFzf*
variants. - Removed support for CtrlP (
:CtrlPWiki
) and for Unite and Denite- I don't want to keep support for these interfaces. I instead want to provide an API that makes it easy to build such interfaces on top for those who are interested.
- Added support for neovim's
vim.ui.select
(#281, #282)- Add configuration option
g:wiki_select_method
forWiki{Pages,Tags,Toc}
- Add configuration option
- Added
g:wiki_journal_index.link_text_parser
andg:wiki_journal_index.link_url_parser
(#260)- This adds a flexible way to specify how
:WikiJournalIndex
should determine the link text and url of the recognized links.
- This adds a flexible way to specify how
- Added
g:wiki_fzf_tags_opts
(#157, #269)- Allows to pass additional options to Fzf in
:WikiTags
(with Fzf backend). This is useful e.g. to add a previewer.
- Allows to pass additional options to Fzf in
- Allowed to disable specified mappings with the
g:wiki_mappings_...
options (#159) - Implemented a less strict reference url detector (#275)
- Allowed
.
inside shortcites (lervag/wiki-ft.vim#13)
Bug Fixes
- Ensure
g:wiki_cache_root
is expanded before use (#261) - Properly initialize
:WikiClearCache
command - Avoid looking for missing keys in cache
- Some minor bugs and issues (#264)
- Recognize links also when line starts with inline code (#267)
- Only navigate to existing nodes with
WikiJournal{Next,Prev}
(#266) - Rely on journal interface for weekly template
- Force case sensitive regexes where necessary (#272)
- Fix issue with
:WikiTagRename
(#285)
Documentation
- Clarified
g:wiki_root
example (#261) - Extend
:help wiki-intro-guide
with a section about the journal (#270) - Several minor improvements (#265, #268, #271, #281)
Acknowledgements
Again there has been several contributions from the community, and as before I would like to give a special thanks to everyone who contributes with PRs: @step- (#268, #269), @mizhozan (#271), @cwolfe3 (#277), @saccarosium (#281), and @trev-dev (#285).
wiki.vim v0.5
It's been way too long since the last release, so here's a new one. It brings a lot of changes, both minor and major. I've tried to summarize things somewhat:
Features
- Breaking changes!
- Rewrote the graph utilities. These features should be much better now. E.g.:
:WikiGraph*
Graph commands in general:WikiGraphRelated
: Command to show related pages
- Change g:wiki_tags* -> g:wiki_tag*
- Rename 'g:wiki_map_link_create' to 'g:wiki_map_text_to_link' (#233)
- This options is now also more general and better.
- Rewrote the graph utilities. These features should be much better now. E.g.:
- Improved template feature (e.g. user functions; #181, #83)
- Improve navigation code (#183)
- Improve tag parsers (#189, #175, #188, #193)
- Upgrade caching mechanism
- Improved ToC parsing
- Use cached
uname
call (#195) - Rely on new jobs backend for system calls
- Add
g:wiki_journal.index_use_journal_scheme
(#206) - Use
netrw#BrowseX
as generic url handler (#214) - Support bracketed url syntax (#213)
- Better reference link support
- Allow split modifiers for
:WikiLinkFollowSplit
(#223) - Add
:WikiLinkFollowTab
(#204) - Allow math in markdown link text
- Slightly better error message (#241)
- Give feedback on reload
- Slightly adjust word link toggler
- Add utility group_by function
- Add
<f2>
for rename section - More log functionality
- Improve link toggle on text (#245)
- See
:help WikiLinkToggle
for improved docs.
- See
- Ignore case on anchor search (#246)
- Support for journal hierarchies (#231)
- Journal urls now support anchor
- Add wiki#rx#bolditalic variants (#186)
- Support for org-mode links (#247)
Bug Fixes
- A lot of minor bug fixes!
- Handle E325 in
#url#wiki.follow
(#166) - Use
g:wiki_viewer._
as fallback for file scheme (#171) - Consistent use of getcurpos (#172)
- Remove scheme for file scheme handler (#171)
- Proper string handling (#178)
- Ignore zotero search when root dir unavailable (#177)
- Avoid endless loop on fugitive buffers (#187)
- Minor regression (#189)
- Use consistent ascending sort for journal index (#178)
- Handle rename within subdirs (#170)
- Don't try to follow empty links
- Revert syntax to support older versions (#194, #193)
- Minor issue with toc
- Wrong sorting in WikiJournalIndex (#207)
- Handle problem during cache read (#217)
- Error in cache (#217)
:WikiJournalIndex
respect wiki_link_extension (#219)- Error in extension handling for wiki resolver (#208)
- Wrong extensions ordering for wiki resolver (#208)
- Expand the template source paths (#229)
- Don't append extension on directory link (#233)
- Create link in unrooted buffer (#234)
- Use nomagic for fzf path substitution (#243)
- Support for shorthand tags (#244)
- Complete with default tag parser (#244)
- Problem with journal summary template
- Regression with journal index (#251)
- Shaky caching for update_links (#250)
- Improve page rename (#250)
- Another minor issue with journal index (#251)
- Add
strptime
implementation for windows (#252) - Better test for strptime (#253)
- Improve robustness of strptime_implicit (#255)
Documentation
- Add help text for ncm2 setup (#163)
- Improve docs on
g:wiki_viewer
- Add (subjective) intro guide (#150, #210)
- Improve help on use for markdown (#190)
- List plugins that work well with wiki.vim (#220)
- Clarify option type for map options (#221, #174)
- Explain journal summary structure requirement (#203)
- Several general improvements to docs
Acknowledgements
There has been several contributions from the community. I would like to give a special thanks to everyone who contributes with PRs: @anjiro (#168, #172, #180, #186, #193, #196, #197, #201), @digital-carver (#169), @savq (#174), @Ginner (#182, #185), @jeffmm (#192), @MosaicMan (#198), @endter (#204), @agorf (#210, #211), @aignas (#173, #216), @jgilchrist (#221), @troiganto (#247, #248), @Alanxyz (#259).
wiki.vim v0.4
This is a small release, but it brings a breaking change: The list functionality is now separated from wiki.vim into its own plugin, lists.vim. This change is warranted, as wiki.vim is meant to handle links, not lists. For more info, see the discussion in #131.
After updating to this release, please consider to add the lists.vim
plugin if those features were useful for you.
wiki.vim v0.3
This is a minor release with a few improvements, changes, and fixes:
Features
- Add support for Windows and handle
&shellescape
issues (#151, #153, #156, #158) - Allow custom fzf options for
:WikiFzfPages
throughg:wiki_fzf_pages_opts
(#157) - Add command and mapping to set link text from header of the target page (#149):
:WikiLinkExctractHeader
<plug>(wiki-link-extract-header)
(by default<leader>wlh
)
Fixes
- Fixed issue where wiki.vim overrides user mappings (#159)
- Fixed some minor issues with
:WikiFzfPages
(#155) - Fixed issue with adoc link parsing (#135)
- Fixed an issue with list move up/down (
wiki#list#move
)
Other
- Some improvements to the docs
- Improved the link matcher code
Thank you to everyone who has contributed with issues/bug reports/feature suggestions!
wiki.vim v0.2
It's time for a new release. There's been a lot of changes, mostly minor fixes, rebasing, maintenance, and improvements to the docs. Some of the more significant updates:
- Use more proper language: e.g. "follow a link" instead of "open a link" and "file handler" instead of "file opener"
- Changed: Renamed option
g:wiki_file_open
tog:wiki_file_handler
- Changed: Renamed event
WikiLinkOpened
toWikiLinkFollowed
- Changed: Renamed option
- Added
:WikiGraphCheckLinks
(#145) - Added
:WikiListMove(Up|Down)
- Added event
WikiBufferInitialized
- Added option
g:wiki_global_load
to allow to disable loading wiki.vim outside theg:wiki_root
specified wiki (#132) - Added option
g:wiki_link_toggles
to allow custom toggles (#72) - Added option
g:wiki_resolver
, allows to override the wiki page resolver (#148) - Added completion source for
coc.nvim
- Added initial support for asciidoc links (#112, #110)
- Improved
:WikiFzfPages
- e.g. allow to create new notes (#133, #143) - Improved
:WikiPageRename
- it now supports new directories (#108) - Improved chooser UI
- Improved option
g:wiki_root
- more consistent (#78)
There were ~200 commits, so there's a lot more updates since v0.1. Thank you to everyone who has contributed!
I'll aim to make the releases more frequent in the future, so that I can better describe all the important changes.
wiki.vim v0.1
This is the first release of wiki.vim. The current version should generally work well. In the future, breaking changes and major updates will lead to new releases.