commit d7ec12645a0460a7d200279c52915e6e080e9869
parent 7cfc3eee2291cec5286e554c29100486a47ee27f
Author: Brennen Bearnes <74990+brennen@users.noreply.github.com>
Date: Mon, 18 Jul 2022 18:08:18 -0600
append extension to links containing "." (fixes #950) (#1236)
If a link contains `.`, then this:
fnamemodify(link_text, ':e')
will return the last .-separated part of the name as extension, and nothing
else will get appended. Instead, we check if the extension is empty _or_
doesn't match the extension for the target wiki, in which case we append
the correct one.
This seems like it works, and might not break anything else, given the
branch of the function that it's in.
Co-authored-by: Brennen Bearnes <code@p1k3.com>
Diffstat:
2 files changed, 4 insertions(+), 2 deletions(-)
diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim
@@ -213,7 +213,6 @@ function! vimwiki#base#resolve_link(link_text, ...) abort
let root_dir = fnamemodify(source_file, ':p:h') . '/'
endif
-
" Extract the other items depending on the scheme
if link_infos.scheme =~# '\mwiki\d\+'
@@ -263,8 +262,10 @@ function! vimwiki#base#resolve_link(link_text, ...) abort
\ vimwiki#vars#get_wikilocal('ext', link_infos.index)
endif
else
+ " append extension iff one not already present or it's not the targeted
+ " wiki extension - https://github.com/vimwiki/vimwiki/issues/950
let ext = fnamemodify(link_text, ':e')
- if ext ==? '' " append ext iff one not already present
+ if ext ==? '' || ext !=? vimwiki#vars#get_wikilocal('ext', link_infos.index)
let link_infos.filename .= vimwiki#vars#get_wikilocal('ext', link_infos.index)
endif
endif
diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt
@@ -4055,6 +4055,7 @@ Changed:~
Removed:~
Fixed:~
+ * Issue #950: Correctly follow links containing .
* PR #1245 / issue #1244: Fix VimwikiBacklinks handling of bracketed links
* Issue #1193: Fix wildcard expansion in |find_autoload_file|
* PR #1108: Fix resolution of leading-slash page links, add link tests