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 = ''