summaryrefslogtreecommitdiff
path: root/syntax
diff options
context:
space:
mode:
authorHugues Hiegel <hugues.hiegel@qosmos.com>2014-12-23 17:00:28 +0100
committerHugues Hiegel <hugues.hiegel@qosmos.com>2014-12-23 17:00:28 +0100
commit8625978e9955c43a8135751a21da262b0e0d8af4 (patch)
tree2fee0ed4c9d912218e6b5366398ebd5d51037e28 /syntax
parent44bfbe0fdd70a76f5c8340424893272a4a92cc59 (diff)
[plugins] VimWiki + Todo Power
Diffstat (limited to 'syntax')
-rw-r--r--syntax/todo.vim30
-rw-r--r--syntax/vimwiki.vim621
-rw-r--r--syntax/vimwiki_default.vim89
-rw-r--r--syntax/vimwiki_markdown.vim89
-rw-r--r--syntax/vimwiki_markdown_custom.vim392
-rw-r--r--syntax/vimwiki_media.vim71
6 files changed, 1282 insertions, 10 deletions
diff --git a/syntax/todo.vim b/syntax/todo.vim
index 368bf52..837af79 100644
--- a/syntax/todo.vim
+++ b/syntax/todo.vim
@@ -11,23 +11,33 @@ endif
setlocal iskeyword+=-
syntax case ignore
-syn match Todo /→ .*/ containedin=ALLBUT,todoDone,todoTaskDone
+"syn match Todo /\<\u\+\>/ containedin=ALLBUT,todoDone,todoTaskDone
"syn match String /{[^}]*}/ containedin=ALL
syn match String /'[^']*'\|"[^"]*"/ containedin=ALL
-syn match todoKeyWord /^\s*\([^:]*\w\+\):/
+syn match todoKeyWord /\(\[[ .oOX]\]\)/
-syn region todoTask3 start=/^\(\s*\)\W/ end=/$/ contains=todoKeyWord
-syn region todoTask2 start=/^\(\s*\)-/ end=/$/ contains=todoKeyWord
-syn region todoTask1 start=/^\(\s*\)+/ end=/$/ contains=todoKeyWord
-syn region todoTitle start=/^\(\s*\)\*/ end=/$/ contains=todoKeyWord
+syn region todoTitle1 start=/^\s*=/ end=/=$/
+syn region todoTitle2 start=/^\s*==/ end=/==$/
+syn region todoTitle3 start=/^\s*===/ end=/===$/
+syn region todoTitle4 start=/^\s*====/ end=/====$/
-syn region todoDone start=/^x/ end=/^\(\S\|$\)/me=s-1 contains=todoTaskDone
-syn region todoTaskDone start=/^\z\(\s\+\)x/ skip=/^\z1\s\+/ end=/^/me=s-1
+syn region todoTask1 start=/^\s*[-*#] \[ \]/ end=/$/me=s-1 contains=todoKeyWord,todoTask2,todoTask3,todoTask4
+syn region todoTask2 start=/^\s*[-*#] \[\.\]/ end=/$/me=s-1 contains=todoKeyWord,todoTask3,todoTask4
+syn region todoTask3 start=/^\s*[-*#] \[o\]/ end=/$/me=s-1 contains=todoKeyWord,todoTask4
+syn region todoTask4 start=/^\s*[-*#] \[O\]/ end=/$/me=s-1 contains=todoKeyWord
+"syn region todoTask3 start=/^\(\s*\)\W/ end=/$/ contains=todoKeyWord
+"syn region todoTask2 start=/^\(\s*\)+/ end=/$/ contains=todoKeyWord
+"syn region todoTask1 start=/^\(\s*\)-/ end=/$/ contains=todoKeyWord
-syn match rtTicket /\(RTC *\)\?\#\d\+/ containedin=ALLBUT,todoDone,todoTaskDone
+syn region todoDone start=/^[-*#] \[X\]/ end=/^\(\S\|$\)/me=s-1 contains=todoTaskDone
+syn region todoTaskDone start=/^\z\(\s\+\)[-*#] \[X\]/ skip=/^\z1\s\+/ end=/^/me=s-1
+
+syn region todoLink start=/\[\[/ end=/\]\]/ containedin=ALL
+
+syn match rtTicket /\(SF *\|\(RTC *\)\?\#\)\d\+/ containedin=ALLBUT,todoDone,todoTaskDone
"syn region Comment start=/^\%^/ end=/=$/
-syn region Comment start=/^ *==/ end=/$/
+"syn region Comment start=/^ *==/ end=/$/
let b:current_syntax="todo"
diff --git a/syntax/vimwiki.vim b/syntax/vimwiki.vim
new file mode 100644
index 0000000..693c7f4
--- /dev/null
+++ b/syntax/vimwiki.vim
@@ -0,0 +1,621 @@
+" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
+" Vimwiki syntax file
+" Author: Maxim Kim <habamax@gmail.com>
+" Home: http://code.google.com/p/vimwiki/
+
+" Quit if syntax file is already loaded
+if version < 600
+ syntax clear
+elseif exists("b:current_syntax")
+ finish
+endif
+"TODO do nothing if ...? (?)
+let starttime = reltime() " start the clock
+if VimwikiGet('maxhi')
+ let b:existing_wikifiles = vimwiki#base#get_links('*'.VimwikiGet('ext'))
+ let b:existing_wikidirs = vimwiki#base#get_links('*/')
+endif
+let timescans = vimwiki#u#time(starttime) "XXX
+ "let b:xxx = 1
+ "TODO ? update wikilink syntax group here if really needed (?) for :e and such
+ "if VimwikiGet('maxhi')
+ " ...
+ "endif
+
+" LINKS: assume this is common to all syntaxes "{{{
+
+" LINKS: WebLinks {{{
+" match URL for common protocols;
+" see http://en.wikipedia.org/wiki/URI_scheme http://tools.ietf.org/html/rfc3986
+let g:vimwiki_rxWebProtocols = ''.
+ \ '\%('.
+ \ '\%('.
+ \ '\%('.join(split(g:vimwiki_web_schemes1, '\s*,\s*'), '\|').'\):'.
+ \ '\%(//\)'.
+ \ '\)'.
+ \ '\|'.
+ \ '\%('.join(split(g:vimwiki_web_schemes2, '\s*,\s*'), '\|').'\):'.
+ \ '\)'
+"
+let g:vimwiki_rxWeblinkUrl = g:vimwiki_rxWebProtocols .
+ \ '\S\{-1,}'. '\%(([^ \t()]*)\)\='
+" }}}
+
+" }}}
+
+" -------------------------------------------------------------------------
+" Load concrete Wiki syntax: sets regexes and templates for headers and links
+execute 'runtime! syntax/vimwiki_'.VimwikiGet('syntax').'.vim'
+" -------------------------------------------------------------------------
+let time0 = vimwiki#u#time(starttime) "XXX
+
+let g:vimwiki_rxListItem = '\('.
+ \ g:vimwiki_rxListBullet.'\|'.g:vimwiki_rxListNumber.
+ \ '\)'
+
+" LINKS: setup of larger regexes {{{
+
+" LINKS: setup wikilink regexps {{{
+let g:vimwiki_rxWikiLinkPrefix = '[['
+let g:vimwiki_rxWikiLinkSuffix = ']]'
+let g:vimwiki_rxWikiLinkSeparator = '|'
+" [[URL]]
+let g:vimwiki_WikiLinkTemplate1 = g:vimwiki_rxWikiLinkPrefix . '__LinkUrl__'.
+ \ g:vimwiki_rxWikiLinkSuffix
+" [[URL|DESCRIPTION]]
+let g:vimwiki_WikiLinkTemplate2 = g:vimwiki_rxWikiLinkPrefix . '__LinkUrl__'.
+ \ g:vimwiki_rxWikiLinkSeparator. '__LinkDescription__'.
+ \ g:vimwiki_rxWikiLinkSuffix
+"
+let magic_chars = '.*[]\^$'
+let valid_chars = '[^\\\]]'
+
+let g:vimwiki_rxWikiLinkPrefix = escape(g:vimwiki_rxWikiLinkPrefix, magic_chars)
+let g:vimwiki_rxWikiLinkSuffix = escape(g:vimwiki_rxWikiLinkSuffix, magic_chars)
+let g:vimwiki_rxWikiLinkSeparator = escape(g:vimwiki_rxWikiLinkSeparator, magic_chars)
+let g:vimwiki_rxWikiLinkUrl = valid_chars.'\{-}'
+let g:vimwiki_rxWikiLinkDescr = valid_chars.'\{-}'
+
+let g:vimwiki_rxWord = '[^[:blank:]()\\]\+'
+
+"
+" [[URL]], or [[URL|DESCRIPTION]]
+" a) match [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLink = g:vimwiki_rxWikiLinkPrefix.
+ \ g:vimwiki_rxWikiLinkUrl.'\%('.g:vimwiki_rxWikiLinkSeparator.
+ \ g:vimwiki_rxWikiLinkDescr.'\)\?'.g:vimwiki_rxWikiLinkSuffix
+" b) match URL within [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLinkMatchUrl = g:vimwiki_rxWikiLinkPrefix.
+ \ '\zs'. g:vimwiki_rxWikiLinkUrl.'\ze\%('. g:vimwiki_rxWikiLinkSeparator.
+ \ g:vimwiki_rxWikiLinkDescr.'\)\?'.g:vimwiki_rxWikiLinkSuffix
+" c) match DESCRIPTION within [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLinkMatchDescr = g:vimwiki_rxWikiLinkPrefix.
+ \ g:vimwiki_rxWikiLinkUrl.g:vimwiki_rxWikiLinkSeparator.'\%('.
+ \ '\zs'. g:vimwiki_rxWikiLinkDescr. '\ze\)\?'. g:vimwiki_rxWikiLinkSuffix
+" }}}
+
+" LINKS: Syntax helper {{{
+let g:vimwiki_rxWikiLinkPrefix1 = g:vimwiki_rxWikiLinkPrefix.
+ \ g:vimwiki_rxWikiLinkUrl.g:vimwiki_rxWikiLinkSeparator
+let g:vimwiki_rxWikiLinkSuffix1 = g:vimwiki_rxWikiLinkSuffix
+" }}}
+
+
+" LINKS: setup of wikiincl regexps {{{
+let g:vimwiki_rxWikiInclPrefix = '{{'
+let g:vimwiki_rxWikiInclSuffix = '}}'
+let g:vimwiki_rxWikiInclSeparator = '|'
+"
+" '{{__LinkUrl__}}'
+let g:vimwiki_WikiInclTemplate1 = g:vimwiki_rxWikiInclPrefix . '__LinkUrl__'.
+ \ g:vimwiki_rxWikiInclSuffix
+" '{{__LinkUrl____LinkDescription__}}'
+let g:vimwiki_WikiInclTemplate2 = g:vimwiki_rxWikiInclPrefix . '__LinkUrl__'.
+ \ '__LinkDescription__'.
+ \ g:vimwiki_rxWikiInclSuffix
+
+let valid_chars = '[^\\\}]'
+
+let g:vimwiki_rxWikiInclPrefix = escape(g:vimwiki_rxWikiInclPrefix, magic_chars)
+let g:vimwiki_rxWikiInclSuffix = escape(g:vimwiki_rxWikiInclSuffix, magic_chars)
+let g:vimwiki_rxWikiInclSeparator = escape(g:vimwiki_rxWikiInclSeparator, magic_chars)
+let g:vimwiki_rxWikiInclUrl = valid_chars.'\{-}'
+let g:vimwiki_rxWikiInclArg = valid_chars.'\{-}'
+let g:vimwiki_rxWikiInclArgs = '\%('. g:vimwiki_rxWikiInclSeparator. g:vimwiki_rxWikiInclArg. '\)'.'\{-}'
+"
+"
+" *. {{URL}[{...}]} - i.e. {{URL}}, {{URL|ARG1}}, {{URL|ARG1|ARG2}}, etc.
+" *a) match {{URL}[{...}]}
+let g:vimwiki_rxWikiIncl = g:vimwiki_rxWikiInclPrefix.
+ \ g:vimwiki_rxWikiInclUrl.
+ \ g:vimwiki_rxWikiInclArgs. g:vimwiki_rxWikiInclSuffix
+" *b) match URL within {{URL}[{...}]}
+let g:vimwiki_rxWikiInclMatchUrl = g:vimwiki_rxWikiInclPrefix.
+ \ '\zs'. g:vimwiki_rxWikiInclUrl. '\ze'.
+ \ g:vimwiki_rxWikiInclArgs. g:vimwiki_rxWikiInclSuffix
+" }}}
+
+" LINKS: Syntax helper {{{
+let g:vimwiki_rxWikiInclPrefix1 = g:vimwiki_rxWikiInclPrefix.
+ \ g:vimwiki_rxWikiInclUrl.g:vimwiki_rxWikiInclSeparator
+let g:vimwiki_rxWikiInclSuffix1 = g:vimwiki_rxWikiInclArgs.
+ \ g:vimwiki_rxWikiInclSuffix
+" }}}
+
+" LINKS: Setup weblink regexps {{{
+" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
+" let g:vimwiki_rxWeblink = '[\["(|]\@<!'. g:vimwiki_rxWeblinkUrl .
+ " \ '\%([),:;.!?]\=\%([ \t]\|$\)\)\@='
+" Maxim:
+" Simplify free-standing links: URL starts with non(letter|digit)scheme till
+" the whitespace.
+" Stuart, could you check it with markdown templated links? [](http://...), as
+" the last bracket is the part of URL now?
+let g:vimwiki_rxWeblink = '[[:alnum:]]\@<!'. g:vimwiki_rxWeblinkUrl . '\S*'
+" 0a) match URL within URL
+let g:vimwiki_rxWeblinkMatchUrl = g:vimwiki_rxWeblink
+" 0b) match DESCRIPTION within URL
+let g:vimwiki_rxWeblinkMatchDescr = ''
+" }}}
+
+
+" LINKS: Setup anylink regexps {{{
+let g:vimwiki_rxAnyLink = g:vimwiki_rxWikiLink.'\|'.
+ \ g:vimwiki_rxWikiIncl.'\|'.g:vimwiki_rxWeblink
+" }}}
+
+
+" }}} end of Links
+
+" LINKS: highlighting is complicated due to "nonexistent" links feature {{{
+function! s:add_target_syntax_ON(target, type) " {{{
+ if g:vimwiki_debug > 1
+ echom '[vimwiki_debug] syntax target > '.a:target
+ endif
+ let prefix0 = 'syntax match '.a:type.' `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
+ let prefix1 = 'syntax match '.a:type.'T `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction "}}}
+
+function! s:add_target_syntax_OFF(target) " {{{
+ if g:vimwiki_debug > 1
+ echom '[vimwiki_debug] syntax target > '.a:target
+ endif
+ let prefix0 = 'syntax match VimwikiNoExistsLink `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,VimwikiLinkChar'
+ let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction "}}}
+
+function! s:highlight_existing_links() "{{{
+ " Wikilink
+ " Conditional highlighting that depends on the existence of a wiki file or
+ " directory is only available for *schemeless* wiki links
+ " Links are set up upon BufEnter (see plugin/...)
+ let safe_links = vimwiki#base#file_pattern(b:existing_wikifiles)
+ " Wikilink Dirs set up upon BufEnter (see plugin/...)
+ let safe_dirs = vimwiki#base#file_pattern(b:existing_wikidirs)
+
+ " match [[URL]]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate1,
+ \ safe_links, g:vimwiki_rxWikiLinkDescr, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+ " match [[URL|DESCRIPTION]]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate2,
+ \ safe_links, g:vimwiki_rxWikiLinkDescr, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+
+ " match {{URL}}
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiInclTemplate1,
+ \ safe_links, g:vimwiki_rxWikiInclArgs, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+ " match {{URL|...}}
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiInclTemplate2,
+ \ safe_links, g:vimwiki_rxWikiInclArgs, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+ " match [[DIRURL]]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate1,
+ \ safe_dirs, g:vimwiki_rxWikiLinkDescr, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+ " match [[DIRURL|DESCRIPTION]]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate2,
+ \ safe_dirs, g:vimwiki_rxWikiLinkDescr, '')
+ call s:add_target_syntax_ON(target, 'VimwikiLink')
+endfunction "}}}
+
+
+" use max highlighting - could be quite slow if there are too many wikifiles
+if VimwikiGet('maxhi')
+ " WikiLink
+ call s:add_target_syntax_OFF(g:vimwiki_rxWikiLink)
+ " WikiIncl
+ call s:add_target_syntax_OFF(g:vimwiki_rxWikiIncl)
+
+ " Subsequently, links verified on vimwiki's path are highlighted as existing
+ let time01 = vimwiki#u#time(starttime) "XXX
+ call s:highlight_existing_links()
+ let time02 = vimwiki#u#time(starttime) "XXX
+else
+ let time01 = vimwiki#u#time(starttime) "XXX
+ " Wikilink
+ call s:add_target_syntax_ON(g:vimwiki_rxWikiLink, 'VimwikiLink')
+ " WikiIncl
+ call s:add_target_syntax_ON(g:vimwiki_rxWikiIncl, 'VimwikiLink')
+ let time02 = vimwiki#u#time(starttime) "XXX
+endif
+
+" Weblink
+call s:add_target_syntax_ON(g:vimwiki_rxWeblink, 'VimwikiLink')
+
+" WikiLink
+" All remaining schemes are highlighted automatically
+let rxSchemes = '\%('.
+ \ join(split(g:vimwiki_schemes, '\s*,\s*'), '\|').'\|'.
+ \ join(split(g:vimwiki_web_schemes1, '\s*,\s*'), '\|').
+ \ '\):'
+
+" a) match [[nonwiki-scheme-URL]]
+let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate1,
+ \ rxSchemes.g:vimwiki_rxWikiLinkUrl, g:vimwiki_rxWikiLinkDescr, '')
+call s:add_target_syntax_ON(target, 'VimwikiLink')
+" b) match [[nonwiki-scheme-URL|DESCRIPTION]]
+let target = vimwiki#base#apply_template(g:vimwiki_WikiLinkTemplate2,
+ \ rxSchemes.g:vimwiki_rxWikiLinkUrl, g:vimwiki_rxWikiLinkDescr, '')
+call s:add_target_syntax_ON(target, 'VimwikiLink')
+
+" a) match {{nonwiki-scheme-URL}}
+let target = vimwiki#base#apply_template(g:vimwiki_WikiInclTemplate1,
+ \ rxSchemes.g:vimwiki_rxWikiInclUrl, g:vimwiki_rxWikiInclArgs, '')
+call s:add_target_syntax_ON(target, 'VimwikiLink')
+" b) match {{nonwiki-scheme-URL}[{...}]}
+let target = vimwiki#base#apply_template(g:vimwiki_WikiInclTemplate2,
+ \ rxSchemes.g:vimwiki_rxWikiInclUrl, g:vimwiki_rxWikiInclArgs, '')
+call s:add_target_syntax_ON(target, 'VimwikiLink')
+
+" }}}
+
+
+" generic headers "{{{
+if g:vimwiki_symH
+ "" symmetric
+ for i in range(1,6)
+ let g:vimwiki_rxH{i}_Template = repeat(g:vimwiki_rxH, i).' __Header__ '.repeat(g:vimwiki_rxH, i)
+ let g:vimwiki_rxH{i} = '^\s*'.g:vimwiki_rxH.'\{'.i.'}[^'.g:vimwiki_rxH.'].*[^'.g:vimwiki_rxH.']'.g:vimwiki_rxH.'\{'.i.'}\s*$'
+ let g:vimwiki_rxH{i}_Start = '^\s*'.g:vimwiki_rxH.'\{'.i.'}[^'.g:vimwiki_rxH.'].*[^'.g:vimwiki_rxH.']'.g:vimwiki_rxH.'\{'.i.'}\s*$'
+ let g:vimwiki_rxH{i}_End = '^\s*'.g:vimwiki_rxH.'\{1,'.i.'}[^'.g:vimwiki_rxH.'].*[^'.g:vimwiki_rxH.']'.g:vimwiki_rxH.'\{1,'.i.'}\s*$'
+ endfor
+ let g:vimwiki_rxHeader = '^\s*\('.g:vimwiki_rxH.'\{1,6}\)\zs[^'.g:vimwiki_rxH.'].*[^'.g:vimwiki_rxH.']\ze\1\s*$'
+else
+ " asymmetric
+ for i in range(1,6)
+ let g:vimwiki_rxH{i}_Template = repeat(g:vimwiki_rxH, i).' __Header__'
+ let g:vimwiki_rxH{i} = '^\s*'.g:vimwiki_rxH.'\{'.i.'}[^'.g:vimwiki_rxH.'].*$'
+ let g:vimwiki_rxH{i}_Start = '^\s*'.g:vimwiki_rxH.'\{'.i.'}[^'.g:vimwiki_rxH.'].*$'
+ let g:vimwiki_rxH{i}_End = '^\s*'.g:vimwiki_rxH.'\{1,'.i.'}[^'.g:vimwiki_rxH.'].*$'
+ endfor
+ let g:vimwiki_rxHeader = '^\s*\('.g:vimwiki_rxH.'\{1,6}\)\zs[^'.g:vimwiki_rxH.'].*\ze$'
+endif
+
+" Header levels, 1-6
+for i in range(1,6)
+ execute 'syntax match VimwikiHeader'.i.' /'.g:vimwiki_rxH{i}.'/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,VimwikiLink,@Spell'
+ execute 'syntax region VimwikiH'.i.'Folding start=/'.g:vimwiki_rxH{i}_Start.
+ \ '/ end=/'.g:vimwiki_rxH{i}_End.'/me=s-1 transparent fold'
+endfor
+
+
+" }}}
+
+" possibly concealed chars " {{{
+let conceal = exists("+conceallevel") ? ' conceal' : ''
+
+execute 'syn match VimwikiEqInChar contained /'.g:vimwiki_char_eqin.'/'.conceal
+execute 'syn match VimwikiBoldChar contained /'.g:vimwiki_char_bold.'/'.conceal
+execute 'syn match VimwikiItalicChar contained /'.g:vimwiki_char_italic.'/'.conceal
+execute 'syn match VimwikiBoldItalicChar contained /'.g:vimwiki_char_bolditalic.'/'.conceal
+execute 'syn match VimwikiItalicBoldChar contained /'.g:vimwiki_char_italicbold.'/'.conceal
+execute 'syn match VimwikiCodeChar contained /'.g:vimwiki_char_code.'/'.conceal
+execute 'syn match VimwikiDelTextChar contained /'.g:vimwiki_char_deltext.'/'.conceal
+execute 'syn match VimwikiSuperScript contained /'.g:vimwiki_char_superscript.'/'.conceal
+execute 'syn match VimwikiSubScript contained /'.g:vimwiki_char_subscript.'/'.conceal
+" }}}
+
+" concealed link parts " {{{
+if g:vimwiki_debug > 1
+ echom 'WikiLink Prefix: '.g:vimwiki_rxWikiLinkPrefix
+ echom 'WikiLink Suffix: '.g:vimwiki_rxWikiLinkSuffix
+ echom 'WikiLink Prefix1: '.g:vimwiki_rxWikiLinkPrefix1
+ echom 'WikiLink Suffix1: '.g:vimwiki_rxWikiLinkSuffix1
+ echom 'WikiIncl Prefix: '.g:vimwiki_rxWikiInclPrefix1
+ echom 'WikiIncl Suffix: '.g:vimwiki_rxWikiInclSuffix1
+endif
+
+" define the conceal attribute for links only if Vim is new enough to handle it
+" and the user has g:vimwiki_url_maxsave > 0
+
+let options = ' contained transparent contains=NONE'
+"
+" A shortener for long URLs: LinkRest (a middle part of the URL) is concealed
+" VimwikiLinkRest group is left undefined if link shortening is not desired
+if exists("+conceallevel") && g:vimwiki_url_maxsave > 0
+ let options .= conceal
+ execute 'syn match VimwikiLinkRest `\%(///\=[^/ \t]\+/\)\zs\S\+\ze'
+ \.'\%([/#?]\w\|\S\{'.g:vimwiki_url_maxsave.'}\)`'.' cchar=~'.options
+endif
+
+" VimwikiLinkChar is for syntax markers (and also URL when a description
+" is present) and may be concealed
+
+" conceal wikilinks
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiLinkPrefix.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiLinkSuffix.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiLinkPrefix1.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiLinkSuffix1.'/'.options
+
+" conceal wikiincls
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiInclPrefix.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiInclSuffix.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiInclPrefix1.'/'.options
+execute 'syn match VimwikiLinkChar /'.g:vimwiki_rxWikiInclSuffix1.'/'.options
+" }}}
+
+" non concealed chars " {{{
+execute 'syn match VimwikiHeaderChar contained /\%(^\s*'.g:vimwiki_rxH.'\+\)\|\%('.g:vimwiki_rxH.'\+\s*$\)/'
+execute 'syn match VimwikiEqInCharT contained /'.g:vimwiki_char_eqin.'/'
+execute 'syn match VimwikiBoldCharT contained /'.g:vimwiki_char_bold.'/'
+execute 'syn match VimwikiItalicCharT contained /'.g:vimwiki_char_italic.'/'
+execute 'syn match VimwikiBoldItalicCharT contained /'.g:vimwiki_char_bolditalic.'/'
+execute 'syn match VimwikiItalicBoldCharT contained /'.g:vimwiki_char_italicbold.'/'
+execute 'syn match VimwikiCodeCharT contained /'.g:vimwiki_char_code.'/'
+execute 'syn match VimwikiDelTextCharT contained /'.g:vimwiki_char_deltext.'/'
+execute 'syn match VimwikiSuperScriptT contained /'.g:vimwiki_char_superscript.'/'
+execute 'syn match VimwikiSubScriptT contained /'.g:vimwiki_char_subscript.'/'
+
+" Emoticons
+"syntax match VimwikiEmoticons /\%((.)\|:[()|$@]\|:-[DOPS()\]|$@]\|;)\|:'(\)/
+
+let g:vimwiki_rxTodo = '\C\%(TODO:\|DONE:\|STARTED:\|FIXME:\|FIXED:\|XXX:\)'
+execute 'syntax match VimwikiTodo /'. g:vimwiki_rxTodo .'/'
+" }}}
+
+" main syntax groups {{{
+
+" Tables
+syntax match VimwikiTableRow /^\s*|.\+|\s*$/
+ \ transparent contains=VimwikiCellSeparator,
+ \ VimwikiLinkT,
+ \ VimwikiNoExistsLinkT,
+ \ VimwikiEmoticons,
+ \ VimwikiTodo,
+ \ VimwikiBoldT,
+ \ VimwikiItalicT,
+ \ VimwikiBoldItalicT,
+ \ VimwikiItalicBoldT,
+ \ VimwikiDelTextT,
+ \ VimwikiSuperScriptT,
+ \ VimwikiSubScriptT,
+ \ VimwikiCodeT,
+ \ VimwikiEqInT,
+ \ @Spell
+syntax match VimwikiCellSeparator
+ \ /\%(|\)\|\%(-\@<=+\-\@=\)\|\%([|+]\@<=-\+\)/ contained
+
+" List items
+execute 'syntax match VimwikiList /'.g:vimwiki_rxListBullet.'/'
+execute 'syntax match VimwikiList /'.g:vimwiki_rxListNumber.'/'
+execute 'syntax match VimwikiList /'.g:vimwiki_rxListDefine.'/'
+" List item checkbox
+"syntax match VimwikiCheckBox /\[.\?\]/
+let g:vimwiki_rxCheckBox = '\s*\[['.g:vimwiki_listsyms.']\?\]\s'
+" Todo lists have a checkbox
+execute 'syntax match VimwikiListTodo /'.g:vimwiki_rxListBullet.g:vimwiki_rxCheckBox.'/'
+execute 'syntax match VimwikiListTodo /'.g:vimwiki_rxListNumber.g:vimwiki_rxCheckBox.'/'
+if g:vimwiki_hl_cb_checked
+ execute 'syntax match VimwikiCheckBoxDone /'.
+ \ g:vimwiki_rxListBullet.'\s*\['.g:vimwiki_listsyms[4].'\]\s.*$/'.
+ \ ' contains=VimwikiNoExistsLink,VimwikiLink'
+ execute 'syntax match VimwikiCheckBoxDone /'.
+ \ g:vimwiki_rxListNumber.'\s*\['.g:vimwiki_listsyms[4].'\]\s.*$/'.
+ \ ' contains=VimwikiNoExistsLink,VimwikiLink'
+endif
+
+execute 'syntax match VimwikiEqIn /'.g:vimwiki_rxEqIn.'/ contains=VimwikiEqInChar'
+execute 'syntax match VimwikiEqInT /'.g:vimwiki_rxEqIn.'/ contained contains=VimwikiEqInCharT'
+
+execute 'syntax match VimwikiBold /'.g:vimwiki_rxBold.'/ contains=VimwikiBoldChar,@Spell'
+execute 'syntax match VimwikiBoldT /'.g:vimwiki_rxBold.'/ contained contains=VimwikiBoldCharT,@Spell'
+
+execute 'syntax match VimwikiItalic /'.g:vimwiki_rxItalic.'/ contains=VimwikiItalicChar,@Spell'
+execute 'syntax match VimwikiItalicT /'.g:vimwiki_rxItalic.'/ contained contains=VimwikiItalicCharT,@Spell'
+
+execute 'syntax match VimwikiBoldItalic /'.g:vimwiki_rxBoldItalic.'/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
+execute 'syntax match VimwikiBoldItalicT /'.g:vimwiki_rxBoldItalic.'/ contained contains=VimwikiBoldItalicChatT,VimwikiItalicBoldCharT,@Spell'
+
+execute 'syntax match VimwikiItalicBold /'.g:vimwiki_rxItalicBold.'/ contains=VimwikiBoldItalicChar,VimwikiItalicBoldChar,@Spell'
+execute 'syntax match VimwikiItalicBoldT /'.g:vimwiki_rxItalicBold.'/ contained contains=VimwikiBoldItalicCharT,VimsikiItalicBoldCharT,@Spell'
+
+execute 'syntax match VimwikiDelText /'.g:vimwiki_rxDelText.'/ contains=VimwikiDelTextChar,@Spell'
+execute 'syntax match VimwikiDelTextT /'.g:vimwiki_rxDelText.'/ contained contains=VimwikiDelTextChar,@Spell'
+
+execute 'syntax match VimwikiSuperScript /'.g:vimwiki_rxSuperScript.'/ contains=VimwikiSuperScriptChar,@Spell'
+execute 'syntax match VimwikiSuperScriptT /'.g:vimwiki_rxSuperScript.'/ contained contains=VimwikiSuperScriptCharT,@Spell'
+
+execute 'syntax match VimwikiSubScript /'.g:vimwiki_rxSubScript.'/ contains=VimwikiSubScriptChar,@Spell'
+execute 'syntax match VimwikiSubScriptT /'.g:vimwiki_rxSubScript.'/ contained contains=VimwikiSubScriptCharT,@Spell'
+
+execute 'syntax match VimwikiCode /'.g:vimwiki_rxCode.'/ contains=VimwikiCodeChar'
+execute 'syntax match VimwikiCodeT /'.g:vimwiki_rxCode.'/ contained contains=VimwikiCodeCharT'
+
+" <hr> horizontal rule
+execute 'syntax match VimwikiHR /'.g:vimwiki_rxHR.'/'
+
+execute 'syntax region VimwikiPre start=/^\s*'.g:vimwiki_rxPreStart.
+ \ '/ end=/^\s*'.g:vimwiki_rxPreEnd.'\s*$/ contains=@Spell'
+
+execute 'syntax region VimwikiMath start=/^\s*'.g:vimwiki_rxMathStart.
+ \ '/ end=/^\s*'.g:vimwiki_rxMathEnd.'\s*$/ contains=@Spell'
+
+
+" placeholders
+syntax match VimwikiPlaceholder /^\s*%toc\%(\s.*\)\?$/ contains=VimwikiPlaceholderParam
+syntax match VimwikiPlaceholder /^\s*%nohtml\s*$/
+syntax match VimwikiPlaceholder /^\s*%title\%(\s.*\)\?$/ contains=VimwikiPlaceholderParam
+syntax match VimwikiPlaceholder /^\s*%template\%(\s.*\)\?$/ contains=VimwikiPlaceholderParam
+syntax match VimwikiPlaceholderParam /\s.*/ contained
+
+" html tags
+if g:vimwiki_valid_html_tags != ''
+ let html_tags = join(split(g:vimwiki_valid_html_tags, '\s*,\s*'), '\|')
+ exe 'syntax match VimwikiHTMLtag #\c</\?\%('.html_tags.'\)\%(\s\{-1}\S\{-}\)\{-}\s*/\?>#'
+ execute 'syntax match VimwikiBold #\c<b>.\{-}</b># contains=VimwikiHTMLTag'
+ execute 'syntax match VimwikiItalic #\c<i>.\{-}</i># contains=VimwikiHTMLTag'
+ execute 'syntax match VimwikiUnderline #\c<u>.\{-}</u># contains=VimwikiHTMLTag'
+
+ execute 'syntax match VimwikiComment /'.g:vimwiki_rxComment.'/ contains=@Spell'
+endif
+" }}}
+
+" header groups highlighting "{{{
+
+if g:vimwiki_hl_headers == 0
+ " Strangely in default colorscheme Title group is not set to bold for cterm...
+ if !exists("g:colors_name")
+ hi Title cterm=bold
+ endif
+ for i in range(1,6)
+ execute 'hi def link VimwikiHeader'.i.' Title'
+ endfor
+else
+ " default colors when headers of different levels are highlighted differently
+ " not making it yet another option; needed by ColorScheme autocommand
+ let g:vimwiki_hcolor_guifg_light = ['#aa5858','#507030','#1030a0','#103040','#505050','#636363']
+ let g:vimwiki_hcolor_ctermfg_light = ['DarkRed','DarkGreen','DarkBlue','Black','Black','Black']
+ let g:vimwiki_hcolor_guifg_dark = ['#e08090','#80e090','#6090e0','#c0c0f0','#e0e0f0','#f0f0f0']
+ let g:vimwiki_hcolor_ctermfg_dark = ['Red','Green','Blue','White','White','White']
+ for i in range(1,6)
+ execute 'hi def VimwikiHeader'.i.' guibg=bg guifg='.g:vimwiki_hcolor_guifg_{&bg}[i-1].' gui=bold ctermfg='.g:vimwiki_hcolor_ctermfg_{&bg}[i-1].' term=bold cterm=bold'
+ endfor
+endif
+"}}}
+
+
+
+" syntax group highlighting "{{{
+
+hi def link VimwikiMarkers Normal
+
+hi def link VimwikiEqIn Number
+hi def link VimwikiEqInT VimwikiEqIn
+
+hi def VimwikiBold term=bold cterm=bold gui=bold
+hi def link VimwikiBoldT VimwikiBold
+
+hi def VimwikiItalic term=italic cterm=italic gui=italic
+hi def link VimwikiItalicT VimwikiItalic
+
+hi def VimwikiBoldItalic term=bold cterm=bold gui=bold,italic
+hi def link VimwikiItalicBold VimwikiBoldItalic
+hi def link VimwikiBoldItalicT VimwikiBoldItalic
+hi def link VimwikiItalicBoldT VimwikiBoldItalic
+
+hi def VimwikiUnderline gui=underline
+
+hi def link VimwikiCode PreProc
+hi def link VimwikiCodeT VimwikiCode
+
+hi def link VimwikiPre PreProc
+hi def link VimwikiPreT VimwikiPre
+
+hi def link VimwikiMath Number
+hi def link VimwikiMathT VimwikiMath
+
+hi def link VimwikiNoExistsLink SpellBad
+hi def link VimwikiNoExistsLinkT VimwikiNoExistsLink
+
+hi def link VimwikiLink Underlined
+hi def link VimwikiLinkT VimwikiLink
+
+hi def link VimwikiList Identifier
+hi def link VimwikiListTodo VimwikiList
+"hi def link VimwikiCheckBox VimwikiList
+hi def link VimwikiCheckBoxDone Comment
+hi def link VimwikiEmoticons Character
+hi def link VimwikiHR Identifier
+
+hi def link VimwikiDelText Constant
+hi def link VimwikiDelTextT VimwikiDelText
+
+hi def link VimwikiSuperScript Number
+hi def link VimwikiSuperScriptT VimwikiSuperScript
+
+hi def link VimwikiSubScript Number
+hi def link VimwikiSubScriptT VimwikiSubScript
+
+hi def link VimwikiTodo Todo
+hi def link VimwikiComment Comment
+
+hi def link VimwikiPlaceholder SpecialKey
+hi def link VimwikiPlaceholderParam String
+hi def link VimwikiHTMLtag SpecialKey
+
+hi def link VimwikiEqInChar VimwikiMarkers
+hi def link VimwikiCellSeparator VimwikiMarkers
+hi def link VimwikiBoldChar VimwikiMarkers
+hi def link VimwikiItalicChar VimwikiMarkers
+hi def link VimwikiBoldItalicChar VimwikiMarkers
+hi def link VimwikiItalicBoldChar VimwikiMarkers
+hi def link VimwikiDelTextChar VimwikiMarkers
+hi def link VimwikiSuperScriptChar VimwikiMarkers
+hi def link VimwikiSubScriptChar VimwikiMarkers
+hi def link VimwikiCodeChar VimwikiMarkers
+hi def link VimwikiHeaderChar VimwikiMarkers
+
+hi def link VimwikiEqInCharT VimwikiMarkers
+hi def link VimwikiBoldCharT VimwikiMarkers
+hi def link VimwikiItalicCharT VimwikiMarkers
+hi def link VimwikiBoldItalicCharT VimwikiMarkers
+hi def link VimwikiItalicBoldCharT VimwikiMarkers
+hi def link VimwikiDelTextCharT VimwikiMarkers
+hi def link VimwikiSuperScriptCharT VimwikiMarkers
+hi def link VimwikiSubScriptCharT VimwikiMarkers
+hi def link VimwikiCodeCharT VimwikiMarkers
+hi def link VimwikiHeaderCharT VimwikiMarkers
+hi def link VimwikiLinkCharT VimwikiLinkT
+hi def link VimwikiNoExistsLinkCharT VimwikiNoExistsLinkT
+"}}}
+
+" -------------------------------------------------------------------------
+" Load syntax-specific functionality
+execute 'runtime! syntax/vimwiki_'.VimwikiGet('syntax').'_custom.vim'
+" -------------------------------------------------------------------------
+
+" FIXME it now does not make sense to pretend there is a single syntax "vimwiki"
+let b:current_syntax="vimwiki"
+
+" EMBEDDED syntax setup "{{{
+let nested = VimwikiGet('nested_syntaxes')
+if !empty(nested)
+ for [hl_syntax, vim_syntax] in items(nested)
+ call vimwiki#base#nested_syntax(vim_syntax,
+ \ '^\s*'.g:vimwiki_rxPreStart.'\%(.*[[:blank:][:punct:]]\)\?'.
+ \ hl_syntax.'\%([[:blank:][:punct:]].*\)\?',
+ \ '^\s*'.g:vimwiki_rxPreEnd, 'VimwikiPre')
+ endfor
+endif
+" LaTeX
+call vimwiki#base#nested_syntax('tex',
+ \ '^\s*'.g:vimwiki_rxMathStart.'\%(.*[[:blank:][:punct:]]\)\?'.
+ \ '\%([[:blank:][:punct:]].*\)\?',
+ \ '^\s*'.g:vimwiki_rxMathEnd, 'VimwikiMath')
+"}}}
+
+
+syntax spell toplevel
+
+let timeend = vimwiki#u#time(starttime) "XXX
+call VimwikiLog_extend('timing',['syntax:scans',timescans],['syntax:regexloaded',time0],['syntax:beforeHLexisting',time01],['syntax:afterHLexisting',time02],['syntax:end',timeend])
diff --git a/syntax/vimwiki_default.vim b/syntax/vimwiki_default.vim
new file mode 100644
index 0000000..1d5093b
--- /dev/null
+++ b/syntax/vimwiki_default.vim
@@ -0,0 +1,89 @@
+" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
+" Vimwiki syntax file
+" Default syntax
+" Author: Maxim Kim <habamax@gmail.com>
+" Home: http://code.google.com/p/vimwiki/
+
+" placeholder for math environments
+let b:vimwiki_mathEnv = ""
+
+" text: $ equation_inline $
+let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
+let g:vimwiki_char_eqin = '\$'
+
+" text: *strong*
+" let g:vimwiki_rxBold = '\*[^*]\+\*'
+let g:vimwiki_rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'\*'.
+ \'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
+ \'\*'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_bold = '*'
+
+" text: _emphasis_
+" let g:vimwiki_rxItalic = '_[^_]\+_'
+let g:vimwiki_rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'_'.
+ \'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
+ \'_'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_italic = '_'
+
+" text: *_bold italic_* or _*italic bold*_
+let g:vimwiki_rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'\*_'.
+ \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
+ \'_\*'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_bolditalic = '\*_'
+
+let g:vimwiki_rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'_\*'.
+ \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
+ \'\*_'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_italicbold = '_\*'
+
+" text: `code`
+let g:vimwiki_rxCode = '`[^`]\+`'
+let g:vimwiki_char_code = '`'
+
+" text: ~~deleted text~~
+let g:vimwiki_rxDelText = '\~\~[^~`]\+\~\~'
+let g:vimwiki_char_deltext = '\~\~'
+
+" text: ^superscript^
+let g:vimwiki_rxSuperScript = '\^[^^`]\+\^'
+let g:vimwiki_char_superscript = '^'
+
+" text: ,,subscript,,
+let g:vimwiki_rxSubScript = ',,[^,`]\+,,'
+let g:vimwiki_char_subscript = ',,'
+
+" generic headers
+let g:vimwiki_rxH = '='
+let g:vimwiki_symH = 1
+
+
+
+" <hr>, horizontal rule
+let g:vimwiki_rxHR = '^-----*$'
+
+" Tables. Each line starts and ends with '|'; each cell is separated by '|'
+let g:vimwiki_rxTableSep = '|'
+
+" List items start with optional whitespace(s) then '* ' or '# '
+let g:vimwiki_rxListBullet = '^\s*[*-]\s'
+let g:vimwiki_rxListNumber = '^\s*#\s'
+
+let g:vimwiki_rxListDefine = '::\(\s\|$\)'
+
+" Preformatted text
+let g:vimwiki_rxPreStart = '{{{'
+let g:vimwiki_rxPreEnd = '}}}'
+
+" Math block
+let g:vimwiki_rxMathStart = '{{\$'
+let g:vimwiki_rxMathEnd = '}}\$'
+
+let g:vimwiki_rxComment = '^\s*%%.*$'
diff --git a/syntax/vimwiki_markdown.vim b/syntax/vimwiki_markdown.vim
new file mode 100644
index 0000000..13e35e1
--- /dev/null
+++ b/syntax/vimwiki_markdown.vim
@@ -0,0 +1,89 @@
+" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
+" Vimwiki syntax file
+" Default syntax
+" Author: Maxim Kim <habamax@gmail.com>
+" Home: http://code.google.com/p/vimwiki/
+
+" placeholder for math environments
+let b:vimwiki_mathEnv = ""
+
+" text: $ equation_inline $
+let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
+let g:vimwiki_char_eqin = '\$'
+
+" text: *strong*
+" let g:vimwiki_rxBold = '\*[^*]\+\*'
+let g:vimwiki_rxBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'\*'.
+ \'\%([^*`[:space:]][^*`]*[^*`[:space:]]\|[^*`[:space:]]\)'.
+ \'\*'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_bold = '*'
+
+" text: _emphasis_
+" let g:vimwiki_rxItalic = '_[^_]\+_'
+let g:vimwiki_rxItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'_'.
+ \'\%([^_`[:space:]][^_`]*[^_`[:space:]]\|[^_`[:space:]]\)'.
+ \'_'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_italic = '_'
+
+" text: *_bold italic_* or _*italic bold*_
+let g:vimwiki_rxBoldItalic = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'\*_'.
+ \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
+ \'_\*'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_bolditalic = '\*_'
+
+let g:vimwiki_rxItalicBold = '\%(^\|\s\|[[:punct:]]\)\@<='.
+ \'_\*'.
+ \'\%([^*_`[:space:]][^*_`]*[^*_`[:space:]]\|[^*_`[:space:]]\)'.
+ \'\*_'.
+ \'\%([[:punct:]]\|\s\|$\)\@='
+let g:vimwiki_char_italicbold = '_\*'
+
+" text: `code`
+let g:vimwiki_rxCode = '`[^`]\+`'
+let g:vimwiki_char_code = '`'
+
+" text: ~~deleted text~~
+let g:vimwiki_rxDelText = '\~\~[^~`]\+\~\~'
+let g:vimwiki_char_deltext = '\~\~'
+
+" text: ^superscript^
+let g:vimwiki_rxSuperScript = '\^[^^`]\+\^'
+let g:vimwiki_char_superscript = '^'
+
+" text: ,,subscript,,
+let g:vimwiki_rxSubScript = ',,[^,`]\+,,'
+let g:vimwiki_char_subscript = ',,'
+
+" generic headers
+let g:vimwiki_rxH = '#'
+let g:vimwiki_symH = 0
+
+
+
+" <hr>, horizontal rule
+let g:vimwiki_rxHR = '^-----*$'
+
+" Tables. Each line starts and ends with '|'; each cell is separated by '|'
+let g:vimwiki_rxTableSep = '|'
+
+" List items start with optional whitespace(s) then '* ' or '1. ', '2. ', etc.
+let g:vimwiki_rxListBullet = '^\s*[*+-]\s'
+let g:vimwiki_rxListNumber = '^\s*[0-9]\+\.\s'
+
+let g:vimwiki_rxListDefine = '::\%(\s\|$\)'
+
+" Preformatted text
+let g:vimwiki_rxPreStart = '```'
+let g:vimwiki_rxPreEnd = '```'
+
+" Math block
+let g:vimwiki_rxMathStart = '\$\$'
+let g:vimwiki_rxMathEnd = '\$\$'
+
+let g:vimwiki_rxComment = '^\s*%%.*$'
diff --git a/syntax/vimwiki_markdown_custom.vim b/syntax/vimwiki_markdown_custom.vim
new file mode 100644
index 0000000..94ab358
--- /dev/null
+++ b/syntax/vimwiki_markdown_custom.vim
@@ -0,0 +1,392 @@
+" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
+" Vimwiki syntax file
+" Author: Stuart Andrews <stu.andrews@gmail.com>
+" Home: http://code.google.com/p/vimwiki/
+
+" LINKS: assume this is common to all syntaxes "{{{
+
+" }}}
+
+" -------------------------------------------------------------------------
+" Load concrete Wiki syntax: sets regexes and templates for headers and links
+
+" -------------------------------------------------------------------------
+
+
+
+" LINKS: setup of larger regexes {{{
+
+" LINKS: setup wikilink0 regexps {{{
+" 0. [[URL]], or [[URL|DESCRIPTION]]
+
+" 0a) match [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLink0 = g:vimwiki_rxWikiLink
+" 0b) match URL within [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLink0MatchUrl = g:vimwiki_rxWikiLinkMatchUrl
+" 0c) match DESCRIPTION within [[URL|DESCRIPTION]]
+let g:vimwiki_rxWikiLink0MatchDescr = g:vimwiki_rxWikiLinkMatchDescr
+" }}}
+
+" LINKS: setup wikilink1 regexps {{{
+" 1. [URL][], or [DESCRIPTION][URL]
+
+let g:vimwiki_rxWikiLink1Prefix = '['
+let g:vimwiki_rxWikiLink1Suffix = ']'
+let g:vimwiki_rxWikiLink1Separator = ']['
+
+" [URL][]
+let g:vimwiki_WikiLink1Template1 = g:vimwiki_rxWikiLink1Prefix . '__LinkUrl__'.
+ \ g:vimwiki_rxWikiLink1Separator. g:vimwiki_rxWikiLink1Suffix
+" [DESCRIPTION][URL]
+let g:vimwiki_WikiLink1Template2 = g:vimwiki_rxWikiLink1Prefix . '__LinkDescription__'.
+ \ g:vimwiki_rxWikiLink1Separator. '__LinkUrl__'.
+ \ g:vimwiki_rxWikiLink1Suffix
+"
+let magic_chars = '.*[]\^$'
+let valid_chars = '[^\\\[\]]'
+
+let g:vimwiki_rxWikiLink1Prefix = escape(g:vimwiki_rxWikiLink1Prefix, magic_chars)
+let g:vimwiki_rxWikiLink1Suffix = escape(g:vimwiki_rxWikiLink1Suffix, magic_chars)
+let g:vimwiki_rxWikiLink1Separator = escape(g:vimwiki_rxWikiLink1Separator, magic_chars)
+let g:vimwiki_rxWikiLink1Url = valid_chars.'\{-}'
+let g:vimwiki_rxWikiLink1Descr = valid_chars.'\{-}'
+
+let g:vimwiki_rxWikiLink1InvalidPrefix = '[\]\[]\@<!'
+let g:vimwiki_rxWikiLink1InvalidSuffix = '[\]\[]\@!'
+let g:vimwiki_rxWikiLink1Prefix = g:vimwiki_rxWikiLink1InvalidPrefix.
+ \ g:vimwiki_rxWikiLink1Prefix
+let g:vimwiki_rxWikiLink1Suffix = g:vimwiki_rxWikiLink1Suffix.
+ \ g:vimwiki_rxWikiLink1InvalidSuffix
+
+"
+" 1. [URL][], [DESCRIPTION][URL]
+" 1a) match [URL][], [DESCRIPTION][URL]
+let g:vimwiki_rxWikiLink1 = g:vimwiki_rxWikiLink1Prefix.
+ \ g:vimwiki_rxWikiLink1Url. g:vimwiki_rxWikiLink1Separator.
+ \ g:vimwiki_rxWikiLink1Suffix.
+ \ '\|'. g:vimwiki_rxWikiLink1Prefix.
+ \ g:vimwiki_rxWikiLink1Descr.g:vimwiki_rxWikiLink1Separator.
+ \ g:vimwiki_rxWikiLink1Url.g:vimwiki_rxWikiLink1Suffix
+" 1b) match URL within [URL][], [DESCRIPTION][URL]
+let g:vimwiki_rxWikiLink1MatchUrl = g:vimwiki_rxWikiLink1Prefix.
+ \ '\zs'. g:vimwiki_rxWikiLink1Url. '\ze'. g:vimwiki_rxWikiLink1Separator.
+ \ g:vimwiki_rxWikiLink1Suffix.
+ \ '\|'. g:vimwiki_rxWikiLink1Prefix.
+ \ g:vimwiki_rxWikiLink1Descr. g:vimwiki_rxWikiLink1Separator.
+ \ '\zs'. g:vimwiki_rxWikiLink1Url. '\ze'. g:vimwiki_rxWikiLink1Suffix
+" 1c) match DESCRIPTION within [DESCRIPTION][URL]
+let g:vimwiki_rxWikiLink1MatchDescr = g:vimwiki_rxWikiLink1Prefix.
+ \ '\zs'. g:vimwiki_rxWikiLink1Descr.'\ze'. g:vimwiki_rxWikiLink1Separator.
+ \ g:vimwiki_rxWikiLink1Url.g:vimwiki_rxWikiLink1Suffix
+" }}}
+
+" LINKS: Syntax helper {{{
+let g:vimwiki_rxWikiLink1Prefix1 = g:vimwiki_rxWikiLink1Prefix
+let g:vimwiki_rxWikiLink1Suffix1 = g:vimwiki_rxWikiLink1Separator.
+ \ g:vimwiki_rxWikiLink1Url.g:vimwiki_rxWikiLink1Suffix
+" }}}
+
+" *. ANY wikilink {{{
+" *a) match ANY wikilink
+let g:vimwiki_rxWikiLink = ''.
+ \ g:vimwiki_rxWikiLink0.'\|'.
+ \ g:vimwiki_rxWikiLink1
+" *b) match URL within ANY wikilink
+let g:vimwiki_rxWikiLinkMatchUrl = ''.
+ \ g:vimwiki_rxWikiLink0MatchUrl.'\|'.
+ \ g:vimwiki_rxWikiLink1MatchUrl
+" *c) match DESCRIPTION within ANY wikilink
+let g:vimwiki_rxWikiLinkMatchDescr = ''.
+ \ g:vimwiki_rxWikiLink0MatchDescr.'\|'.
+ \ g:vimwiki_rxWikiLink1MatchDescr
+" }}}
+
+" LINKS: setup of wikiincl regexps {{{
+" }}}
+
+" LINKS: Syntax helper {{{
+" }}}
+
+" LINKS: Setup weblink0 regexps {{{
+" 0. URL : free-standing links: keep URL UR(L) strip trailing punct: URL; URL) UR(L))
+let g:vimwiki_rxWeblink0 = g:vimwiki_rxWeblink
+" 0a) match URL within URL
+let g:vimwiki_rxWeblinkMatchUrl0 = g:vimwiki_rxWeblinkMatchUrl
+" 0b) match DESCRIPTION within URL
+let g:vimwiki_rxWeblinkMatchDescr0 = g:vimwiki_rxWeblinkMatchDescr
+" }}}
+
+" LINKS: Setup weblink1 regexps {{{
+let g:vimwiki_rxWeblink1Prefix = '['
+let g:vimwiki_rxWeblink1Suffix = ')'
+let g:vimwiki_rxWeblink1Separator = ']('
+" [DESCRIPTION](URL)
+let g:vimwiki_Weblink1Template = g:vimwiki_rxWeblink1Prefix . '__LinkDescription__'.
+ \ g:vimwiki_rxWeblink1Separator. '__LinkUrl__'.
+ \ g:vimwiki_rxWeblink1Suffix
+
+let magic_chars = '.*[]\^$'
+let valid_chars = '[^\\]'
+
+let g:vimwiki_rxWeblink1Prefix = escape(g:vimwiki_rxWeblink1Prefix, magic_chars)
+let g:vimwiki_rxWeblink1Suffix = escape(g:vimwiki_rxWeblink1Suffix, magic_chars)
+let g:vimwiki_rxWeblink1Separator = escape(g:vimwiki_rxWeblink1Separator, magic_chars)
+let g:vimwiki_rxWeblink1Url = valid_chars.'\{-}'
+let g:vimwiki_rxWeblink1Descr = valid_chars.'\{-}'
+
+"
+" " 2012-02-04 TODO not starting with [[ or ][ ? ... prefix = '[\[\]]\@<!\['
+" 1. [DESCRIPTION](URL)
+" 1a) match [DESCRIPTION](URL)
+let g:vimwiki_rxWeblink1 = g:vimwiki_rxWeblink1Prefix.
+ \ g:vimwiki_rxWeblink1Url.g:vimwiki_rxWeblink1Separator.
+ \ g:vimwiki_rxWeblink1Descr.g:vimwiki_rxWeblink1Suffix
+" 1b) match URL within [DESCRIPTION](URL)
+let g:vimwiki_rxWeblink1MatchUrl = g:vimwiki_rxWeblink1Prefix.
+ \ g:vimwiki_rxWeblink1Descr. g:vimwiki_rxWeblink1Separator.
+ \ '\zs'.g:vimwiki_rxWeblink1Url.'\ze'. g:vimwiki_rxWeblink1Suffix
+" 1c) match DESCRIPTION within [DESCRIPTION](URL)
+let g:vimwiki_rxWeblink1MatchDescr = g:vimwiki_rxWeblink1Prefix.
+ \ '\zs'.g:vimwiki_rxWeblink1Descr.'\ze'. g:vimwiki_rxWeblink1Separator.
+ \ g:vimwiki_rxWeblink1Url. g:vimwiki_rxWeblink1Suffix
+" }}}
+
+" Syntax helper {{{
+" TODO: image links too !!
+" let g:vimwiki_rxWeblink1Prefix1 = '!\?'. g:vimwiki_rxWeblink1Prefix
+let g:vimwiki_rxWeblink1Prefix1 = g:vimwiki_rxWeblink1Prefix
+let g:vimwiki_rxWeblink1Suffix1 = g:vimwiki_rxWeblink1Separator.
+ \ g:vimwiki_rxWeblink1Url.g:vimwiki_rxWeblink1Suffix
+" }}}
+
+" *. ANY weblink {{{
+" *a) match ANY weblink
+let g:vimwiki_rxWeblink = ''.
+ \ g:vimwiki_rxWeblink1.'\|'.
+ \ g:vimwiki_rxWeblink0
+" *b) match URL within ANY weblink
+let g:vimwiki_rxWeblinkMatchUrl = ''.
+ \ g:vimwiki_rxWeblink1MatchUrl.'\|'.
+ \ g:vimwiki_rxWeblinkMatchUrl0
+" *c) match DESCRIPTION within ANY weblink
+let g:vimwiki_rxWeblinkMatchDescr = ''.
+ \ g:vimwiki_rxWeblink1MatchDescr.'\|'.
+ \ g:vimwiki_rxWeblinkMatchDescr0
+" }}}
+
+
+" LINKS: Setup anylink regexps {{{
+let g:vimwiki_rxAnyLink = g:vimwiki_rxWikiLink.'\|'.
+ \ g:vimwiki_rxWikiIncl.'\|'.g:vimwiki_rxWeblink
+" }}}
+
+
+" LINKS: setup wikilink1 reference link definitions {{{
+let g:vimwiki_rxMkdRef = '\['.g:vimwiki_rxWikiLinkDescr.']:\%(\s\+\|\n\)'.
+ \ g:vimwiki_rxWeblink0
+let g:vimwiki_rxMkdRefMatchDescr = '\[\zs'.g:vimwiki_rxWikiLinkDescr.'\ze]:\%(\s\+\|\n\)'.
+ \ g:vimwiki_rxWeblink0
+let g:vimwiki_rxMkdRefMatchUrl = '\['.g:vimwiki_rxWikiLinkDescr.']:\%(\s\+\|\n\)\zs'.
+ \ g:vimwiki_rxWeblink0.'\ze'
+" }}}
+
+" }}} end of Links
+
+" LINKS: highlighting is complicated due to "nonexistent" links feature {{{
+function! s:add_target_syntax_ON(target, type) " {{{
+ if g:vimwiki_debug > 1
+ echom '[vimwiki_debug] syntax target > '.a:target
+ endif
+ let prefix0 = 'syntax match '.a:type.' `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
+ let prefix1 = 'syntax match '.a:type.'T `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction "}}}
+
+function! s:add_target_syntax_OFF(target, type) " {{{
+ if g:vimwiki_debug > 1
+ echom '[vimwiki_debug] syntax target > '.a:target
+ endif
+ let prefix0 = 'syntax match VimwikiNoExistsLink `'
+ let suffix0 = '` display contains=@NoSpell,VimwikiLinkRest,'.a:type.'Char'
+ let prefix1 = 'syntax match VimwikiNoExistsLinkT `'
+ let suffix1 = '` display contained'
+ execute prefix0. a:target. suffix0
+ execute prefix1. a:target. suffix1
+endfunction "}}}
+
+function! s:wrap_wikilink1_rx(target) "{{{
+ return g:vimwiki_rxWikiLink1InvalidPrefix.a:target.
+ \ g:vimwiki_rxWikiLink1InvalidSuffix
+endfunction "}}}
+
+function! s:existing_mkd_refs() "{{{
+ call vimwiki#markdown_base#reset_mkd_refs()
+ return "\n".join(keys(vimwiki#markdown_base#get_reflinks()), "\n")."\n"
+endfunction "}}}
+
+function! s:highlight_existing_links() "{{{
+ " Wikilink1
+ " Conditional highlighting that depends on the existence of a wiki file or
+ " directory is only available for *schemeless* wiki links
+ " Links are set up upon BufEnter (see plugin/...)
+ let safe_links = vimwiki#base#file_pattern(b:existing_wikifiles)
+ " Wikilink1 Dirs set up upon BufEnter (see plugin/...)
+ let safe_dirs = vimwiki#base#file_pattern(b:existing_wikidirs)
+ " Ref links are cached
+ let safe_reflinks = vimwiki#base#file_pattern(s:existing_mkd_refs())
+
+
+ " match [URL][]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template1,
+ \ safe_links, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][URL]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template2,
+ \ safe_links, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+
+ " match [DIRURL][]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template1,
+ \ safe_dirs, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][DIRURL]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template2,
+ \ safe_dirs, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+
+ " match [MKDREF][]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template1,
+ \ safe_reflinks, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+ " match [DESCRIPTION][MKDREF]
+ let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template2,
+ \ safe_reflinks, g:vimwiki_rxWikiLink1Descr, '')
+ call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+endfunction "}}}
+
+
+" use max highlighting - could be quite slow if there are too many wikifiles
+if VimwikiGet('maxhi')
+ " WikiLink
+ call s:add_target_syntax_OFF(g:vimwiki_rxWikiLink1, 'VimwikiWikiLink1')
+
+ " Subsequently, links verified on vimwiki's path are highlighted as existing
+ let time01 = vimwiki#u#time(starttime) "XXX
+ call s:highlight_existing_links()
+ let time02 = vimwiki#u#time(starttime) "XXX
+else
+ let time01 = vimwiki#u#time(starttime) "XXX
+ " Wikilink
+ call s:add_target_syntax_ON(g:vimwiki_rxWikiLink1, 'VimwikiWikiLink1')
+ let time02 = vimwiki#u#time(starttime) "XXX
+endif
+
+" Weblink
+call s:add_target_syntax_ON(g:vimwiki_rxWeblink1, 'VimwikiWeblink1')
+
+" WikiLink
+" All remaining schemes are highlighted automatically
+let rxSchemes = '\%('.
+ \ join(split(g:vimwiki_schemes, '\s*,\s*'), '\|').'\|'.
+ \ join(split(g:vimwiki_web_schemes1, '\s*,\s*'), '\|').
+ \ '\):'
+
+" a) match [nonwiki-scheme-URL]
+let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template1,
+ \ rxSchemes.g:vimwiki_rxWikiLink1Url, g:vimwiki_rxWikiLink1Descr, '')
+call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+" b) match [DESCRIPTION][nonwiki-scheme-URL]
+let target = vimwiki#base#apply_template(g:vimwiki_WikiLink1Template2,
+ \ rxSchemes.g:vimwiki_rxWikiLink1Url, g:vimwiki_rxWikiLink1Descr, '')
+call s:add_target_syntax_ON(s:wrap_wikilink1_rx(target), 'VimwikiWikiLink1')
+" }}}
+
+
+" generic headers "{{{
+
+" Header levels, 1-6
+for i in range(1,6)
+ execute 'syntax match VimwikiHeader'.i.' /'.g:vimwiki_rxH{i}.'/ contains=VimwikiTodo,VimwikiHeaderChar,VimwikiNoExistsLink,VimwikiCode,VimwikiLink,VimwikiWeblink1,VimwikiWikiLink1,@Spell'
+endfor
+
+" }}}
+
+" concealed chars " {{{
+if exists("+conceallevel")
+ syntax conceal on
+endif
+
+syntax spell toplevel
+
+if g:vimwiki_debug > 1
+ echom 'WikiLink1 Prefix: '.g:vimwiki_rxWikiLink1Prefix1
+ echom 'WikiLink1 Suffix: '.g:vimwiki_rxWikiLink1Suffix1
+ echom 'Weblink1 Prefix: '.g:vimwiki_rxWeblink1Prefix1
+ echom 'Weblink1 Suffix: '.g:vimwiki_rxWeblink1Suffix1
+endif
+
+" VimwikiWikiLink1Char is for syntax markers (and also URL when a description
+" is present) and may be concealed
+let options = ' contained transparent contains=NONE'
+" conceal wikilink1
+execute 'syn match VimwikiWikiLink1Char /'.g:vimwiki_rxWikiLink1Prefix.'/'.options
+execute 'syn match VimwikiWikiLink1Char /'.g:vimwiki_rxWikiLink1Suffix.'/'.options
+execute 'syn match VimwikiWikiLink1Char /'.g:vimwiki_rxWikiLink1Prefix1.'/'.options
+execute 'syn match VimwikiWikiLink1Char /'.g:vimwiki_rxWikiLink1Suffix1.'/'.options
+
+" conceal weblink1
+execute 'syn match VimwikiWeblink1Char "'.g:vimwiki_rxWeblink1Prefix1.'"'.options
+execute 'syn match VimwikiWeblink1Char "'.g:vimwiki_rxWeblink1Suffix1.'"'.options
+
+if exists("+conceallevel")
+ syntax conceal off
+endif
+" }}}
+
+" non concealed chars " {{{
+" }}}
+
+" main syntax groups {{{
+
+" Tables
+syntax match VimwikiTableRow /^\s*|.\+|\s*$/
+ \ transparent contains=VimwikiCellSeparator,
+ \ VimwikiLinkT,
+ \ VimwikiWeblink1T,
+ \ VimwikiWikiLink1T,
+ \ VimwikiNoExistsLinkT,
+ \ VimwikiEmoticons,
+ \ VimwikiTodo,
+ \ VimwikiBoldT,
+ \ VimwikiItalicT,
+ \ VimwikiBoldItalicT,
+ \ VimwikiItalicBoldT,
+ \ VimwikiDelTextT,
+ \ VimwikiSuperScriptT,
+ \ VimwikiSubScriptT,
+ \ VimwikiCodeT,
+ \ VimwikiEqInT,
+ \ @Spell
+
+" }}}
+
+" header groups highlighting "{{{
+"}}}
+
+
+" syntax group highlighting "{{{
+hi def link VimwikiWeblink1 VimwikiLink
+hi def link VimwikiWeblink1T VimwikiLink
+
+hi def link VimwikiWikiLink1 VimwikiLink
+hi def link VimwikiWikiLink1T VimwikiLink
+"}}}
+
+
+
+" EMBEDDED syntax setup "{{{
+"}}}
+"
diff --git a/syntax/vimwiki_media.vim b/syntax/vimwiki_media.vim
new file mode 100644
index 0000000..c168eed
--- /dev/null
+++ b/syntax/vimwiki_media.vim
@@ -0,0 +1,71 @@
+" vim:tabstop=2:shiftwidth=2:expandtab:foldmethod=marker:textwidth=79
+" Vimwiki syntax file
+" MediaWiki syntax
+" Author: Maxim Kim <habamax@gmail.com>
+" Home: http://code.google.com/p/vimwiki/
+
+" placeholder for math environments
+let b:vimwiki_mathEnv = ""
+
+" text: $ equation_inline $
+let g:vimwiki_rxEqIn = '\$[^$`]\+\$'
+let g:vimwiki_char_eqin = '\$'
+
+" text: '''strong'''
+let g:vimwiki_rxBold = "'''[^']\\+'''"
+let g:vimwiki_char_bold = "'''"
+
+" text: ''emphasis''
+let g:vimwiki_rxItalic = "''[^']\\+''"
+let g:vimwiki_char_italic = "''"
+
+" text: '''''strong italic'''''
+let g:vimwiki_rxBoldItalic = "'''''[^']\\+'''''"
+let g:vimwiki_rxItalicBold = g:vimwiki_rxBoldItalic
+let g:vimwiki_char_bolditalic = "'''''"
+let g:vimwiki_char_italicbold = g:vimwiki_char_bolditalic
+
+" text: `code`
+let g:vimwiki_rxCode = '`[^`]\+`'
+let g:vimwiki_char_code = '`'
+
+" text: ~~deleted text~~
+let g:vimwiki_rxDelText = '\~\~[^~]\+\~\~'
+let g:vimwiki_char_deltext = '\~\~'
+
+" text: ^superscript^
+let g:vimwiki_rxSuperScript = '\^[^^]\+\^'
+let g:vimwiki_char_superscript = '^'
+
+" text: ,,subscript,,
+let g:vimwiki_rxSubScript = ',,[^,]\+,,'
+let g:vimwiki_char_subscript = ',,'
+
+" generic headers
+let g:vimwiki_rxH = '='
+let g:vimwiki_symH = 1
+
+
+
+" <hr>, horizontal rule
+let g:vimwiki_rxHR = '^-----*$'
+
+" Tables. Each line starts and ends with '|'; each cell is separated by '|'
+let g:vimwiki_rxTableSep = '|'
+
+" Bulleted list items start with whitespace(s), then '*'
+" highlight only bullets and digits.
+let g:vimwiki_rxListBullet = '^\s*\*\+\s\%([^*]*$\)\@='
+let g:vimwiki_rxListNumber = '^\s*#\+\s'
+
+let g:vimwiki_rxListDefine = '^\%(;\|:\)\s'
+
+" Preformatted text
+let g:vimwiki_rxPreStart = '<pre>'
+let g:vimwiki_rxPreEnd = '<\/pre>'
+
+" Math block
+let g:vimwiki_rxMathStart = '{{\$'
+let g:vimwiki_rxMathEnd = '}}\$'
+
+let g:vimwiki_rxComment = '^\s*%%.*$'