diff --git a/autoload/vimwiki/html.vim b/autoload/vimwiki/html.vim
index 8e863f0..31644d1 100644
--- a/autoload/vimwiki/html.vim
+++ b/autoload/vimwiki/html.vim
@@ -22,15 +22,6 @@ let g:loaded_vimwiki_html_auto = 1
"}}}
" UTILITY "{{{
-function s:get_completion_index(sym) "{{{
- for idx in range(1, 5)
- if match(g:vimwiki_listsyms, '\C\%'.idx.'v'.a:sym) != -1
- return (idx-1)
- endif
- endfor
- return 0
-endfunction "}}}
-
function! s:root_path(subdir) "{{{
return repeat('../', len(split(a:subdir, '[/\\]')))
endfunction "}}}
@@ -843,34 +834,26 @@ endfunction "}}}
function! s:process_tag_list(line, lists) "{{{
- function! s:add_checkbox(line, rx_list, st_tag, en_tag) "{{{
- let st_tag = a:st_tag
- let en_tag = a:en_tag
-
+ function! s:add_checkbox(line, rx_list) "{{{
+ let st_tag = '
'
let chk = matchlist(a:line, a:rx_list)
- if len(chk) > 0
- if len(chk[1])>0
- "wildcard characters are difficult to match correctly
- if chk[1] =~ '[.*\\^$~]'
- let chk[1] ='\'.chk[1]
- endif
- " let completion = match(g:vimwiki_listsyms, '\C' . chk[1])
- let completion = s:get_completion_index(chk[1])
- if completion >= 0 && completion <=4
- let st_tag = ''
- endif
+ if !empty(chk) && len(chk[1]) > 0
+ let completion = index(g:vimwiki_listsyms_list, chk[1])
+ if completion >= 0 && completion <=4
+ let st_tag = ''
endif
endif
- return [st_tag, en_tag]
+ return [st_tag, '']
endfunction "}}}
let in_list = (len(a:lists) > 0)
" If it is not list yet then do not process line that starts from *bold*
" text.
+ " XXX necessary? in *bold* text, no space must follow the first *
if !in_list
- let pos = match(a:line, g:vimwiki_rxBold)
- if pos != -1 && strpart(a:line, 0, pos) =~ '^\s*$'
+ let pos = match(a:line, '^\s*'.g:vimwiki_rxBold)
+ if pos != -1
return [0, []]
endif
endif
@@ -878,16 +861,16 @@ function! s:process_tag_list(line, lists) "{{{
let lines = []
let processed = 0
- if a:line =~ g:vimwiki_rxListBullet
- let lstSym = matchstr(a:line, '[*-]')
+ if a:line =~ '^\s*'.s:bullets.'\s'
+ let lstSym = matchstr(a:line, s:bullets)
let lstTagOpen = ''
- let lstRegExp = g:vimwiki_rxListBullet
- elseif a:line =~ g:vimwiki_rxListNumber
- let lstSym = '#'
+ let lstRegExp = '^\s*'.s:bullets.'\s'
+ elseif a:line =~ '^\s*'.s:numbers.'\s'
+ let lstSym = matchstr(a:line, s:numbers)
let lstTagOpen = ''
let lstTagClose = '
'
- let lstRegExp = g:vimwiki_rxListNumber
+ let lstRegExp = '^\s*'.s:numbers.'\s'
else
let lstSym = ''
let lstTagOpen = ''
@@ -901,9 +884,8 @@ function! s:process_tag_list(line, lists) "{{{
let line = substitute(a:line, '\t', repeat(' ', &tabstop), 'g')
let indent = stridx(line, lstSym)
- let checkbox = '\s*\[\(.\?\)\]\s*'
- let [st_tag, en_tag] = s:add_checkbox(line,
- \ lstRegExp.checkbox, '', '')
+ let checkbox = '\s*\[\(.\)\]\s*'
+ let [st_tag, en_tag] = s:add_checkbox(line, lstRegExp.checkbox)
if !in_list
call add(a:lists, [lstTagClose, indent])
@@ -929,7 +911,7 @@ function! s:process_tag_list(line, lists) "{{{
call add(lines,
\ substitute(a:line, lstRegExp.'\%('.checkbox.'\)\?', '', ''))
let processed = 1
- elseif in_list > 0 && a:line =~ '^\s\+\S\+'
+ elseif in_list && a:line =~ '^\s\+\S\+'
if g:vimwiki_list_ignore_newline
call add(lines, a:line)
else
@@ -1420,6 +1402,11 @@ function! vimwiki#html#Wiki2HTML(path_html, wikifile) "{{{
let s:gt_pattern = '\c\%(\?\%('.tags.'\)\%(\s\{-1}\S\{-}\)\{-}/\?\)\@'
endif
+ " prepare regexps for lists
+ let s:bullets = '[*•-]'
+ let s:numbers =
+ \'\C\%(#\|\d\+)\|\d\+\.\|[ivxlcdm]\+)\|[IVXLCDM]\+)\|\l\{1,2})\|\u\{1,2})\)'
+
for line in lsource
let oldquote = state.quote
let [lines, state] = s:parse_line(line, state)
diff --git a/doc/vimwiki.txt b/doc/vimwiki.txt
index 8f7c78d..76d4572 100644
--- a/doc/vimwiki.txt
+++ b/doc/vimwiki.txt
@@ -847,9 +847,6 @@ or: >
or: >
* Bulleted list item 1
* Bulleted list item 2
-or: >
- # Bulleted list item 1
- # Bulleted list item 2
Ordered lists: >
@@ -876,6 +873,9 @@ or: >
I) Numbered list item 1
II) Numbered list item 2
III) Numbered list item 3
+or: >
+ # Bulleted list item 1 ← will be converted to numbers in HTML
+ # Bulleted list item 2
Note that a space after the list item symbols (-, *, 1. etc.) is essential.
diff --git a/ftplugin/vimwiki.vim b/ftplugin/vimwiki.vim
index cdc68aa..be7b1b2 100644
--- a/ftplugin/vimwiki.vim
+++ b/ftplugin/vimwiki.vim
@@ -144,7 +144,7 @@ endfunction "}}}
" COMMANDS {{{
command! -buffer Vimwiki2HTML
\ silent w
- \ let res = vimwiki#vw2html#Wiki2HTML(expand(VimwikiGet('path_html')),
+ \ let res = vimwiki#html#Wiki2HTML(expand(VimwikiGet('path_html')),
\ expand('%'))
\
\ if res != '' | echo 'Vimwiki: HTML conversion is done.' | endif
@@ -154,7 +154,7 @@ command! -buffer Vimwiki2HTMLBrowse
\ expand(VimwikiGet('path_html')),
\ expand('%')))
command! -buffer VimwikiAll2HTML
- \ call vimwiki#vw2html#WikiAll2HTML(expand(VimwikiGet('path_html')))
+ \ call vimwiki#html#WikiAll2HTML(expand(VimwikiGet('path_html')))
command! -buffer VimwikiNextLink call vimwiki#base#find_next_link()
command! -buffer VimwikiPrevLink call vimwiki#base#find_prev_link()
@@ -530,7 +530,7 @@ if VimwikiGet('auto_export')
" Automatically generate HTML on page write.
augroup vimwiki
au BufWritePost
- \ call vimwiki#vw2html#Wiki2HTML(expand(VimwikiGet('path_html')),
+ \ call vimwiki#html#Wiki2HTML(expand(VimwikiGet('path_html')),
\ expand('%'))
augroup END
endif