From 8507c9571680882e1e808ac251cba2d5562e0b4f Mon Sep 17 00:00:00 2001 From: Michael Thessel Date: Thu, 5 Jan 2017 22:01:48 -0800 Subject: [PATCH 1/2] Added config option to allow for newlines in text when exporting to HTML --- autoload/vimwiki/html.vim | 6 +++++- doc/vimwiki.txt | 13 +++++++++++++ plugin/vimwiki.vim | 1 + 3 files changed, 19 insertions(+), 1 deletion(-) diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim index 584985f..a35e422 100644 --- a/autoload/vimwiki/html.vim +++ b/autoload/vimwiki/html.vim @@ -979,7 +979,11 @@ function! s:process_tag_para(line, para) "{{{ let para = 1 endif let processed = 1 - call add(lines, a:line) + if g:vimwiki_text_ignore_newline == 1 + call add(lines, a:line) + else + call add(lines, a:line."
") + endif elseif para && a:line =~# '^\s*$' call add(lines, "

") let para = 0 diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt index 9cc5dd9..08cf581 100644 --- a/doc/vimwiki.txt +++ b/doc/vimwiki.txt @@ -2302,6 +2302,19 @@ Value Description~ Default: 1 +------------------------------------------------------------------------------ +*g:vimwiki_text_ignore_newline* + +This is HTML related. +Convert newlines to
s in text. + +Value Description~ +0 Newlines in text are converted to
s. +1 Ignore newlines. + +Default: 1 + + ------------------------------------------------------------------------------ *g:vimwiki_use_calendar* diff --git a/plugin/vimwiki.vim b/plugin/vimwiki.vim index d7abb6c..ddb4b35 100644 --- a/plugin/vimwiki.vim +++ b/plugin/vimwiki.vim @@ -369,6 +369,7 @@ call s:default('ext2syntax', {}) " syntax map keyed on extension call s:default('hl_headers', 0) call s:default('hl_cb_checked', 0) call s:default('list_ignore_newline', 1) +call s:default('text_ignore_newline', 1) call s:default('listsyms', ' .oOX') call s:default('use_calendar', 1) call s:default('table_mappings', 1) From c857be2f8742ff812794498e4d371dd74d668340 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Michael=20F=2E=20Sch=C3=B6nitzer?= Date: Sun, 22 Jan 2017 20:16:10 +0100 Subject: [PATCH 2/2] Allow g:vimwiki_listsyms be larger than 5 elements (Issue #275) (#279) * Allow g:vimwiki_listsyms to be of arbitrary size * Update documentation * Add support for arbitrary size listsyms to vimwikihtml --- autoload/vimwiki/html.vim | 6 +++++- autoload/vimwiki/lst.vim | 13 ++++++------- doc/vimwiki.txt | 4 ++-- syntax/vimwiki.vim | 2 +- syntax/vimwiki_default.vim | 2 +- syntax/vimwiki_markdown.vim | 2 +- syntax/vimwiki_media.vim | 2 +- 7 files changed, 17 insertions(+), 14 deletions(-) diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim index 584985f..957fa97 100644 --- a/autoload/vimwiki/html.vim +++ b/autoload/vimwiki/html.vim @@ -860,7 +860,11 @@ function! s:process_tag_list(line, lists) "{{{ let chk = matchlist(a:line, a:rx_list) if !empty(chk) && len(chk[1]) > 0 let completion = index(g:vimwiki_listsyms_list, chk[1]) - if completion >= 0 && completion <=4 + let n = len(g:vimwiki_listsyms_list) + if completion == 0 + let st_tag = '
  • ' + elseif completion > 0 && completion < n + let completion = float2nr(round(completion / (n-1.0) * 3.0 + 0.5 )) let st_tag = '
  • ' endif endif diff --git a/autoload/vimwiki/lst.vim b/autoload/vimwiki/lst.vim index ee465e4..4a75f3f 100644 --- a/autoload/vimwiki/lst.vim +++ b/autoload/vimwiki/lst.vim @@ -693,7 +693,8 @@ function! s:get_rate(item) "{{{ return -1 endif let state = a:item.cb - return index(g:vimwiki_listsyms_list, state) * 25 + let n=len(g:vimwiki_listsyms_list) + return index(g:vimwiki_listsyms_list, state) * 100/(n-1) endfunction "}}} "Set state of the list item to [ ] or [o] or whatever @@ -729,16 +730,14 @@ endfunction "}}} "Returns: the appropriate symbol for a given percent rate function! s:rate_to_state(rate) "{{{ let state = '' + let n=len(g:vimwiki_listsyms_list) if a:rate == 100 - let state = g:vimwiki_listsyms_list[4] + let state = g:vimwiki_listsyms_list[n-1] elseif a:rate == 0 let state = g:vimwiki_listsyms_list[0] - elseif a:rate >= 67 - let state = g:vimwiki_listsyms_list[3] - elseif a:rate >= 34 - let state = g:vimwiki_listsyms_list[2] else - let state = g:vimwiki_listsyms_list[1] + let index = float2nr(ceil(a:rate/100.0*(n-2))) + let state = g:vimwiki_listsyms_list[index] endif return state endfunction "}}} diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt index 9cc5dd9..5a56331 100644 --- a/doc/vimwiki.txt +++ b/doc/vimwiki.txt @@ -2245,11 +2245,11 @@ Default: 'Vimwiki' ------------------------------------------------------------------------------ *g:vimwiki_listsyms* -String of 5 symbols to show the progression of todo list items. +String of at least two symbols to show the progression of todo list items. Default value is ' .oOX'. The first char is for 0% done items. -The fifth is for 100% done items. +The last is for 100% done items. You can set it to some more fancy symbols like this: > diff --git a/syntax/vimwiki.vim b/syntax/vimwiki.vim index 0669fa7..ba500c5 100644 --- a/syntax/vimwiki.vim +++ b/syntax/vimwiki.vim @@ -413,7 +413,7 @@ execute 'syntax match VimwikiList /'.g:vimwiki_rxListDefine.'/' execute 'syntax match VimwikiListTodo /'.g:vimwiki_rxListItem.'/' if g:vimwiki_hl_cb_checked == 1 - execute 'syntax match VimwikiCheckBoxDone /'.g:vimwiki_rxListItemWithoutCB.'\s*\['.g:vimwiki_listsyms_list[4].'\]\s.*$/ '. + execute 'syntax match VimwikiCheckBoxDone /'.g:vimwiki_rxListItemWithoutCB.'\s*\['.g:vimwiki_listsyms_list[-1].'\]\s.*$/ '. \ 'contains=VimwikiNoExistsLink,VimwikiLink,@Spell' elseif g:vimwiki_hl_cb_checked == 2 execute 'syntax match VimwikiCheckBoxDone /'.g:vimwiki_rxListItemAndChildren.'/ contains=VimwikiNoExistsLink,VimwikiLink,@Spell' diff --git a/syntax/vimwiki_default.vim b/syntax/vimwiki_default.vim index 6150f99..a90ea20 100644 --- a/syntax/vimwiki_default.vim +++ b/syntax/vimwiki_default.vim @@ -80,7 +80,7 @@ call vimwiki#lst#setup_marker_infos() let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' let g:vimwiki_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.']\)\]\s\)\?' -let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[4].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*' +let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*' " Preformatted text let g:vimwiki_rxPreStart = '{{{' diff --git a/syntax/vimwiki_markdown.vim b/syntax/vimwiki_markdown.vim index c32c7d7..3ae9da0 100644 --- a/syntax/vimwiki_markdown.vim +++ b/syntax/vimwiki_markdown.vim @@ -77,7 +77,7 @@ call vimwiki#lst#setup_marker_infos() let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' let g:vimwiki_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.']\)\]\s\)\?' -let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[4].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*' +let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\s.*\%(\n\%(\1\s.*\|^$\)\)*' " Preformatted text let g:vimwiki_rxPreStart = '```' diff --git a/syntax/vimwiki_media.vim b/syntax/vimwiki_media.vim index 9c0498e..a6f8e4a 100644 --- a/syntax/vimwiki_media.vim +++ b/syntax/vimwiki_media.vim @@ -58,7 +58,7 @@ call vimwiki#lst#setup_marker_infos() let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' let g:vimwiki_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.']\)\]\s\)\?' -let g:vimwiki_rxListItemAndChildren = '^\('.g:vimwiki_rxListBullet.'\)\s\+\['.g:vimwiki_listsyms_list[4].'\]\s.*\%(\n\%(\1\%('.g:vimwiki_rxListBullet.'\).*\|^$\|\s.*\)\)*' +let g:vimwiki_rxListItemAndChildren = '^\('.g:vimwiki_rxListBullet.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\s.*\%(\n\%(\1\%('.g:vimwiki_rxListBullet.'\).*\|^$\|\s.*\)\)*' " Preformatted text let g:vimwiki_rxPreStart = '
    '