vimwiki

Personal wiki for vim
git clone https://github.com/vimwiki/vimwiki.git
Log | Files | Refs | README | LICENSE

commit c19e63b1e934b57b411c9b93839073c2d341049c
parent ee31d45553a7b6cdada5db2ac5f3983c732a7927
Author: Philipp Oberdiek <philipp.oberdiek@gmail.com>
Date:   Sat, 18 Dec 2021 16:11:01 +0100

Make tag links relative to current file #794 (#1162)

Also add a vader test case and update the changelog as well as the list
of contributors.

Co-authored-by: Tinmarino <tinmarino@gmail.com>
Diffstat:
Mautoload/vimwiki/tags.vim | 2++
Mdoc/vimwiki.txt | 2++
Mtest/tag.vader | 74++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++++
3 files changed, 78 insertions(+), 0 deletions(-)

diff --git a/autoload/vimwiki/tags.vim b/autoload/vimwiki/tags.vim @@ -345,6 +345,7 @@ function! vimwiki#tags#generate_tags(create, ...) abort let lines = [] let bullet = repeat(' ', vimwiki#lst#get_list_margin()).vimwiki#lst#default_symbol().' ' + let current_dir = vimwiki#base#current_subdir() for tagname in sort(keys(tags_entries)) if need_all_tags || index(self.specific_tags, tagname) != -1 if len(lines) > 0 @@ -361,6 +362,7 @@ function! vimwiki#tags#generate_tags(create, ...) abort endif for taglink in sort(tags_entries[tagname]) + let taglink = vimwiki#path#relpath(current_dir, taglink) if vimwiki#vars#get_wikilocal('syntax') ==# 'markdown' let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink3Template') let link_infos = vimwiki#base#resolve_link(taglink) diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt @@ -3968,6 +3968,7 @@ Contributors and their Github usernames in roughly chronological order: - Stefan Schuhbäck (@stefanSchuhbaeck) - Vinny Furia (@vinnyfuria) - paperbenni (@paperbenni) + - Philipp Oberdiek (@RonMcKay) - Lily Foster (@lilyinstarlight) - Jean-Luc Bastarache (@jlbas) - Youssof Taha (@ysftaha) @@ -4077,6 +4078,7 @@ Fixed:~ * PR #1030: Allow overwriting insert mode mappings * PR #1057: Fix renaming, updating link, and exporting HTML subdir wrong Fix resolve subdir return wrong path in Windows + * Issue #794: Fix: Generated tag links are build wrong * Issue #763: Links opening in qutebrowser multiple times on Linux diff --git a/test/tag.vader b/test/tag.vader @@ -205,3 +205,77 @@ Execute (Clean Test-Tag and .vimwiki_tags -1 ): call DeleteHiddenBuffers() # vim: sw=2:foldlevel=30:foldmethod=marker: + +###################################################################### +Execute (Check first tags file): + call system("mkdir -p $HOME/testmarkdown/subdir1/subdir11") + edit $HOME/testmarkdown/Test-Tag-1.md + AssertEqual $HOME . '/testmarkdown/Test-Tag-1.md', expand('%') + AssertEqual 'markdown', vimwiki#vars#get_wikilocal('syntax') + AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr') + +Do (Build first tags file): + :edit $HOME/testmarkdown/Test-Tag-1.md\<Cr> + ggI + # A Header\<Cr> + :header-tag-1:\<Cr> + \<Cr> + # Another Header\<Cr> + :header-tag-2:\<Cr> + \<Cr> + :standalone-tag-1: + \<Esc> + :write\<Cr> + :VimwikiRebuildTags!\<CR> + +Execute (Check second tags file): + edit $HOME/testmarkdown/subdir1/Test-Tag-2.md + AssertEqual $HOME . '/testmarkdown/subdir1/Test-Tag-2.md', expand('%') + AssertEqual 'markdown', vimwiki#vars#get_wikilocal('syntax') + AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr') + +Do (Build second tags file): + :edit $HOME/testmarkdown/subdir1/Test-Tag-2.md\<Cr> + ggI + # A Header\<Cr> + :header-tag-1:\<Cr> + \<Cr> + # Another Header\<Cr> + :header-tag-2:\<Cr> + \<Cr> + :standalone-tag-1: + \<Esc> + :write\<Cr> + :VimwikiRebuildTags!\<CR> + +Execute (Build tag links in third file): + edit $HOME/testmarkdown/subdir1/subdir11/Test-Tag-Links.md + AssertEqual $HOME . '/testmarkdown/subdir1/subdir11/Test-Tag-Links.md', expand('%') + AssertEqual 'markdown', vimwiki#vars#get_wikilocal('syntax') + AssertEqual 1, vimwiki#vars#get_bufferlocal('wiki_nr') + VimwikiGenerateTagLinks + write + +Expect (Tag links relative to current file): + + + # Generated Tags + + ## header-tag-1 + + - [a-header](../../Test-Tag-1#a-header) + - [a-header](../Test-Tag-2#a-header) + + ## header-tag-2 + + - [another-header](../../Test-Tag-1#another-header) + - [another-header](../Test-Tag-2#another-header) + + ## standalone-tag-1 + + - [standalone-tag-1](../../Test-Tag-1#standalone-tag-1) + - [standalone-tag-1](../Test-Tag-2#standalone-tag-1) + +Execute (Clean relative tag setup): + call system("rm -rf $HOME/testmarkdown/subdir1") + call system("rm $HOME/testmarkdown/Test-Tag-1.md")