commit aff0258d03c811cfe030fdad28404673243dd548
parent 750b3171b321872c17b88237db12822fc3e8c264
Author: Rane Brown <ranebrown@users.noreply.github.com>
Date: Sat, 13 Apr 2019 06:42:04 -0600
Merge pull request #665 from patrickdavey/dev
Add html_filename_parameterization option.
Diffstat:
3 files changed, 54 insertions(+), 4 deletions(-)
diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim
@@ -239,8 +239,15 @@ function! s:is_html_uptodate(wikifile)
endif
let wikifile = fnamemodify(a:wikifile, ":p")
- let htmlfile = expand(vimwiki#vars#get_wikilocal('path_html') .
- \ vimwiki#vars#get_bufferlocal('subdir') . fnamemodify(wikifile, ":t:r").".html")
+
+ if vimwiki#vars#get_wikilocal('html_filename_parameterization')
+ let parameterized_wikiname = s:parameterized_wikiname(wikifile)
+ let htmlfile = expand(vimwiki#vars#get_wikilocal('path_html') .
+ \ vimwiki#vars#get_bufferlocal('subdir') . parameterized_wikiname)
+ else
+ let htmlfile = expand(vimwiki#vars#get_wikilocal('path_html') .
+ \ vimwiki#vars#get_bufferlocal('subdir') . fnamemodify(wikifile, ":t:r").".html")
+ endif
if getftime(wikifile) <= getftime(htmlfile) && tpl_time <= getftime(htmlfile)
return 1
@@ -248,6 +255,15 @@ function! s:is_html_uptodate(wikifile)
return 0
endfunction
+function! s:parameterized_wikiname(wikifile)
+ let initial = fnamemodify(a:wikifile, ":t:r")
+ let lower_sanitized = tolower(initial)
+ let substituted = substitute(lower_sanitized, '[^a-z0-9_-]\+',"-", "g")
+ let substituted = substitute(substituted, '\-\+',"-", "g")
+ let substituted = substitute(substituted, '^-', '', "g")
+ let substituted = substitute(substituted, '-$', '', "g")
+ return substitute(substituted, '\-\+',"-", "g") . ".html"
+endfunction
function! s:html_insert_contents(html_lines, content)
let lines = []
@@ -1614,8 +1630,10 @@ function! vimwiki#html#WikiAll2HTML(path_html)
let path_html = expand(a:path_html)
call vimwiki#path#mkdir(path_html)
- echomsg 'Vimwiki: Deleting non-wiki html files ...'
- call s:delete_html_files(path_html)
+ if !vimwiki#vars#get_wikilocal('html_filename_parameterization')
+ echomsg 'Vimwiki: Deleting non-wiki html files ...'
+ call s:delete_html_files(path_html)
+ endif
echomsg 'Vimwiki: Converting wiki to html files ...'
let setting_more = &more
diff --git a/autoload/vimwiki/vars.vim b/autoload/vimwiki/vars.vim
@@ -281,6 +281,7 @@ function! s:populate_wikilocal_options()
\ 'template_default': {'type': type(''), 'default': 'default', 'min_length': 1},
\ 'template_ext': {'type': type(''), 'default': '.tpl'},
\ 'template_path': {'type': type(''), 'default': $HOME . '/vimwiki/templates/'},
+ \ 'html_filename_parameterization': {'type': type(0), 'default': 0, 'min': 0, 'max': 1},
\ }
let g:vimwiki_wikilocal_vars = []
diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt
@@ -1802,6 +1802,16 @@ Get it from http://www.vim.org/scripts/script.php?script_id=52
See |g:vimwiki_use_calendar| option to turn it off/on.
+------------------------------------------------------------------------------
+Markdown export
+
+If you use markdown as the syntax for your wiki, there is a rubygem available
+at https://github.com/patrickdavey/vimwiki_markdown which you can use to
+convert the wiki markdown files into html.
+
+Also See |vimwiki-option-html_filename_parameterization| for supporting
+functionality.
+
==============================================================================
11. Anchors *vimwiki-anchors*
@@ -2427,6 +2437,21 @@ generating links: >
let g:vimwiki_list = [{'path': '~/my_site/', 'exclude_files': ['**/README.md']}]
+*vimwiki-option-html_filename_parameterization*
+------------------------------------------------------------------------------
+Key Default value Values~
+html_filename_parameterization 0 0, 1
+
+Description~
+This setting is for integration with the vimwiki_markdown gem. If this is set
+to 1 it alters the check for generated html filenames to match what
+vimwiki_markdown generates. This means that it prevents unnecessary
+regeneration of HTML files.
+
+This setting also turns off the automatic deletion of files
+in the site_html directory which don't match existing wiki files.
+
+
------------------------------------------------------------------------------
12.4 Global Options *vimwiki-global-options*
@@ -3256,6 +3281,12 @@ https://github.com/vimwiki-backup/vimwiki/issues.
2.5 (in progress)~
New:~
+ * PR #665: Integration with vimwiki_markdown gem
+ https://github.com/patrickdavey/vimwiki_markdown
+ This provides the |vimwiki-option-html_filename_parameterization|
+ which alters the filenames vimiwiki checks against when running the
+ html conversion. It also disables the deleting of html files which
+ no longer match against a wiki file.
* PR #663: New option |g:vimwiki_conceal_onechar_markers| to control
whether to show or hide single-character format markers.
* PR #636: Wiki local option |vimwiki-option-exclude_files| which is