Fix Renaming and HTML Exporting Issue (#1057)
On Windows. Commits squashed from first to be committed to most recent: * fix subdir not correct when path using `\` * fix slice by variable value not supported in vim 7.3 * remove last '\' from path in CustomWiki2HTML * fix CSS path in CustomWiki2HTML wrong * remove unused confirm CustomWiki2HTML * use ==# rather than == in shellescape html.vim * remove "FIXME this can terminate in the middle of a path component! from base#subdir * update doc/vimwiki.txt * update contributor to doc/vimwiki.txt * add comment in html#shellescape
This commit is contained in:
committed by
GitHub
parent
d34abf9fa5
commit
61a6ce6686
@@ -62,12 +62,18 @@ function! vimwiki#base#subdir(path, filename) abort
|
|||||||
let filename = a:filename
|
let filename = a:filename
|
||||||
endif
|
endif
|
||||||
let idx = 0
|
let idx = 0
|
||||||
"FIXME this can terminate in the middle of a path component!
|
let pathelement = split(path, '[/\\]')
|
||||||
while path[idx] ==? filename[idx]
|
let fileelement = split(filename, '[/\\]')
|
||||||
|
let minlen = min([len(pathelement), len(fileelement)])
|
||||||
|
let p = fileelement[:]
|
||||||
|
while pathelement[idx] ==? fileelement[idx]
|
||||||
|
let p = p[1:]
|
||||||
let idx = idx + 1
|
let idx = idx + 1
|
||||||
|
if idx == minlen
|
||||||
|
break
|
||||||
|
endif
|
||||||
endwhile
|
endwhile
|
||||||
|
|
||||||
let p = split(strpart(filename, idx), '[/\\]')
|
|
||||||
let res = join(p[:-2], '/')
|
let res = join(p[:-2], '/')
|
||||||
if len(res) > 0
|
if len(res) > 0
|
||||||
let res = res.'/'
|
let res = res.'/'
|
||||||
|
|||||||
@@ -1679,26 +1679,34 @@ function! s:use_custom_wiki2html() abort
|
|||||||
\ (s:file_exists(custom_wiki2html) || s:binary_exists(custom_wiki2html))
|
\ (s:file_exists(custom_wiki2html) || s:binary_exists(custom_wiki2html))
|
||||||
endfunction
|
endfunction
|
||||||
|
|
||||||
|
function! s:shellescape(str) abort
|
||||||
|
let result = a:str
|
||||||
|
"" This fix CustomWiki2HTML at root dir problem in Windows
|
||||||
|
if result[len(result) - 1] ==# '\'
|
||||||
|
let result = result[:-2]
|
||||||
|
endif
|
||||||
|
return shellescape(result)
|
||||||
|
endfunction
|
||||||
|
|
||||||
function! vimwiki#html#CustomWiki2HTML(path, wikifile, force) abort
|
function! vimwiki#html#CustomWiki2HTML(root_path, path, wikifile, force) abort
|
||||||
call vimwiki#path#mkdir(a:path)
|
call vimwiki#path#mkdir(a:path)
|
||||||
let output = system(vimwiki#vars#get_wikilocal('custom_wiki2html'). ' '.
|
let output = system(vimwiki#vars#get_wikilocal('custom_wiki2html'). ' '.
|
||||||
\ a:force. ' '.
|
\ a:force. ' '.
|
||||||
\ vimwiki#vars#get_wikilocal('syntax'). ' '.
|
\ vimwiki#vars#get_wikilocal('syntax'). ' '.
|
||||||
\ strpart(vimwiki#vars#get_wikilocal('ext'), 1). ' '.
|
\ strpart(vimwiki#vars#get_wikilocal('ext'), 1). ' '.
|
||||||
\ shellescape(a:path). ' '.
|
\ s:shellescape(a:path). ' '.
|
||||||
\ shellescape(a:wikifile). ' '.
|
\ s:shellescape(a:wikifile). ' '.
|
||||||
\ shellescape(s:default_CSS_full_name(a:path)). ' '.
|
\ s:shellescape(s:default_CSS_full_name(a:root_path)). ' '.
|
||||||
\ (len(vimwiki#vars#get_wikilocal('template_path')) > 1 ?
|
\ (len(vimwiki#vars#get_wikilocal('template_path')) > 1 ?
|
||||||
\ shellescape(expand(vimwiki#vars#get_wikilocal('template_path'))) : '-'). ' '.
|
\ s:shellescape(expand(vimwiki#vars#get_wikilocal('template_path'))) : '-'). ' '.
|
||||||
\ (len(vimwiki#vars#get_wikilocal('template_default')) > 0 ?
|
\ (len(vimwiki#vars#get_wikilocal('template_default')) > 0 ?
|
||||||
\ vimwiki#vars#get_wikilocal('template_default') : '-'). ' '.
|
\ vimwiki#vars#get_wikilocal('template_default') : '-'). ' '.
|
||||||
\ (len(vimwiki#vars#get_wikilocal('template_ext')) > 0 ?
|
\ (len(vimwiki#vars#get_wikilocal('template_ext')) > 0 ?
|
||||||
\ vimwiki#vars#get_wikilocal('template_ext') : '-'). ' '.
|
\ vimwiki#vars#get_wikilocal('template_ext') : '-'). ' '.
|
||||||
\ (len(vimwiki#vars#get_bufferlocal('subdir')) > 0 ?
|
\ (len(vimwiki#vars#get_bufferlocal('subdir')) > 0 ?
|
||||||
\ shellescape(s:root_path(vimwiki#vars#get_bufferlocal('subdir'))) : '-'). ' '.
|
\ s:shellescape(s:root_path(vimwiki#vars#get_bufferlocal('subdir'))) : '-'). ' '.
|
||||||
\ (len(vimwiki#vars#get_wikilocal('custom_wiki2html_args')) > 0 ?
|
\ (len(vimwiki#vars#get_wikilocal('custom_wiki2html_args')) > 0 ?
|
||||||
\ vimwiki#vars#get_wikilocal('custom_wiki2html_args') : '-'))
|
\ vimwiki#vars#get_wikilocal('custom_wiki2html_args') : '-'))
|
||||||
" Print if non void
|
" Print if non void
|
||||||
if output !~? '^\s*$'
|
if output !~? '^\s*$'
|
||||||
call vimwiki#u#echo(string(output))
|
call vimwiki#u#echo(string(output))
|
||||||
@@ -1850,13 +1858,14 @@ endfunction
|
|||||||
|
|
||||||
function! s:convert_file(path_html, wikifile) abort
|
function! s:convert_file(path_html, wikifile) abort
|
||||||
let done = 0
|
let done = 0
|
||||||
|
let root_path_html = a:path_html
|
||||||
let wikifile = fnamemodify(a:wikifile, ':p')
|
let wikifile = fnamemodify(a:wikifile, ':p')
|
||||||
let path_html = expand(a:path_html).vimwiki#vars#get_bufferlocal('subdir')
|
let path_html = expand(a:path_html).vimwiki#vars#get_bufferlocal('subdir')
|
||||||
let htmlfile = fnamemodify(wikifile, ':t:r').'.html'
|
let htmlfile = fnamemodify(wikifile, ':t:r').'.html'
|
||||||
|
|
||||||
if s:use_custom_wiki2html()
|
if s:use_custom_wiki2html()
|
||||||
let force = 1
|
let force = 1
|
||||||
call vimwiki#html#CustomWiki2HTML(path_html, wikifile, force)
|
call vimwiki#html#CustomWiki2HTML(root_path_html, path_html, wikifile, force)
|
||||||
let done = 1
|
let done = 1
|
||||||
return path_html . htmlfile
|
return path_html . htmlfile
|
||||||
endif
|
endif
|
||||||
|
|||||||
@@ -3892,6 +3892,7 @@ Contributors and their Github usernames in roughly chronological order:
|
|||||||
- Amit Beka (@amitbeka)
|
- Amit Beka (@amitbeka)
|
||||||
- Yuuy Wei
|
- Yuuy Wei
|
||||||
- Yifan Hu (@yhu266)
|
- Yifan Hu (@yhu266)
|
||||||
|
- Levi Rizki Saputra (@levirs565)
|
||||||
|
|
||||||
==============================================================================
|
==============================================================================
|
||||||
16. Changelog *vimwiki-changelog*
|
16. Changelog *vimwiki-changelog*
|
||||||
@@ -3946,6 +3947,8 @@ New:~
|
|||||||
Changed:~
|
Changed:~
|
||||||
* PR #1047: Allow to replace default mapping of VimwikiToggleListItem
|
* PR #1047: Allow to replace default mapping of VimwikiToggleListItem
|
||||||
* VimwikiCheckLinks work on current wiki or on range
|
* VimwikiCheckLinks work on current wiki or on range
|
||||||
|
* PR #1057: Change how resolve subdir work
|
||||||
|
Change how shell escaping work when using CustomWiki2HTML
|
||||||
|
|
||||||
Removed:~
|
Removed:~
|
||||||
|
|
||||||
@@ -3977,6 +3980,8 @@ Fixed:~
|
|||||||
* PR #959: Fix :VimwikiNextTask
|
* PR #959: Fix :VimwikiNextTask
|
||||||
* PR #986: Fix typo in help file
|
* PR #986: Fix typo in help file
|
||||||
* PR #1030: Allow overwriting insert mode mappings
|
* 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
|
||||||
|
|
||||||
|
|
||||||
2.5 (2020-05-26)~
|
2.5 (2020-05-26)~
|
||||||
|
|||||||
Reference in New Issue
Block a user