Merge pull request #6 from vimwiki/dev

Merge from upstream
This commit is contained in:
Michael F. Schönitzer 2017-11-15 16:35:28 +01:00 committed by GitHub
commit aff1b639df
No known key found for this signature in database
GPG Key ID: 4AEE18F83AFDEB23
13 changed files with 210 additions and 78 deletions

22
LICENSE Normal file
View File

@ -0,0 +1,22 @@
MIT License
Copyright (c) 2008-2010 Maxim Kim
2013-2017 Daniel Schemala
Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal
in the Software without restriction, including without limitation the rights
to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
copies of the Software, and to permit persons to whom the Software is
furnished to do so, subject to the following conditions:
The above copyright notice and this permission notice shall be included in all
copies or substantial portions of the Software.
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
SOFTWARE.

View File

@ -8,6 +8,13 @@ if exists("g:loaded_vimwiki_auto") || &cp
endif endif
let g:loaded_vimwiki_auto = 1 let g:loaded_vimwiki_auto = 1
" s:safesubstitute
function! s:safesubstitute(text, search, replace, mode) "{{{
" Substitute regexp but do not interpret replace
let escaped = escape(a:replace, '\&')
return substitute(a:text, a:search, escaped, a:mode)
endfunction " }}}
" s:vimwiki_get_known_syntaxes " s:vimwiki_get_known_syntaxes
function! s:vimwiki_get_known_syntaxes() " {{{ function! s:vimwiki_get_known_syntaxes() " {{{
" Getting all syntaxes that different wikis could have " Getting all syntaxes that different wikis could have
@ -465,7 +472,7 @@ function! vimwiki#base#generate_links() "{{{
let abs_filepath = vimwiki#path#abs_path_of_link(link) let abs_filepath = vimwiki#path#abs_path_of_link(link)
if !s:is_diary_file(abs_filepath) if !s:is_diary_file(abs_filepath)
call add(lines, bullet. call add(lines, bullet.
\ substitute(g:vimwiki_WikiLinkTemplate1, '__LinkUrl__', '\='."'".link."'", '')) \ s:safesubstitute(g:vimwiki_WikiLinkTemplate1, '__LinkUrl__', link, ''))
endif endif
endfor endfor
@ -677,13 +684,13 @@ function! s:jump_to_anchor(anchor) "{{{
let segments = split(anchor, '#', 0) let segments = split(anchor, '#', 0)
for segment in segments for segment in segments
let anchor_header = substitute( let anchor_header = s:safesubstitute(
\ g:vimwiki_{VimwikiGet('syntax')}_header_match, \ g:vimwiki_{VimwikiGet('syntax')}_header_match,
\ '__Header__', "\\='".segment."'", '') \ '__Header__', segment, '')
let anchor_bold = substitute(g:vimwiki_{VimwikiGet('syntax')}_bold_match, let anchor_bold = s:safesubstitute(g:vimwiki_{VimwikiGet('syntax')}_bold_match,
\ '__Text__', "\\='".segment."'", '') \ '__Text__', segment, '')
let anchor_tag = substitute(g:vimwiki_{VimwikiGet('syntax')}_tag_match, let anchor_tag = s:safesubstitute(g:vimwiki_{VimwikiGet('syntax')}_tag_match,
\ '__Tag__', "\\='".segment."'", '') \ '__Tag__', segment, '')
if !search(anchor_tag, 'Wc') if !search(anchor_tag, 'Wc')
\ && !search(anchor_header, 'Wc') \ && !search(anchor_header, 'Wc')
@ -840,7 +847,7 @@ function! vimwiki#base#edit_file(command, filename, anchor, ...) "{{{
" then " then
" [[test*file]]... " [[test*file]]...
" you'll have E77: Too many file names " you'll have E77: Too many file names
let fname = escape(a:filename, '% *|#') let fname = escape(a:filename, '% *|#`')
let dir = fnamemodify(a:filename, ":p:h") let dir = fnamemodify(a:filename, ":p:h")
let ok = vimwiki#path#mkdir(dir, 1) let ok = vimwiki#path#mkdir(dir, 1)
@ -1176,8 +1183,8 @@ function! vimwiki#base#update_listing_in_buffer(strings, start_header,
" write new listing " write new listing
let new_header = whitespaces_in_first_line let new_header = whitespaces_in_first_line
\ . substitute(g:vimwiki_rxH1_Template, \ . s:safesubstitute(g:vimwiki_rxH1_Template,
\ '__Header__', '\='."'".a:start_header."'", '') \ '__Header__', a:start_header, '')
call append(start_lnum - 1, new_header) call append(start_lnum - 1, new_header)
let start_lnum += 1 let start_lnum += 1
let lines_diff += 1 + len(a:strings) let lines_diff += 1 + len(a:strings)
@ -1273,7 +1280,7 @@ function! vimwiki#base#follow_link(split, reuse, move_cursor, ...) "{{{
" remove the extension from the filename if exists, because non-vimwiki " remove the extension from the filename if exists, because non-vimwiki
" markdown files usually include the extension in links " markdown files usually include the extension in links
let lnk = substitute(lnk, VimwikiGet('ext').'$', '', '') let lnk = substitute(lnk, '\'.VimwikiGet('ext').'$', '', '')
endif endif
let current_tab_page = tabpagenr() let current_tab_page = tabpagenr()
@ -1326,7 +1333,13 @@ function! vimwiki#base#goto_index(wnum, ...) "{{{
endif endif
if a:0 if a:0
let cmd = 'tabedit' if a:1 == 1
let cmd = 'tabedit'
elseif a:1 == 2
let cmd = 'split'
elseif a:1 == 3
let cmd = 'vsplit'
endif
else else
let cmd = 'edit' let cmd = 'edit'
endif endif
@ -1826,9 +1839,9 @@ function! vimwiki#base#table_of_contents(create)
for [lvl, link, desc] in headers for [lvl, link, desc] in headers
let esc_link = substitute(link, "'", "''", 'g') let esc_link = substitute(link, "'", "''", 'g')
let esc_desc = substitute(desc, "'", "''", 'g') let esc_desc = substitute(desc, "'", "''", 'g')
let link = substitute(g:vimwiki_WikiLinkTemplate2, '__LinkUrl__', let link = s:safesubstitute(g:vimwiki_WikiLinkTemplate2, '__LinkUrl__',
\ '\='."'".'#'.esc_link."'", '') \ '#'.esc_link, '')
let link = substitute(link, '__LinkDescription__', '\='."'".esc_desc."'", '') let link = s:safesubstitute(link, '__LinkDescription__', esc_desc, '')
call add(lines, startindent.repeat(indentstring, lvl-1).bullet.link) call add(lines, startindent.repeat(indentstring, lvl-1).bullet.link)
endfor endfor
@ -1849,13 +1862,13 @@ endfunction
function! vimwiki#base#apply_template(template, rxUrl, rxDesc, rxStyle) "{{{ function! vimwiki#base#apply_template(template, rxUrl, rxDesc, rxStyle) "{{{
let lnk = a:template let lnk = a:template
if a:rxUrl != "" if a:rxUrl != ""
let lnk = substitute(lnk, '__LinkUrl__', '\='."'".a:rxUrl."'", 'g') let lnk = s:safesubstitute(lnk, '__LinkUrl__', a:rxUrl, 'g')
endif endif
if a:rxDesc != "" if a:rxDesc != ""
let lnk = substitute(lnk, '__LinkDescription__', '\='."'".a:rxDesc."'", 'g') let lnk = s:safesubstitute(lnk, '__LinkDescription__', a:rxDesc, 'g')
endif endif
if a:rxStyle != "" if a:rxStyle != ""
let lnk = substitute(lnk, '__LinkStyle__', '\='."'".a:rxStyle."'", 'g') let lnk = s:safesubstitute(lnk, '__LinkStyle__', a:rxStyle, 'g')
endif endif
return lnk return lnk
endfunction " }}} endfunction " }}}
@ -1894,8 +1907,8 @@ function! vimwiki#base#normalize_link_helper(str, rxUrl, rxDesc, template) " {{{
if descr == "" if descr == ""
let descr = s:clean_url(url) let descr = s:clean_url(url)
endif endif
let lnk = substitute(template, '__LinkDescription__', '\="'.descr.'"', '') let lnk = s:safesubstitute(template, '__LinkDescription__', descr, '')
let lnk = substitute(lnk, '__LinkUrl__', '\="'.url.'"', '') let lnk = s:safesubstitute(lnk, '__LinkUrl__', url, '')
return lnk return lnk
endfunction " }}} endfunction " }}}
@ -1903,7 +1916,7 @@ endfunction " }}}
function! vimwiki#base#normalize_imagelink_helper(str, rxUrl, rxDesc, rxStyle, template) "{{{ function! vimwiki#base#normalize_imagelink_helper(str, rxUrl, rxDesc, rxStyle, template) "{{{
let lnk = vimwiki#base#normalize_link_helper(a:str, a:rxUrl, a:rxDesc, a:template) let lnk = vimwiki#base#normalize_link_helper(a:str, a:rxUrl, a:rxDesc, a:template)
let style = matchstr(a:str, a:rxStyle) let style = matchstr(a:str, a:rxStyle)
let lnk = substitute(lnk, '__LinkStyle__', '\="'.style.'"', '') let lnk = s:safesubstitute(lnk, '__LinkStyle__', style, '')
return lnk return lnk
endfunction " }}} endfunction " }}}
@ -1995,8 +2008,8 @@ function! s:normalize_link_syntax_v() " {{{
if s:is_diary_file(expand("%:p")) if s:is_diary_file(expand("%:p"))
let sub = s:normalize_link_in_diary(@") let sub = s:normalize_link_in_diary(@")
else else
let sub = substitute(g:vimwiki_WikiLinkTemplate1, let sub = s:safesubstitute(g:vimwiki_WikiLinkTemplate1,
\ '__LinkUrl__', '\=' . "'" . @" . "'", '') \ '__LinkUrl__', @", '')
endif endif
" Put substitution in register " and change text " Put substitution in register " and change text

View File

@ -65,7 +65,7 @@ fun! s:read_captions(files) "{{{
let result = {} let result = {}
for fl in a:files for fl in a:files
" remove paths and extensions " remove paths and extensions
let fl_key = fnamemodify(fl, ':t:r') let fl_key = substitute(fnamemodify(fl, ':t'), VimwikiGet('ext').'$', '', '')
if filereadable(fl) if filereadable(fl)
for line in readfile(fl, '', s:vimwiki_max_scan_for_caption) for line in readfile(fl, '', s:vimwiki_max_scan_for_caption)
@ -174,10 +174,15 @@ function! vimwiki#diary#make_note(wnum, ...) "{{{
call vimwiki#path#mkdir(VimwikiGet('path', idx).VimwikiGet('diary_rel_path', idx)) call vimwiki#path#mkdir(VimwikiGet('path', idx).VimwikiGet('diary_rel_path', idx))
if a:0 && a:1 == 1 let cmd = 'edit'
let cmd = 'tabedit' if a:0
else if a:1 == 1
let cmd = 'edit' let cmd = 'tabedit'
elseif a:1 == 2
let cmd = 'split'
elseif a:1 == 3
let cmd = 'vsplit'
endif
endif endif
if a:0>1 if a:0>1
let link = 'diary:'.a:2 let link = 'diary:'.a:2

View File

@ -876,6 +876,8 @@ function! s:process_tag_list(line, lists) "{{{
let n = len(g:vimwiki_listsyms_list) let n = len(g:vimwiki_listsyms_list)
if completion == 0 if completion == 0
let st_tag = '<li class="done0">' let st_tag = '<li class="done0">'
elseif completion == -1 && chk[1] == g:vimwiki_listsym_rejected
let st_tag = '<li class="rejected">'
elseif completion > 0 && completion < n elseif completion > 0 && completion < n
let completion = float2nr(round(completion / (n-1.0) * 3.0 + 0.5 )) let completion = float2nr(round(completion / (n-1.0) * 3.0 + 0.5 ))
let st_tag = '<li class="done'.completion.'">' let st_tag = '<li class="done'.completion.'">'

View File

@ -693,6 +693,9 @@ function! s:get_rate(item) "{{{
return -1 return -1
endif endif
let state = a:item.cb let state = a:item.cb
if state == g:vimwiki_listsym_rejected
return -1
endif
let n=len(g:vimwiki_listsyms_list) let n=len(g:vimwiki_listsyms_list)
return index(g:vimwiki_listsyms_list, state) * 100/(n-1) return index(g:vimwiki_listsyms_list, state) * 100/(n-1)
endfunction "}}} endfunction "}}}
@ -735,6 +738,8 @@ function! s:rate_to_state(rate) "{{{
let state = g:vimwiki_listsyms_list[n-1] let state = g:vimwiki_listsyms_list[n-1]
elseif a:rate == 0 elseif a:rate == 0
let state = g:vimwiki_listsyms_list[0] let state = g:vimwiki_listsyms_list[0]
elseif a:rate == -1
let state = g:vimwiki_listsym_rejected
else else
let index = float2nr(ceil(a:rate/100.0*(n-2))) let index = float2nr(ceil(a:rate/100.0*(n-2)))
let state = g:vimwiki_listsyms_list[index] let state = g:vimwiki_listsyms_list[index]
@ -759,8 +764,11 @@ function! s:update_state(item) "{{{
break break
endif endif
if child_item.cb != '' if child_item.cb != ''
let count_children_with_cb += 1 let rate = s:get_rate(child_item)
let sum_children_rate += s:get_rate(child_item) if rate != -1
let count_children_with_cb += 1
let sum_children_rate += rate
endif
endif endif
let child_item = s:get_next_child_item(a:item, child_item) let child_item = s:get_next_child_item(a:item, child_item)
endwhile endwhile
@ -835,6 +843,46 @@ function! s:change_cb(from_line, to_line, new_rate) "{{{
endfunction "}}} endfunction "}}}
"Toggles checkbox between two states in the lines of the given range,
"creates chceckboxes if there aren't any.
function! s:toggle_create_cb(from_line, to_line, state1, state2) "{{{
let from_item = s:get_corresponding_item(a:from_line)
if from_item.type == 0
return
endif
if from_item.cb == ''
"if from_line has no CB, make a CB in every selected line
let parent_items_of_lines = []
for cur_ln in range(from_item.lnum, a:to_line)
let cur_item = s:get_item(cur_ln)
let success = s:create_cb(cur_item)
if success
let cur_parent_item = s:get_parent(cur_item)
if index(parent_items_of_lines, cur_parent_item) == -1
call insert(parent_items_of_lines, cur_parent_item)
endif
endif
endfor
for parent_item in parent_items_of_lines
call s:update_state(parent_item)
endfor
else
"if from_line has CB, toggle it and set all siblings to the same new state
let rate_first_line = s:get_rate(from_item)
let new_rate = rate_first_line == a:state1 ? a:state2 : a:state1
call s:change_cb(a:from_line, a:to_line, new_rate)
endif
endfunction "}}}
"Decrement checkbox between [ ] and [X] "Decrement checkbox between [ ] and [X]
"in the lines of the given range "in the lines of the given range
function! vimwiki#lst#decrement_cb(from_line, to_line) "{{{ function! vimwiki#lst#decrement_cb(from_line, to_line) "{{{
@ -872,41 +920,13 @@ endfunction "}}}
"Toggles checkbox between [ ] and [X] or creates one "Toggles checkbox between [ ] and [X] or creates one
"in the lines of the given range "in the lines of the given range
function! vimwiki#lst#toggle_cb(from_line, to_line) "{{{ function! vimwiki#lst#toggle_cb(from_line, to_line) "{{{
let from_item = s:get_corresponding_item(a:from_line) return s:toggle_create_cb(a:from_line, a:to_line, 100, 0)
if from_item.type == 0 endfunction "}}}
return
endif
if from_item.cb == ''
"if from_line has no CB, make a CB in every selected line
let parent_items_of_lines = []
for cur_ln in range(from_item.lnum, a:to_line)
let cur_item = s:get_item(cur_ln)
let success = s:create_cb(cur_item)
if success
let cur_parent_item = s:get_parent(cur_item)
if index(parent_items_of_lines, cur_parent_item) == -1
call insert(parent_items_of_lines, cur_parent_item)
endif
endif
endfor
for parent_item in parent_items_of_lines
call s:update_state(parent_item)
endfor
else
"if from_line has CB, toggle it and set all siblings to the same new state
let rate_first_line = s:get_rate(from_item)
let new_rate = rate_first_line == 100 ? 0 : 100
call s:change_cb(a:from_line, a:to_line, new_rate)
endif
"Toggles checkbox between [ ] and [-] or creates one
"in the lines of the given range
function! vimwiki#lst#toggle_rejected_cb(from_line, to_line) "{{{
return s:toggle_create_cb(a:from_line, a:to_line, -1, 0)
endfunction "}}} endfunction "}}}
function! vimwiki#lst#remove_cb(first_line, last_line) "{{{ function! vimwiki#lst#remove_cb(first_line, last_line) "{{{
@ -1553,6 +1573,10 @@ function! vimwiki#lst#setup_marker_infos() "{{{
"the user can set the listsyms as string, but vimwiki needs a list "the user can set the listsyms as string, but vimwiki needs a list
let g:vimwiki_listsyms_list = split(g:vimwiki_listsyms, '\zs') let g:vimwiki_listsyms_list = split(g:vimwiki_listsyms, '\zs')
if match(g:vimwiki_listsyms, g:vimwiki_listsym_rejected) != -1
echomsg "Warning: g:vimwiki_listsyms and g:vimwiki_listsym_rejected overlap"
endif
endfunction "}}} endfunction "}}}
function! vimwiki#lst#TO_list_item(inner, visual) "{{{ function! vimwiki#lst#TO_list_item(inner, visual) "{{{

View File

@ -6,6 +6,13 @@
" MISC helper functions {{{ " MISC helper functions {{{
" s:safesubstitute
function! s:safesubstitute(text, search, replace, mode) "{{{
" Substitute regexp but do not interpret replace
let escaped = escape(a:replace, '\&')
return substitute(a:text, a:search, escaped, a:mode)
endfunction " }}}
" vimwiki#markdown_base#reset_mkd_refs " vimwiki#markdown_base#reset_mkd_refs
function! vimwiki#markdown_base#reset_mkd_refs() "{{{ function! vimwiki#markdown_base#reset_mkd_refs() "{{{
call VimwikiClear('markdown_refs') call VimwikiClear('markdown_refs')
@ -139,8 +146,8 @@ function! s:normalize_link_syntax_v() " {{{
try try
norm! gvy norm! gvy
let visual_selection = @" let visual_selection = @"
let link = substitute(g:vimwiki_Weblink1Template, '__LinkUrl__', '\='."'".visual_selection."'", '') let link = Safesubstitute(g:vimwiki_Weblink1Template, '__LinkUrl__', visual_selection, '')
let link = substitute(link, '__LinkDescription__', '\='."'".visual_selection."'", '') let link = Safesubstitute(link, '__LinkDescription__', visual_selection, '')
call setreg('"', link, 'v') call setreg('"', link, 'v')

View File

@ -27,6 +27,13 @@ del {text-decoration: line-through; color: #777777;}
.tag {background-color: #eeeeee; font-family: monospace; padding: 2px;} .tag {background-color: #eeeeee; font-family: monospace; padding: 2px;}
/* classes for items of todo lists */ /* classes for items of todo lists */
.rejected {
/* list-style: none; */
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAMAAAAMCGV4AAAACXBIWXMAAADFAAAAxQEdzbqoAAAAB3RJTUUH4QgEFhAtuWgv9wAAAPZQTFRFmpqam5iYnJaWnJeXnpSUn5OTopCQpoqKpouLp4iIqIiIrYCAt3V1vW1tv2xsmZmZmpeXnpKS/x4e/x8f/yAg/yIi/yQk/yUl/yYm/ygo/ykp/yws/zAw/zIy/zMz/zQ0/zU1/zY2/zw8/0BA/0ZG/0pK/1FR/1JS/1NT/1RU/1VV/1ZW/1dX/1pa/15e/19f/2Zm/2lp/21t/25u/3R0/3p6/4CA/4GB/4SE/4iI/46O/4+P/52d/6am/6ur/66u/7Oz/7S0/7e3/87O/9fX/9zc/93d/+Dg/+vr/+3t/+/v//Dw//Ly//X1//f3//n5//z8////gzaKowAAAA90Uk5T/Pz8/Pz8/Pz8/Pz8/f39ppQKWQAAAAFiS0dEEnu8bAAAAACuSURBVAhbPY9ZF4FQFEZPSKbIMmWep4gMGTKLkIv6/3/GPbfF97b3w17rA0kQOPgvAeHW6uJ6+5h7HqLdwowgOzejXRXBdx6UdSru216xuOMBHHNU0clTzeSUA6EhF8V8kqroluMiU6HKcuf4phGPr1o2q9kYZWwNq1qfRRmTaXpqsyjj17KkWCxKBUBgXWueHIyiAIg18gsse4KHkLF5IKIY10WQgv7fOy4ST34BRiopZ8WLNrgAAAAASUVORK5CYII=);
background-repeat: no-repeat;
background-position: 0 .2em;
padding-left: 1.5em;
}
.done0 { .done0 {
/* list-style: none; */ /* list-style: none; */
background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==); background-image: url(data:image/png;base64,iVBORw0KGgoAAAANSUhEUgAAAA8AAAAPCAYAAAA71pVKAAAABHNCSVQICAgIfAhkiAAAAAlwSFlzAAAAxQAAAMUBHc26qAAAABl0RVh0U29mdHdhcmUAd3d3Lmlua3NjYXBlLm9yZ5vuPBoAAAA7SURBVCiR7dMxEgAgCANBI3yVRzF5KxNbW6wsuH7LQ2YKQK1mkswBVERYF5Os3UV3gwd/jF2SkXy66gAZkxS6BniubAAAAABJRU5ErkJggg==);

View File

@ -455,6 +455,13 @@ gLI Change the symbol of the current list to
To remap: > To remap: >
noremap glo :VimwikiChangeSymbolTo I)<CR> noremap glo :VimwikiChangeSymbolTo I)<CR>
noremap glO :VimwikiChangeSymbolInListTo I)<CR> noremap glO :VimwikiChangeSymbolInListTo I)<CR>
<
*vimwiki_glx*
glx Toggle checkbox of a list item disabled/off.
Maps to |:VimwikiToggleRejectedListItem|.
See |vimwiki-todo-lists|.
To remap: >
:map <Leader>tx <Plug>VimwikiToggleRejectedListItem
< <
*vimwiki_gqq* *vimwiki_gww* *vimwiki_gqq* *vimwiki_gww*
gqq Format table. If you made some changes to a table gqq Format table. If you made some changes to a table
@ -656,6 +663,10 @@ Vimwiki file.
Toggle checkbox of a list item on/off. Toggle checkbox of a list item on/off.
See |vimwiki-todo-lists|. See |vimwiki-todo-lists|.
*:VimwikiToggleRejectedListItem*
Toggle checkbox of a list item disabled/off.
See |vimwiki-todo-lists|.
*:VimwikiListChangeLevel* CMD *:VimwikiListChangeLevel* CMD
Change the nesting level, or symbol, for a single-line list item. Change the nesting level, or symbol, for a single-line list item.
CMD may be ">>" or "<<" to change the indentation of the item, or CMD may be ">>" or "<<" to change the indentation of the item, or
@ -1233,14 +1244,9 @@ LaTeX code).
Note: the highlighting in Vim is automatic. For the rendering in HTML, you Note: the highlighting in Vim is automatic. For the rendering in HTML, you
have two alternative options: have two alternative options:
1. using the MathJax server for rendering (needs internet connection). 1. installing MathJax locally (Recommended: faster, no internet required).
Add to your HTML template the following line: Choose a folder on your hard drive and save MathJax in it. Then add to your
HTML template the following line:
<script type="text/javascript" src="http://cdn.mathjax.org/mathjax/latest/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
2. installing MathJax locally (faster, no internet required). Choose a
folder on your hard drive and save MathJax in it. Then add to your HTML
template the following line:
<script type="text/javascript" src="<mathjax_folder>/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script> <script type="text/javascript" src="<mathjax_folder>/MathJax.js?config=TeX-AMS-MML_HTMLorMML"></script>
@ -1255,6 +1261,11 @@ template folder. For instance, a sensible folder structure could be:
In this case, <mathjax_folder> would be "../mathjax" (without quotes). In this case, <mathjax_folder> would be "../mathjax" (without quotes).
2. Loading MathJax from a CDN-server (needs internet connection).
Add to your HTML template the following line:
<script type="text/javascript" src="https://cdnjs.cloudflare.com/ajax/libs/mathjax/2.7.2/config/TeX-AMS-MML_HTMLorMML.js"></script>
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
5.9. Blockquotes *vimwiki-syntax-blockquotes* 5.9. Blockquotes *vimwiki-syntax-blockquotes*
@ -1625,6 +1636,10 @@ Use gl<Space> (see |vimwiki_gl<Space>|) to remove a single checkbox and
gL<Space> (see |vimwiki_gL<Space>|) to remove all checkboxes of the list the gL<Space> (see |vimwiki_gL<Space>|) to remove all checkboxes of the list the
cursor is in. cursor is in.
You can mark an item as rejected ("won't do") with
|vimwiki_glx|. A rejected item will not influence the status of it's
parents.
============================================================================== ==============================================================================
9. Tables *vimwiki-tables* 9. Tables *vimwiki-tables*
@ -2349,6 +2364,19 @@ You can set it to some more fancy symbols like this:
let g:vimwiki_listsyms = '✗○◐●✓' let g:vimwiki_listsyms = '✗○◐●✓'
------------------------------------------------------------------------------
*g:vimwiki_listsym_rejected*
Character that is used to show that an item of a todo list will not be done.
Default value is '-'.
The character used here may not be part of g:vimwiki_listsyms.
You can set it to some more fancy symbols like this:
>
let g:vimwiki_listsym_rejected = '✗'
------------------------------------------------------------------------------ ------------------------------------------------------------------------------
*g:vimwiki_use_mouse* *g:vimwiki_use_mouse*
@ -2858,6 +2886,19 @@ Contributors and their Github usernames in roughly chronological order:
- @wangzq - @wangzq
- Jinzhou Zhang (@lotabout) - Jinzhou Zhang (@lotabout)
- Michael Riley (@optik-aper) - Michael Riley (@optik-aper)
- Irfan Sharif (@irfansharif)
- John Conroy (@jconroy77)
- Christian Rondeau (@christianrondeau)
- Alex Thorne (@thornecc)
- Shafqat Bhuiyan (@priomsrb)
- Bradley Cicenas (@bcicen)
- Michael Thessel (@MichaelThessel)
- Michael F. Schönitzer (@nudin)
- @sqlwwx
- Guilherme Salazar (@salazar)
- Daniel Trnka (@trnila)
- Yuchen Pei (@ycpei)
- @maqiv
============================================================================== ==============================================================================
@ -3105,10 +3146,11 @@ http://code.google.com/p/vimwiki/issues/list
============================================================================== ==============================================================================
16. License *vimwiki-license* 16. License *vimwiki-license*
The MIT Licence The MIT License
http://www.opensource.org/licenses/mit-license.php http://www.opensource.org/licenses/mit-license.php
Copyright (c) 2008-2010 Maxim Kim Copyright (c) 2008-2010 Maxim Kim
2013-2017 Daniel Schemala
Permission is hereby granted, free of charge, to any person obtaining a copy Permission is hereby granted, free of charge, to any person obtaining a copy
of this software and associated documentation files (the "Software"), to deal of this software and associated documentation files (the "Software"), to deal

View File

@ -295,6 +295,7 @@ command! -buffer -range -nargs=1 VimwikiChangeSymbolTo call vimwiki#lst#change_m
command! -buffer -range -nargs=1 VimwikiListChangeSymbolI call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'i') command! -buffer -range -nargs=1 VimwikiListChangeSymbolI call vimwiki#lst#change_marker(<line1>, <line2>, <f-args>, 'i')
command! -buffer -nargs=1 VimwikiChangeSymbolInListTo call vimwiki#lst#change_marker_in_list(<f-args>) command! -buffer -nargs=1 VimwikiChangeSymbolInListTo call vimwiki#lst#change_marker_in_list(<f-args>)
command! -buffer -range VimwikiToggleListItem call vimwiki#lst#toggle_cb(<line1>, <line2>) command! -buffer -range VimwikiToggleListItem call vimwiki#lst#toggle_cb(<line1>, <line2>)
command! -buffer -range VimwikiToggleRejectedListItem call vimwiki#lst#toggle_rejected_cb(<line1>, <line2>)
command! -buffer -range VimwikiIncrementListItem call vimwiki#lst#increment_cb(<line1>, <line2>) command! -buffer -range VimwikiIncrementListItem call vimwiki#lst#increment_cb(<line1>, <line2>)
command! -buffer -range VimwikiDecrementListItem call vimwiki#lst#decrement_cb(<line1>, <line2>) command! -buffer -range VimwikiDecrementListItem call vimwiki#lst#decrement_cb(<line1>, <line2>)
command! -buffer -range -nargs=+ VimwikiListChangeLvl call vimwiki#lst#change_level(<line1>, <line2>, <f-args>) command! -buffer -range -nargs=+ VimwikiListChangeLvl call vimwiki#lst#change_level(<line1>, <line2>, <f-args>)
@ -442,10 +443,18 @@ if !hasmapto('<Plug>VimwikiToggleListItem')
vmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem vmap <silent><buffer> <C-@> <Plug>VimwikiToggleListItem
endif endif
endif endif
if !hasmapto('<Plug>VimwikiToggleRejectedListItem')
nmap <silent><buffer> glx <Plug>VimwikiToggleRejectedListItem
vmap <silent><buffer> glx <Plug>VimwikiToggleRejectedListItem
endif
nnoremap <silent><script><buffer> nnoremap <silent><script><buffer>
\ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR> \ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
vnoremap <silent><script><buffer> vnoremap <silent><script><buffer>
\ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR> \ <Plug>VimwikiToggleListItem :VimwikiToggleListItem<CR>
nnoremap <silent><script><buffer>
\ <Plug>VimwikiToggleRejectedListItem :VimwikiToggleRejectedListItem<CR>
vnoremap <silent><script><buffer>
\ <Plug>VimwikiToggleRejectedListItem :VimwikiToggleRejectedListItem<CR>
if !hasmapto('<Plug>VimwikiIncrementListItem') if !hasmapto('<Plug>VimwikiIncrementListItem')
nmap <silent><buffer> gln <Plug>VimwikiIncrementListItem nmap <silent><buffer> gln <Plug>VimwikiIncrementListItem

View File

@ -373,6 +373,7 @@ call s:default('hl_cb_checked', 0)
call s:default('list_ignore_newline', 1) call s:default('list_ignore_newline', 1)
call s:default('text_ignore_newline', 1) call s:default('text_ignore_newline', 1)
call s:default('listsyms', ' .oOX') call s:default('listsyms', ' .oOX')
call s:default('listsym_rejected', '-')
call s:default('use_calendar', 1) call s:default('use_calendar', 1)
call s:default('table_mappings', 1) call s:default('table_mappings', 1)
call s:default('table_auto_fmt', 1) call s:default('table_auto_fmt', 1)

View File

@ -79,7 +79,7 @@ let g:vimwiki_rxListDefine = '::\(\s\|$\)'
call vimwiki#lst#setup_marker_infos() call vimwiki#lst#setup_marker_infos()
let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' 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_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.g:vimwiki_listsym_rejected.']\)\]\s\)\?'
let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\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 " Preformatted text

View File

@ -76,7 +76,7 @@ let g:vimwiki_rxListDefine = '::\%(\s\|$\)'
call vimwiki#lst#setup_marker_infos() call vimwiki#lst#setup_marker_infos()
let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' 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_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.g:vimwiki_listsym_rejected.']\)\]\s\)\?'
let g:vimwiki_rxListItemAndChildren = '^\(\s*\)\%('.g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\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 " Preformatted text

View File

@ -57,7 +57,7 @@ let g:vimwiki_rxListDefine = '^\%(;\|:\)\s'
call vimwiki#lst#setup_marker_infos() call vimwiki#lst#setup_marker_infos()
let g:vimwiki_rxListItemWithoutCB = '^\s*\%(\('.g:vimwiki_rxListBullet.'\)\|\('.g:vimwiki_rxListNumber.'\)\)\s' 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_rxListItem = g:vimwiki_rxListItemWithoutCB . '\+\%(\[\(['.g:vimwiki_listsyms.g:vimwiki_listsym_rejected.']\)\]\s\)\?'
let g:vimwiki_rxListItemAndChildren = '^\('.g:vimwiki_rxListBullet.'\)\s\+\['.g:vimwiki_listsyms_list[-1].'\]\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 " Preformatted text