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:
Levi Rizki Saputra
2021-02-05 18:58:02 +07:00
committed by GitHub
parent d34abf9fa5
commit 61a6ce6686
3 changed files with 31 additions and 11 deletions
+9 -3
View File
@@ -62,12 +62,18 @@ function! vimwiki#base#subdir(path, filename) abort
let filename = a:filename
endif
let idx = 0
"FIXME this can terminate in the middle of a path component!
while path[idx] ==? filename[idx]
let pathelement = split(path, '[/\\]')
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
if idx == minlen
break
endif
endwhile
let p = split(strpart(filename, idx), '[/\\]')
let res = join(p[:-2], '/')
if len(res) > 0
let res = res.'/'
+16 -7
View File
@@ -1679,24 +1679,32 @@ function! s:use_custom_wiki2html() abort
\ (s:file_exists(custom_wiki2html) || s:binary_exists(custom_wiki2html))
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)
let output = system(vimwiki#vars#get_wikilocal('custom_wiki2html'). ' '.
\ a:force. ' '.
\ vimwiki#vars#get_wikilocal('syntax'). ' '.
\ strpart(vimwiki#vars#get_wikilocal('ext'), 1). ' '.
\ shellescape(a:path). ' '.
\ shellescape(a:wikifile). ' '.
\ shellescape(s:default_CSS_full_name(a:path)). ' '.
\ s:shellescape(a:path). ' '.
\ s:shellescape(a:wikifile). ' '.
\ s:shellescape(s:default_CSS_full_name(a:root_path)). ' '.
\ (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 ?
\ vimwiki#vars#get_wikilocal('template_default') : '-'). ' '.
\ (len(vimwiki#vars#get_wikilocal('template_ext')) > 0 ?
\ vimwiki#vars#get_wikilocal('template_ext') : '-'). ' '.
\ (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 ?
\ vimwiki#vars#get_wikilocal('custom_wiki2html_args') : '-'))
" Print if non void
@@ -1850,13 +1858,14 @@ endfunction
function! s:convert_file(path_html, wikifile) abort
let done = 0
let root_path_html = a:path_html
let wikifile = fnamemodify(a:wikifile, ':p')
let path_html = expand(a:path_html).vimwiki#vars#get_bufferlocal('subdir')
let htmlfile = fnamemodify(wikifile, ':t:r').'.html'
if s:use_custom_wiki2html()
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
return path_html . htmlfile
endif
+5
View File
@@ -3892,6 +3892,7 @@ Contributors and their Github usernames in roughly chronological order:
- Amit Beka (@amitbeka)
- Yuuy Wei
- Yifan Hu (@yhu266)
- Levi Rizki Saputra (@levirs565)
==============================================================================
16. Changelog *vimwiki-changelog*
@@ -3946,6 +3947,8 @@ New:~
Changed:~
* PR #1047: Allow to replace default mapping of VimwikiToggleListItem
* VimwikiCheckLinks work on current wiki or on range
* PR #1057: Change how resolve subdir work
Change how shell escaping work when using CustomWiki2HTML
Removed:~
@@ -3977,6 +3980,8 @@ Fixed:~
* PR #959: Fix :VimwikiNextTask
* PR #986: Fix typo in help file
* 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)~