vimwiki

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

commit eb00d30d9b1d77c6252863cc18b68bb2893ead69
parent c8d09d7c9e1359c618b96e72abab90daefd7aa3a
Author: Steven Stallion <sstallion@gmail.com>
Date:   Thu, 12 Jul 2018 08:47:47 -0500

Initial commit

Diffstat:
Mautoload/vimwiki/base.vim | 26++++++++++++++++++++------
Mautoload/vimwiki/vars.vim | 14+++++++++++---
Mdoc/vimwiki.txt | 13+++++++++++++
3 files changed, 44 insertions(+), 9 deletions(-)

diff --git a/autoload/vimwiki/base.vim b/autoload/vimwiki/base.vim @@ -197,7 +197,10 @@ function! vimwiki#base#resolve_link(link_text, ...) \ vimwiki#vars#get_wikilocal('ext', link_infos.index) endif else - let link_infos.filename .= vimwiki#vars#get_wikilocal('ext', link_infos.index) + let ext = fnamemodify(link_text, ':e') + if ext == '' " append ext iff one not already present + let link_infos.filename .= vimwiki#vars#get_wikilocal('ext', link_infos.index) + endif endif elseif link_infos.scheme ==# 'diary' @@ -350,9 +353,15 @@ function! vimwiki#base#generate_links() for link in links let abs_filepath = vimwiki#path#abs_path_of_link(link) if !s:is_diary_file(abs_filepath) - call add(lines, bullet. - \ s:safesubstitute(vimwiki#vars#get_global('WikiLinkTemplate1'), - \ '__LinkUrl__', link, '')) + if vimwiki#vars#get_wikilocal('syntax') == 'markdown' + let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink1Template') + else + let link_tpl = vimwiki#vars#get_global('WikiLinkTemplate1') + endif + + let entry = s:safesubstitute(link_tpl, '__LinkUrl__', link, '') + let entry = s:safesubstitute(entry, '__LinkDescription__', link, '') + call add(lines, bullet. entry) endif endfor @@ -598,7 +607,12 @@ function! s:get_links(wikifile, idx) endif let syntax = vimwiki#vars#get_wikilocal('syntax', a:idx) - let rx_link = vimwiki#vars#get_syntaxlocal('wikilink', syntax) + if syntax == 'markdown' + let rx_link = vimwiki#vars#get_syntaxlocal('rxWeblink1MatchUrl', syntax) + else + let rx_link = vimwiki#vars#get_syntaxlocal('wikilink', syntax) + endif + let links = [] let lnum = 0 @@ -1870,7 +1884,7 @@ function! vimwiki#base#table_of_contents(create) let bullet = vimwiki#lst#default_symbol().' ' for [lvl, link, desc] in complete_header_infos if vimwiki#vars#get_wikilocal('syntax') == 'markdown' - let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink1Template') + let link_tpl = vimwiki#vars#get_syntaxlocal('Weblink2Template') else let link_tpl = vimwiki#vars#get_global('WikiLinkTemplate2') endif diff --git a/autoload/vimwiki/vars.vim b/autoload/vimwiki/vars.vim @@ -168,6 +168,7 @@ function! s:read_global_settings_from_user() \ 'listsyms': {'type': type(''), 'default': ' .oOX', 'min_length': 2}, \ 'listsym_rejected': {'type': type(''), 'default': '-', 'length': 1}, \ 'map_prefix': {'type': type(''), 'default': '<Leader>w'}, + \ 'markdown_link_ext': {'type': type(0), 'default': 0, 'min': 0, 'max': 1}, \ 'menu': {'type': type(''), 'default': 'Vimwiki'}, \ 'table_auto_fmt': {'type': type(0), 'default': 1, 'min': 0, 'max': 1}, \ 'table_mappings': {'type': type(0), 'default': 1, 'min': 0, 'max': 1}, @@ -689,10 +690,17 @@ function! s:populate_extra_markdown_vars() let mkd_syntax.rxWeblink1Prefix = '[' let mkd_syntax.rxWeblink1Suffix = ')' let mkd_syntax.rxWeblink1Separator = '](' + let mkd_syntax.rxWeblink1Ext = '' + if vimwiki#vars#get_global('markdown_link_ext') + let mkd_syntax.rxWeblink1Ext = vimwiki#vars#get_wikilocal('ext') + endif " [DESCRIPTION](URL) let mkd_syntax.Weblink1Template = mkd_syntax.rxWeblink1Prefix . '__LinkDescription__'. - \ mkd_syntax.rxWeblink1Separator. '__LinkUrl__'. + \ mkd_syntax.rxWeblink1Separator. '__LinkUrl__'. mkd_syntax.rxWeblink1Ext. \ mkd_syntax.rxWeblink1Suffix + " [DESCRIPTION](ANCHOR) + let mkd_syntax.Weblink2Template = mkd_syntax.rxWeblink1Prefix . '__LinkDescription__'. + \ mkd_syntax.rxWeblink1Separator. '__LinkUrl__'. mkd_syntax.rxWeblink1Suffix let valid_chars = '[^\\]' @@ -705,8 +713,8 @@ function! s:populate_extra_markdown_vars() " 1. [DESCRIPTION](URL) " 1a) match [DESCRIPTION](URL) let mkd_syntax.rxWeblink1 = mkd_syntax.rxWeblink1Prefix. - \ mkd_syntax.rxWeblink1Url . mkd_syntax.rxWeblink1Separator. - \ mkd_syntax.rxWeblink1Descr . mkd_syntax.rxWeblink1Suffix + \ mkd_syntax.rxWeblink1Descr . mkd_syntax.rxWeblink1Separator. + \ mkd_syntax.rxWeblink1Url . mkd_syntax.rxWeblink1Suffix " 1b) match URL within [DESCRIPTION](URL) let mkd_syntax.rxWeblink1MatchUrl = mkd_syntax.rxWeblink1Prefix. \ mkd_syntax.rxWeblink1Descr. mkd_syntax.rxWeblink1Separator. diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt @@ -2554,6 +2554,19 @@ Default: 1 ------------------------------------------------------------------------------ +*g:vimwiki_markdown_link_ext* + +Append wiki file extension to links in Markdown. This is needed for +compatibility with other Markdown tools. + +Value Description~ +0 Do not append wiki file extension. +1 Append wiki file extension. + +Default: 0 + + +------------------------------------------------------------------------------ *VimwikiLinkHandler* A customizable link handler can be defined to override Vimwiki's behavior when