From 5e0bfa88a016956ee6769c3f90a3ce9f080933b6 Mon Sep 17 00:00:00 2001 From: Caleb Maclennan Date: Tue, 12 May 2020 20:06:24 +0300 Subject: [PATCH 1/4] chore: Relegate current syntax to legacy mode --- syntax/pandoc.vim | 690 +--------------------------------- syntax/pandoc_commonmark.vim | 8 + syntax/pandoc_legacy.vim | 699 +++++++++++++++++++++++++++++++++++ 3 files changed, 713 insertions(+), 684 deletions(-) create mode 100644 syntax/pandoc_commonmark.vim create mode 100644 syntax/pandoc_legacy.vim diff --git a/syntax/pandoc.vim b/syntax/pandoc.vim index a393f29..5a9d064 100644 --- a/syntax/pandoc.vim +++ b/syntax/pandoc.vim @@ -1,6 +1,3 @@ -scriptencoding utf-8 -" vim: set fdm=marker foldlevel=0: -" " Vim syntax file " " Language: Pandoc (superset of Markdown) @@ -9,692 +6,17 @@ scriptencoding utf-8 " Contributor: David Sanson " Contributor: Jorge Israel Peña " OriginalAuthor: Jeremy Schultz -" Version: 5.0 - -" Configuration: {{{1 -" -" use conceal? {{{2 -if !exists('g:pandoc#syntax#conceal#use') - if v:version < 703 - let g:pandoc#syntax#conceal#use = 0 - else - let g:pandoc#syntax#conceal#use = 1 - endif -else - " exists, but we cannot use it, disable anyway - if v:version < 703 - let g:pandoc#syntax#conceal#use = 0 - endif -endif -"}}}2 - -" what groups not to use conceal in. works as a blacklist {{{2 -if !exists('g:pandoc#syntax#conceal#blacklist') - let g:pandoc#syntax#conceal#blacklist = [] -endif -" }}}2 - -" cchars used in conceal rules {{{2 -" utf-8 defaults (preferred) -if &encoding ==# 'utf-8' - let s:cchars = { - \'newline': '↵', - \'image': '▨', - \'super': 'ⁿ', - \'sub': 'ₙ', - \'strike': 'x̶', - \'atx': '§', - \'codelang': 'λ', - \'codeend': '—', - \'abbrev': '→', - \'footnote': '†', - \'definition': ' ', - \'li': '•', - \'html_c_s': '‹', - \'html_c_e': '›'} -else - " ascii defaults - let s:cchars = { - \'newline': ' ', - \'image': 'i', - \'super': '^', - \'sub': '_', - \'strike': '~', - \'atx': '#', - \'codelang': 'l', - \'codeend': '-', - \'abbrev': 'a', - \'footnote': 'f', - \'definition': ' ', - \'li': '*', - \'html_c_s': '+', - \'html_c_e': '+'} -endif -" }}}2 - -" if the user has a dictionary with replacements for the default cchars, use those {{{2 -if exists('g:pandoc#syntax#conceal#cchar_overrides') - let s:cchars = extend(s:cchars, g:pandoc#syntax#conceal#cchar_overrides) -endif -" }}}2 - -"should the urls in links be concealed? {{{2 -if !exists('g:pandoc#syntax#conceal#urls') - let g:pandoc#syntax#conceal#urls = 0 -endif -" should backslashes in escapes be concealed? {{{2 -if !exists('g:pandoc#syntax#conceal#backslash') - let g:pandoc#syntax#conceal#backslash = 0 -endif -" }}}2 - -" leave specified codeblocks as Normal (i.e. 'unhighlighted') {{{2 -if !exists('g:pandoc#syntax#codeblocks#ignore') - let g:pandoc#syntax#codeblocks#ignore = [] -endif -" }}}2 - -" use embedded highlighting for delimited codeblocks where a language is specifed. {{{2 -if !exists('g:pandoc#syntax#codeblocks#embeds#use') - let g:pandoc#syntax#codeblocks#embeds#use = 1 -endif -" }}}2 - -" for what languages and using what vim syntax files highlight those embeds. {{{2 -" defaults to None. -if !exists('g:pandoc#syntax#codeblocks#embeds#langs') - let g:pandoc#syntax#codeblocks#embeds#langs = [] -endif -" }}}2 - -" use italics ? {{{2 -if !exists('g:pandoc#syntax#style#emphases') - let g:pandoc#syntax#style#emphases = 1 -endif -" if 0, we don't conceal the emphasis marks, otherwise there wouldn't be a way -" to tell where the styles apply. -if g:pandoc#syntax#style#emphases == 0 - call add(g:pandoc#syntax#conceal#blacklist, 'block') -endif -" }}}2 - -" underline subscript, superscript and strikeout? {{{2 -if !exists('g:pandoc#syntax#style#underline_special') - let g:pandoc#syntax#style#underline_special = 1 -endif -" }}}2 - -" protect code blocks? {{{2 -if !exists('g:pandoc#syntax#protect#codeblocks') - let g:pandoc#syntax#protect#codeblocks = 1 -endif -" }}}2 - -" use color column? {{{2 -if !exists('g:pandoc#syntax#colorcolumn') - let g:pandoc#syntax#colorcolumn = 0 -endif -" }}}2 - -" highlight new lines? {{{2 -if !exists('g:pandoc#syntax#newlines') - let g:pandoc#syntax#newlines = 1 -endif -" }}} - -" detect roman-numeral list items? {{{2 -if !exists('g:pandoc#syntax#roman_lists') - let g:pandoc#syntax#roman_lists = 0 -endif -" }}}2 -" disable syntax highlighting for definition lists? (better performances) {{{2 -if !exists('g:pandoc#syntax#use_definition_lists') - let g:pandoc#syntax#use_definition_lists = 1 -endif -" }}}2 - -" }}}1 - -" Functions: {{{1 -" EnableEmbedsforCodeblocksWithLang {{{2 -function! EnableEmbedsforCodeblocksWithLang(entry) - " prevent embedded language syntaxes from changing 'foldmethod' - if has('folding') - let s:foldmethod = &l:foldmethod - endif - - try - let s:langname = matchstr(a:entry, '^[^=]*') - let s:langsyntaxfile = matchstr(a:entry, '[^=]*$') - unlet! b:current_syntax - exe 'syn include @'.toupper(s:langname).' syntax/'.s:langsyntaxfile.'.vim' - exe 'syn region pandocDelimitedCodeBlock_' . s:langname . ' start=/\(\_^\([ ]\{4,}\|\t\)\=\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' . s:langname . '\>.*\n\)\@<=\_^/' . - \' end=/\_$\n\(\([ ]\{4,}\|\t\)\=\(`\{3,}`*\|\~\{3,}\~*\)\_$\n\_$\)\@=/ contained containedin=pandocDelimitedCodeBlock' . - \' contains=@' . toupper(s:langname) - exe 'syn region pandocDelimitedCodeBlockinBlockQuote_' . s:langname . ' start=/>\s\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' . s:langname . '\>/' . - \ ' end=/\(`\{3,}`*\|\~\{3,}\~*\)/ contained containedin=pandocDelimitedCodeBlock' . - \' contains=@' . toupper(s:langname) . - \',pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd,pandodDelimitedCodeblockLang,pandocBlockQuoteinDelimitedCodeBlock' - catch /E484/ - echo "No syntax file found for '" . s:langsyntaxfile . "'" - endtry - - if exists('s:foldmethod') && s:foldmethod !=# &l:foldmethod - let &l:foldmethod = s:foldmethod - endif -endfunction -" }}}2 - -" DisableEmbedsforCodeblocksWithLang {{{2 -function! DisableEmbedsforCodeblocksWithLang(langname) - try - exe 'syn clear pandocDelimitedCodeBlock_'.a:langname - exe 'syn clear pandocDelimitedCodeBlockinBlockQuote_'.a:langname - catch /E28/ - echo "No existing highlight definitions found for '" . a:langname . "'" - endtry -endfunction -" }}}2 - -" WithConceal {{{2 -function! s:WithConceal(rule_group, rule, conceal_rule) - let l:rule_tail = '' - if g:pandoc#syntax#conceal#use != 0 - if index(g:pandoc#syntax#conceal#blacklist, a:rule_group) == -1 - let l:rule_tail = ' ' . a:conceal_rule - endif - endif - execute a:rule . l:rule_tail -endfunction -" }}}2 - -" }}}1 - -" Commands: {{{1 -command! -buffer -nargs=1 -complete=syntax PandocHighlight call EnableEmbedsforCodeblocksWithLang() -command! -buffer -nargs=1 -complete=syntax PandocUnhighlight call DisableEmbedsforCodeblocksWithLang() -" }}}1 - -" BASE: -syntax clear -syntax spell toplevel -" apply extra settings: {{{1 -if g:pandoc#syntax#colorcolumn == 1 - exe 'setlocal colorcolumn='.string(&textwidth+5) -elseif g:pandoc#syntax#colorcolumn == 2 - exe 'setlocal colorcolumn='.join(range(&textwidth+5, 2*&columns), ',') -endif -if g:pandoc#syntax#conceal#use != 0 - setlocal conceallevel=2 -endif -" }}}1 - -" Syntax Rules: {{{1 - -" Embeds: {{{2 - -" prevent embedded language syntaxes from changing 'foldmethod' -if has('folding') - let s:foldmethod = &l:foldmethod -endif - -" HTML: {{{3 -" Set embedded HTML highlighting -syn include @HTML syntax/html.vim -syn match pandocHTML /<\/\?\a.\{-}>/ contains=@HTML -" Support HTML multi line comments -syn region pandocHTMLComment start=// keepend contains=pandocHTMLCommentStart,pandocHTMLCommentEnd -call s:WithConceal('html_c_s', 'syn match pandocHTMLCommentStart // contained', 'conceal cchar='.s:cchars['html_c_e']) -" }}}3 - -" LaTeX: {{{3 -" Set embedded LaTex (pandoc extension) highlighting -" Unset current_syntax so the 2nd include will work -unlet b:current_syntax -syn include @LATEX syntax/tex.vim -syn region pandocLaTeXInlineMath start=/\v\\@.*\n\(.*\n\@1/ contained containedin=pandocEmphasis,pandocStrong,pandocPCite,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocUListItem,pandocNoFormatted -" }}}2 +scriptencoding utf-8 -" Code Blocks: {{{2 -if g:pandoc#syntax#protect#codeblocks == 1 - syn match pandocCodeblock /\([ ]\{4}\|\t\).*$/ +if exists('b:current_syntax') + finish endif -syn region pandocCodeBlockInsideIndent start=/\(\(\d\|\a\|*\).*\n\)\@/ contains=NONE -" }}}3 - -" }}}2 - -" Citations: {{{2 -" parenthetical citations -syn match pandocPCite "\^\@~/]*.\{-}\]" contains=pandocEmphasis,pandocStrong,pandocLatex,pandocCiteKey,@Spell,pandocAmpersandEscape display -" in-text citations with location -syn match pandocICite "@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\s\[.\{-1,}\]" contains=pandocCiteKey,@Spell display -" cite keys -syn match pandocCiteKey /\(-\=@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\)/ containedin=pandocPCite,pandocICite contains=@NoSpell display -syn match pandocCiteAnchor /[-@]/ contained containedin=pandocCiteKey display -syn match pandocCiteLocator /[\[\]]/ contained containedin=pandocPCite,pandocICite -" }}}2 - -" Text Styles: {{{2 - -" Emphasis: {{{3 -call s:WithConceal('block', 'syn region pandocEmphasis matchgroup=pandocOperator start=/\\\@1.*\n\|^\s*\n\)\@<=#\{1,6}.*\n/ contains=pandocEmphasis,pandocStrong,pandocNoFormatted,pandocLaTeXInlineMath,pandocEscapedDollar,@Spell,pandocAmpersandEscape,pandocReferenceLabel,pandocReferenceURL display -syn match pandocAtxHeaderMark /\(^#\{1,6}\|\\\@/ contained containedin=pandocGridTableHeader,pandocPipeTableHeader contains=@Spell -" }}}2 - -" Delimited Code Blocks: {{{2 -" this is here because we can override strikeouts and subscripts -syn region pandocDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\{4,}\|\t\)\=\~\{3,}\~*\)/ end=/^\z1\~*/ skipnl contains=pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd keepend -syn region pandocDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\{4,}\|\t\)\=`\{3,}`*\)/ end=/^\z1`*/ skipnl contains=pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd keepend -call s:WithConceal('codeblock_start', 'syn match pandocDelimitedCodeBlockStart /\(\_^\n\_^\(>\s\)\?\([ ]\{4,}\|\t\)\=\)\@<=\(\~\{3,}\~*\|`\{3,}`*\)/ contained containedin=pandocDelimitedCodeBlock nextgroup=pandocDelimitedCodeBlockLanguage', 'conceal cchar='.s:cchars['codelang']) -syn match pandocDelimitedCodeBlockLanguage /\(\s\?\)\@<=.\+\(\_$\)\@=/ contained -call s:WithConceal('codeblock_delim', 'syn match pandocDelimitedCodeBlockEnd /\(`\{3,}`*\|\~\{3,}\~*\)\(\_$\n\(>\s\)\?\_$\)\@=/ contained containedin=pandocDelimitedCodeBlock', 'conceal cchar='.s:cchars['codeend']) -syn match pandocBlockQuoteinDelimitedCodeBlock '^>' contained containedin=pandocDelimitedCodeBlock -syn match pandocCodePre /
.\{-}<\/pre>/ skipnl
-syn match pandocCodePre /.\{-}<\/code>/ skipnl
-
-" enable highlighting for embedded region in codeblocks if there exists a
-" g:pandoc#syntax#codeblocks#embeds#langs *list*.
-"
-" entries in this list are the language code interpreted by pandoc,
-" if this differs from the name of the vim syntax file, append =vimname
-" e.g. let g:pandoc#syntax#codeblocks#embeds#langs = ["haskell", "literatehaskell=lhaskell"]
-"
-if g:pandoc#syntax#codeblocks#embeds#use != 0
-    for l in g:pandoc#syntax#codeblocks#embeds#langs
-      call EnableEmbedsforCodeblocksWithLang(l)
-    endfor
-endif
-" }}}2
-
-" Abbreviations: {{{2
-syn region pandocAbbreviationDefinition start=/^\*\[.\{-}\]:\s*/ end='$' contains=pandocNoFormatted,@Spell,pandocAmpersandEscape
-call s:WithConceal('abbrev', 'syn match pandocAbbreviationSeparator /:/ contained containedin=pandocAbbreviationDefinition', 'conceal cchar='.s:cchars['abbrev'])
-syn match pandocAbbreviation /\*\[.\{-}\]/ contained containedin=pandocAbbreviationDefinition
-call s:WithConceal('abbrev', 'syn match pandocAbbreviationHead /\*\[/ contained containedin=pandocAbbreviation', 'conceal')
-call s:WithConceal('abbrev', 'syn match pandocAbbreviationTail /\]/ contained containedin=pandocAbbreviation', 'conceal')
-" }}}2
-
-" Footnotes: {{{2
-" we put these here not to interfere with superscripts.
-syn match pandocFootnoteID /\[\^[^\]]\+\]/ nextgroup=pandocFootnoteDef
-
-"   Inline footnotes
-syn region pandocFootnoteDef start=/\^\[/ skip=/\[.\{-}]/ end=/\]/ contains=pandocReferenceLabel,pandocReferenceURL,pandocLatex,pandocPCite,pandocCiteKey,pandocStrong,pandocEmphasis,pandocStrongEmphasis,pandocNoFormatted,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocEnDash,pandocEmDash,pandocEllipses,pandocBeginQuote,pandocEndQuote,@Spell,pandocAmpersandEscape skipnl keepend
-call s:WithConceal('footnote', 'syn match pandocFootnoteDefHead /\^\[/ contained containedin=pandocFootnoteDef', 'conceal cchar='.s:cchars['footnote'])
-call s:WithConceal('footnote', 'syn match pandocFootnoteDefTail /\]/ contained containedin=pandocFootnoteDef', 'conceal')
-
-" regular footnotes
-syn region pandocFootnoteBlock start=/\[\^.\{-}\]:\s*\n*/ end=/^\n^\s\@!/ contains=pandocReferenceLabel,pandocReferenceURL,pandocLatex,pandocPCite,pandocCiteKey,pandocStrong,pandocEmphasis,pandocNoFormatted,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocEnDash,pandocEmDash,pandocNewLine,pandocStrongEmphasis,pandocEllipses,pandocBeginQuote,pandocEndQuote,pandocLaTeXInlineMath,pandocEscapedDollar,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXRegion,pandocAmpersandEscape,@Spell skipnl
-syn match pandocFootnoteBlockSeparator /:/ contained containedin=pandocFootnoteBlock
-syn match pandocFootnoteID /\[\^.\{-}\]/ contained containedin=pandocFootnoteBlock
-call s:WithConceal('footnote', 'syn match pandocFootnoteIDHead /\[\^/ contained containedin=pandocFootnoteID', 'conceal cchar='.s:cchars['footnote'])
-call s:WithConceal('footnote', 'syn match pandocFootnoteIDTail /\]/ contained containedin=pandocFootnoteID', 'conceal')
-" }}}2
-
-" List Items: {{{2
-" Unordered lists
-syn match pandocUListItem /^>\=\s*[*+-]\s\+-\@!.*$/ nextgroup=pandocUListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation contains=@Spell,pandocEmphasis,pandocStrong,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocReferenceURL,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape skipempty display
-call s:WithConceal('list', 'syn match pandocUListItemBullet /^>\=\s*\zs[*+-]/ contained containedin=pandocUListItem', 'conceal cchar='.s:cchars['li'])
-
-" Ordered lists
-syn match pandocListItem /^\s*(\?\(\d\+\|\l\|\#\|@\)[.)].*$/ nextgroup=pandocListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation contains=@Spell,pandocEmphasis,pandocStrong,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape skipempty display
-
-" support for roman numerals up to 'c'
-if g:pandoc#syntax#roman_lists != 0
-    syn match pandocListItem /^\s*(\?x\=l\=\(i\{,3}[vx]\=\)\{,3}c\{,3}[.)].*$/ nextgroup=pandocListItem,pandocMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation,pandocAutomaticLink skipempty display
-endif
-syn match pandocListItemBullet /^(\?.\{-}[.)]/ contained containedin=pandocListItem
-syn match pandocListItemBulletId /\(\d\+\|\l\|\#\|@.\{-}\|x\=l\=\(i\{,3}[vx]\=\)\{,3}c\{,3}\)/ contained containedin=pandocListItemBullet
-
-syn match pandocListItemContinuation /^\s\+\([-+*]\s\+\|(\?.\+[).]\)\@[[:punct:]]*\)\@<="[[:blank:][:punct:]\n]\@=/  containedin=pandocEmphasis,pandocStrong,pandocUListItem,pandocListItem,pandocListItemContinuation display', 'conceal cchar=”')
-endif
-" }}}3
-
-" Hrule: {{{3
-syn match pandocHRule /^\s*\([*\-_]\)\s*\%(\1\s*\)\{2,}$/ display
-" }}}3
-
-" Backslashes: {{{3
-if g:pandoc#syntax#conceal#backslash == 1
-    syn match pandocBackslash /\v\\@
+
+scriptencoding utf-8
+
+syntax clear
diff --git a/syntax/pandoc_legacy.vim b/syntax/pandoc_legacy.vim
new file mode 100644
index 0000000..9d318ef
--- /dev/null
+++ b/syntax/pandoc_legacy.vim
@@ -0,0 +1,699 @@
+" vim: set fdm=marker foldlevel=0:
+"
+" Vim syntax file
+"
+" Language: Pandoc (superset of Markdown)
+" Maintainer: Felipe Morales 
+" Maintainer: Caleb Maclennan 
+" Contributor: David Sanson 
+" Contributor: Jorge Israel Peña 
+" OriginalAuthor: Jeremy Schultz 
+" Version: 5.0
+
+scriptencoding utf-8
+
+" Configuration: {{{1
+"
+" use conceal? {{{2
+if !exists('g:pandoc#syntax#conceal#use')
+    if v:version < 703
+        let g:pandoc#syntax#conceal#use = 0
+    else
+        let g:pandoc#syntax#conceal#use = 1
+    endif
+else
+    " exists, but we cannot use it, disable anyway
+    if v:version < 703
+        let g:pandoc#syntax#conceal#use = 0
+    endif
+endif
+"}}}2
+
+" what groups not to use conceal in. works as a blacklist {{{2
+if !exists('g:pandoc#syntax#conceal#blacklist')
+    let g:pandoc#syntax#conceal#blacklist = []
+endif
+" }}}2
+
+" cchars used in conceal rules {{{2
+" utf-8 defaults (preferred)
+if &encoding ==# 'utf-8'
+    let s:cchars = {
+                \'newline': '↵',
+                \'image': '▨',
+                \'super': 'ⁿ',
+                \'sub': 'ₙ',
+                \'strike': 'x̶',
+                \'atx': '§',
+                \'codelang': 'λ',
+                \'codeend': '—',
+                \'abbrev': '→',
+                \'footnote': '†',
+                \'definition': ' ',
+                \'li': '•',
+                \'html_c_s': '‹',
+                \'html_c_e': '›'}
+else
+    " ascii defaults
+    let s:cchars = {
+                \'newline': ' ',
+                \'image': 'i',
+                \'super': '^',
+                \'sub': '_',
+                \'strike': '~',
+                \'atx': '#',
+                \'codelang': 'l',
+                \'codeend': '-',
+                \'abbrev': 'a',
+                \'footnote': 'f',
+                \'definition': ' ',
+                \'li': '*',
+                \'html_c_s': '+',
+                \'html_c_e': '+'}
+endif
+" }}}2
+
+" if the user has a dictionary with replacements for the default cchars, use those {{{2
+if exists('g:pandoc#syntax#conceal#cchar_overrides')
+    let s:cchars = extend(s:cchars, g:pandoc#syntax#conceal#cchar_overrides)
+endif
+" }}}2
+
+"should the urls in links be concealed? {{{2
+if !exists('g:pandoc#syntax#conceal#urls')
+    let g:pandoc#syntax#conceal#urls = 0
+endif
+" should backslashes in escapes be concealed? {{{2
+if !exists('g:pandoc#syntax#conceal#backslash')
+    let g:pandoc#syntax#conceal#backslash = 0
+endif
+" }}}2
+
+" leave specified codeblocks as Normal (i.e. 'unhighlighted') {{{2
+if !exists('g:pandoc#syntax#codeblocks#ignore')
+    let g:pandoc#syntax#codeblocks#ignore = []
+endif
+" }}}2
+
+" use embedded highlighting for delimited codeblocks where a language is specifed. {{{2
+if !exists('g:pandoc#syntax#codeblocks#embeds#use')
+    let g:pandoc#syntax#codeblocks#embeds#use = 1
+endif
+" }}}2
+
+" for what languages and using what vim syntax files highlight those embeds. {{{2
+" defaults to None.
+if !exists('g:pandoc#syntax#codeblocks#embeds#langs')
+    let g:pandoc#syntax#codeblocks#embeds#langs = []
+endif
+" }}}2
+
+" use italics ? {{{2
+if !exists('g:pandoc#syntax#style#emphases')
+    let g:pandoc#syntax#style#emphases = 1
+endif
+" if 0, we don't conceal the emphasis marks, otherwise there wouldn't be a way
+" to tell where the styles apply.
+if g:pandoc#syntax#style#emphases == 0
+    call add(g:pandoc#syntax#conceal#blacklist, 'block')
+endif
+" }}}2
+
+" underline subscript, superscript and strikeout? {{{2
+if !exists('g:pandoc#syntax#style#underline_special')
+    let g:pandoc#syntax#style#underline_special = 1
+endif
+" }}}2
+
+" protect code blocks? {{{2
+if !exists('g:pandoc#syntax#protect#codeblocks')
+    let g:pandoc#syntax#protect#codeblocks = 1
+endif
+" }}}2
+
+" use color column? {{{2
+if !exists('g:pandoc#syntax#colorcolumn')
+    let g:pandoc#syntax#colorcolumn = 0
+endif
+" }}}2
+
+" highlight new lines? {{{2
+if !exists('g:pandoc#syntax#newlines')
+    let g:pandoc#syntax#newlines = 1
+endif
+" }}}
+
+" detect roman-numeral list items? {{{2
+if !exists('g:pandoc#syntax#roman_lists')
+    let g:pandoc#syntax#roman_lists = 0
+endif
+" }}}2
+
+" disable syntax highlighting for definition lists? (better performances) {{{2
+if !exists('g:pandoc#syntax#use_definition_lists')
+    let g:pandoc#syntax#use_definition_lists = 1
+endif
+" }}}2
+
+" }}}1
+
+" Functions: {{{1
+" EnableEmbedsforCodeblocksWithLang {{{2
+function! EnableEmbedsforCodeblocksWithLang(entry)
+    " prevent embedded language syntaxes from changing 'foldmethod' 
+    if has('folding')
+        let s:foldmethod = &l:foldmethod
+    endif
+
+    try
+        let s:langname = matchstr(a:entry, '^[^=]*')
+        let s:langsyntaxfile = matchstr(a:entry, '[^=]*$')
+        unlet! b:current_syntax
+        exe 'syn include @'.toupper(s:langname).' syntax/'.s:langsyntaxfile.'.vim'
+        exe 'syn region pandocDelimitedCodeBlock_' . s:langname . ' start=/\(\_^\([ ]\{4,}\|\t\)\=\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' . s:langname . '\>.*\n\)\@<=\_^/' .
+                    \' end=/\_$\n\(\([ ]\{4,}\|\t\)\=\(`\{3,}`*\|\~\{3,}\~*\)\_$\n\_$\)\@=/ contained containedin=pandocDelimitedCodeBlock' .
+                    \' contains=@' . toupper(s:langname)
+        exe 'syn region pandocDelimitedCodeBlockinBlockQuote_' . s:langname . ' start=/>\s\(`\{3,}`*\|\~\{3,}\~*\)\s*\%({[^.]*\.\)\=' . s:langname . '\>/' .
+                    \ ' end=/\(`\{3,}`*\|\~\{3,}\~*\)/ contained containedin=pandocDelimitedCodeBlock' .
+                    \' contains=@' . toupper(s:langname) .
+                    \',pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd,pandodDelimitedCodeblockLang,pandocBlockQuoteinDelimitedCodeBlock'
+    catch /E484/
+      echo "No syntax file found for '" . s:langsyntaxfile . "'"
+    endtry
+
+    if exists('s:foldmethod') && s:foldmethod !=# &l:foldmethod
+        let &l:foldmethod = s:foldmethod
+    endif
+endfunction
+" }}}2
+
+" DisableEmbedsforCodeblocksWithLang {{{2
+function! DisableEmbedsforCodeblocksWithLang(langname)
+    try
+      exe 'syn clear pandocDelimitedCodeBlock_'.a:langname
+      exe 'syn clear pandocDelimitedCodeBlockinBlockQuote_'.a:langname
+    catch /E28/
+      echo "No existing highlight definitions found for '" . a:langname . "'"
+    endtry
+endfunction
+" }}}2
+
+" WithConceal {{{2
+function! s:WithConceal(rule_group, rule, conceal_rule)
+    let l:rule_tail = ''
+    if g:pandoc#syntax#conceal#use != 0
+        if index(g:pandoc#syntax#conceal#blacklist, a:rule_group) == -1
+            let l:rule_tail = ' ' . a:conceal_rule
+        endif
+    endif
+    execute a:rule . l:rule_tail
+endfunction
+" }}}2
+
+" }}}1
+
+" Commands: {{{1
+command! -buffer -nargs=1 -complete=syntax PandocHighlight call EnableEmbedsforCodeblocksWithLang()
+command! -buffer -nargs=1 -complete=syntax PandocUnhighlight call DisableEmbedsforCodeblocksWithLang()
+" }}}1
+
+" BASE:
+syntax clear
+syntax spell toplevel
+" apply extra settings: {{{1
+if g:pandoc#syntax#colorcolumn == 1
+    exe 'setlocal colorcolumn='.string(&textwidth+5)
+elseif g:pandoc#syntax#colorcolumn == 2
+    exe 'setlocal colorcolumn='.join(range(&textwidth+5, 2*&columns), ',')
+endif
+if g:pandoc#syntax#conceal#use != 0
+    setlocal conceallevel=2
+endif
+" }}}1
+
+" Syntax Rules: {{{1
+
+" Embeds: {{{2
+
+" prevent embedded language syntaxes from changing 'foldmethod' 
+if has('folding')
+    let s:foldmethod = &l:foldmethod
+endif
+
+" HTML: {{{3
+" Set embedded HTML highlighting
+syn include @HTML syntax/html.vim
+syn match pandocHTML /<\/\?\a.\{-}>/ contains=@HTML
+" Support HTML multi line comments
+syn region pandocHTMLComment start=// keepend contains=pandocHTMLCommentStart,pandocHTMLCommentEnd
+call s:WithConceal('html_c_s', 'syn match pandocHTMLCommentStart // contained', 'conceal cchar='.s:cchars['html_c_e'])
+" }}}3
+
+" LaTeX: {{{3
+" Set embedded LaTex (pandoc extension) highlighting
+" Unset current_syntax so the 2nd include will work
+unlet b:current_syntax
+syn include @LATEX syntax/tex.vim
+syn region pandocLaTeXInlineMath start=/\v\\@.*\n\(.*\n\@1/ contained containedin=pandocEmphasis,pandocStrong,pandocPCite,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocUListItem,pandocNoFormatted
+" }}}2
+
+" Code Blocks: {{{2
+if g:pandoc#syntax#protect#codeblocks == 1
+    syn match pandocCodeblock /\([ ]\{4}\|\t\).*$/
+endif
+syn region pandocCodeBlockInsideIndent   start=/\(\(\d\|\a\|*\).*\n\)\@/ contains=NONE
+" }}}3
+
+" }}}2
+
+" Citations: {{{2
+" parenthetical citations
+syn match pandocPCite "\^\@~/]*.\{-}\]" contains=pandocEmphasis,pandocStrong,pandocLatex,pandocCiteKey,@Spell,pandocAmpersandEscape display
+" in-text citations with location
+syn match pandocICite "@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\s\[.\{-1,}\]" contains=pandocCiteKey,@Spell display
+" cite keys
+syn match pandocCiteKey /\(-\=@[[:alnum:]_][[:digit:][:lower:][:upper:]_:.#$%&\-+?<>~/]*\)/ containedin=pandocPCite,pandocICite contains=@NoSpell display
+syn match pandocCiteAnchor /[-@]/ contained containedin=pandocCiteKey display
+syn match pandocCiteLocator /[\[\]]/ contained containedin=pandocPCite,pandocICite
+" }}}2
+
+" Text Styles: {{{2
+
+" Emphasis: {{{3
+call s:WithConceal('block', 'syn region pandocEmphasis matchgroup=pandocOperator start=/\\\@1.*\n\|^\s*\n\)\@<=#\{1,6}.*\n/ contains=pandocEmphasis,pandocStrong,pandocNoFormatted,pandocLaTeXInlineMath,pandocEscapedDollar,@Spell,pandocAmpersandEscape,pandocReferenceLabel,pandocReferenceURL display
+syn match pandocAtxHeaderMark /\(^#\{1,6}\|\\\@/ contained containedin=pandocGridTableHeader,pandocPipeTableHeader contains=@Spell
+" }}}2
+
+" Delimited Code Blocks: {{{2
+" this is here because we can override strikeouts and subscripts
+syn region pandocDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\{4,}\|\t\)\=\~\{3,}\~*\)/ end=/^\z1\~*/ skipnl contains=pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd keepend
+syn region pandocDelimitedCodeBlock start=/^\(>\s\)\?\z(\([ ]\{4,}\|\t\)\=`\{3,}`*\)/ end=/^\z1`*/ skipnl contains=pandocDelimitedCodeBlockStart,pandocDelimitedCodeBlockEnd keepend
+call s:WithConceal('codeblock_start', 'syn match pandocDelimitedCodeBlockStart /\(\_^\n\_^\(>\s\)\?\([ ]\{4,}\|\t\)\=\)\@<=\(\~\{3,}\~*\|`\{3,}`*\)/ contained containedin=pandocDelimitedCodeBlock nextgroup=pandocDelimitedCodeBlockLanguage', 'conceal cchar='.s:cchars['codelang'])
+syn match pandocDelimitedCodeBlockLanguage /\(\s\?\)\@<=.\+\(\_$\)\@=/ contained
+call s:WithConceal('codeblock_delim', 'syn match pandocDelimitedCodeBlockEnd /\(`\{3,}`*\|\~\{3,}\~*\)\(\_$\n\(>\s\)\?\_$\)\@=/ contained containedin=pandocDelimitedCodeBlock', 'conceal cchar='.s:cchars['codeend'])
+syn match pandocBlockQuoteinDelimitedCodeBlock '^>' contained containedin=pandocDelimitedCodeBlock
+syn match pandocCodePre /
.\{-}<\/pre>/ skipnl
+syn match pandocCodePre /.\{-}<\/code>/ skipnl
+
+" enable highlighting for embedded region in codeblocks if there exists a
+" g:pandoc#syntax#codeblocks#embeds#langs *list*.
+"
+" entries in this list are the language code interpreted by pandoc,
+" if this differs from the name of the vim syntax file, append =vimname
+" e.g. let g:pandoc#syntax#codeblocks#embeds#langs = ["haskell", "literatehaskell=lhaskell"]
+"
+if g:pandoc#syntax#codeblocks#embeds#use != 0
+    for l in g:pandoc#syntax#codeblocks#embeds#langs
+      call EnableEmbedsforCodeblocksWithLang(l)
+    endfor
+endif
+" }}}2
+
+" Abbreviations: {{{2
+syn region pandocAbbreviationDefinition start=/^\*\[.\{-}\]:\s*/ end='$' contains=pandocNoFormatted,@Spell,pandocAmpersandEscape
+call s:WithConceal('abbrev', 'syn match pandocAbbreviationSeparator /:/ contained containedin=pandocAbbreviationDefinition', 'conceal cchar='.s:cchars['abbrev'])
+syn match pandocAbbreviation /\*\[.\{-}\]/ contained containedin=pandocAbbreviationDefinition
+call s:WithConceal('abbrev', 'syn match pandocAbbreviationHead /\*\[/ contained containedin=pandocAbbreviation', 'conceal')
+call s:WithConceal('abbrev', 'syn match pandocAbbreviationTail /\]/ contained containedin=pandocAbbreviation', 'conceal')
+" }}}2
+
+" Footnotes: {{{2
+" we put these here not to interfere with superscripts.
+syn match pandocFootnoteID /\[\^[^\]]\+\]/ nextgroup=pandocFootnoteDef
+
+"   Inline footnotes
+syn region pandocFootnoteDef start=/\^\[/ skip=/\[.\{-}]/ end=/\]/ contains=pandocReferenceLabel,pandocReferenceURL,pandocLatex,pandocPCite,pandocCiteKey,pandocStrong,pandocEmphasis,pandocStrongEmphasis,pandocNoFormatted,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocEnDash,pandocEmDash,pandocEllipses,pandocBeginQuote,pandocEndQuote,@Spell,pandocAmpersandEscape skipnl keepend
+call s:WithConceal('footnote', 'syn match pandocFootnoteDefHead /\^\[/ contained containedin=pandocFootnoteDef', 'conceal cchar='.s:cchars['footnote'])
+call s:WithConceal('footnote', 'syn match pandocFootnoteDefTail /\]/ contained containedin=pandocFootnoteDef', 'conceal')
+
+" regular footnotes
+syn region pandocFootnoteBlock start=/\[\^.\{-}\]:\s*\n*/ end=/^\n^\s\@!/ contains=pandocReferenceLabel,pandocReferenceURL,pandocLatex,pandocPCite,pandocCiteKey,pandocStrong,pandocEmphasis,pandocNoFormatted,pandocSuperscript,pandocSubscript,pandocStrikeout,pandocEnDash,pandocEmDash,pandocNewLine,pandocStrongEmphasis,pandocEllipses,pandocBeginQuote,pandocEndQuote,pandocLaTeXInlineMath,pandocEscapedDollar,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXRegion,pandocAmpersandEscape,@Spell skipnl
+syn match pandocFootnoteBlockSeparator /:/ contained containedin=pandocFootnoteBlock
+syn match pandocFootnoteID /\[\^.\{-}\]/ contained containedin=pandocFootnoteBlock
+call s:WithConceal('footnote', 'syn match pandocFootnoteIDHead /\[\^/ contained containedin=pandocFootnoteID', 'conceal cchar='.s:cchars['footnote'])
+call s:WithConceal('footnote', 'syn match pandocFootnoteIDTail /\]/ contained containedin=pandocFootnoteID', 'conceal')
+" }}}2
+
+" List Items: {{{2
+" Unordered lists
+syn match pandocUListItem /^>\=\s*[*+-]\s\+-\@!.*$/ nextgroup=pandocUListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation contains=@Spell,pandocEmphasis,pandocStrong,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocReferenceURL,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape skipempty display
+call s:WithConceal('list', 'syn match pandocUListItemBullet /^>\=\s*\zs[*+-]/ contained containedin=pandocUListItem', 'conceal cchar='.s:cchars['li'])
+
+" Ordered lists
+syn match pandocListItem /^\s*(\?\(\d\+\|\l\|\#\|@\)[.)].*$/ nextgroup=pandocListItem,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation contains=@Spell,pandocEmphasis,pandocStrong,pandocNoFormatted,pandocStrikeout,pandocSubscript,pandocSuperscript,pandocStrongEmphasis,pandocStrongEmphasis,pandocPCite,pandocICite,pandocCiteKey,pandocReferenceLabel,pandocLaTeXCommand,pandocLaTeXMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocAutomaticLink,pandocFootnoteDef,pandocFootnoteBlock,pandocFootnoteID,pandocAmpersandEscape skipempty display
+
+" support for roman numerals up to 'c'
+if g:pandoc#syntax#roman_lists != 0
+    syn match pandocListItem /^\s*(\?x\=l\=\(i\{,3}[vx]\=\)\{,3}c\{,3}[.)].*$/ nextgroup=pandocListItem,pandocMathBlock,pandocLaTeXInlineMath,pandocEscapedDollar,pandocDelimitedCodeBlock,pandocListItemContinuation,pandocAutomaticLink skipempty display
+endif
+syn match pandocListItemBullet /^(\?.\{-}[.)]/ contained containedin=pandocListItem
+syn match pandocListItemBulletId /\(\d\+\|\l\|\#\|@.\{-}\|x\=l\=\(i\{,3}[vx]\=\)\{,3}c\{,3}\)/ contained containedin=pandocListItemBullet
+
+syn match pandocListItemContinuation /^\s\+\([-+*]\s\+\|(\?.\+[).]\)\@[[:punct:]]*\)\@<="[[:blank:][:punct:]\n]\@=/  containedin=pandocEmphasis,pandocStrong,pandocUListItem,pandocListItem,pandocListItemContinuation display', 'conceal cchar=”')
+endif
+" }}}3
+
+" Hrule: {{{3
+syn match pandocHRule /^\s*\([*\-_]\)\s*\%(\1\s*\)\{2,}$/ display
+" }}}3
+
+" Backslashes: {{{3
+if g:pandoc#syntax#conceal#backslash == 1
+    syn match pandocBackslash /\v\\@
Date: Fri, 15 May 2020 00:48:21 +0200
Subject: [PATCH 2/4] add minimized flavor

---
 syntax/pandoc.vim           |  2 +
 syntax/pandoc_minimized.vim | 73 +++++++++++++++++++++++++++++++++++++
 2 files changed, 75 insertions(+)
 create mode 100644 syntax/pandoc_minimized.vim

diff --git a/syntax/pandoc.vim b/syntax/pandoc.vim
index 5a9d064..297d7c4 100644
--- a/syntax/pandoc.vim
+++ b/syntax/pandoc.vim
@@ -15,6 +15,8 @@ endif
 
 if exists('g:pandoc#syntax#flavor#commonmark') || exists('b:pandoc#syntax#flavor#commonmark')
     runtime syntax/pandoc_commonmark.vim
+elseif exists('g:pandoc#syntax#flavor#minimized') || exists('b:pandoc#syntax#flavor#minimized')
+    runtime syntax/pandoc_minimized.vim
 else
     runtime syntax/pandoc_legacy.vim
 endif
diff --git a/syntax/pandoc_minimized.vim b/syntax/pandoc_minimized.vim
new file mode 100644
index 0000000..b053332
--- /dev/null
+++ b/syntax/pandoc_minimized.vim
@@ -0,0 +1,73 @@
+" Vim syntax file
+" Filetype: pandoc
+" Language: pandoc markdown, simplified
+" Maintainer: Felipe Morales 
+
+scriptencoding utf-8
+
+syntax clear
+
+syn spell toplevel
+
+" A pandoc markdown document is based on blocks.
+
+syn region pdcPar start=/^\s*[[:print:]]/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend contains=@Spell
+
+" YAML headers
+unlet! b:current_syntax
+syn include @YAML syntax/yaml.vim
+syn region pdcYAML matchgroup=Delimiter start=/^\s*---\(\n\s*[[:print:]]\)\@=/ end=/---\n\s*\n/ keepend contains=@YAML
+
+" LaTeX environments
+unlet! b:current_syntax
+syn include @LATEX syntax/tex.vim
+syn region pdcLaTeXEnv start=/\\begin{\z(.\{-}\)}/ end=/\\end{\z1}/ keepend contains=@LATEX
+syn region pdcLaTeXDisplayMath start=/\z(\\\@\s\?/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend
+
+" Lists
+syn region pdcUList start=/^\s*[*=-][*=-]\@!\ze\s*[[:print:]]/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend
+syn region pdcOList start=/^(\?\(\d\+\|\l\|\#\|@.\{-}\|x\=l\=\(i\{,3}[vx]\=\)\{,3}c\{,3}\)[.)]/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend
+
+" Definitions
+syn region pdcDefinition matchgroup=Label start=/^[[:print:]]\{1,}\ze\s*\n\~/ end=/[[:print:]]\zs\(\n\s*\n\)\@=/ keepend contains=@Spell
+
+" Fenced DIVS
+syn region pdcFencedDiv matchgroup=Delimiter start=/^:::.*$/ end=/:::\n\s*\n/ keepend contains=@LATEX,pdcPar contains=@Spell
+
+" Atx headers
+syn match pdcAtxHeader /\(\%^\|<.\+>.*\n\|^\s*\n\)\@<=#\{1,6}.*\n/ keepend contained containedin=pdcPar contains=@Spell
+
+" Footnotes
+syn region pdcFootnote start=/^\[\^/ end=/[[:print:]]\zs\n\ze\s*\n/ keepend contains=@Spell
+syn region pdcInlineFootnote matchgroup=Delimiter start=/\^\[/ skip=/\[[[:print:]]*\]/ end=/\]/ keepend contained containedin=pdcPar,pdcUList,pdcOList
+syn region pdcFootnoteRef matchgroup=Delimiter start=/\[\^/ end=/\]/ contained containedin=pdcPar,pdcBlockQuote,pdcUList,pdcOList,pdcFootnote nextgroup=pdcFootnotePar
+syn region pdcFootnotePar start=/^\t[[:print:]]/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend contains=@Spell nextgroup=pdcFootnotePar
+
+" References.
+syn match pdcBibRef /@[[:alnum:]:_-]\{1,}\(\[[[:print:]]\{-}\]\)\?/ containedin=pdcPar,pdcUList,pdcOList,pdcBlockQuote
+syn match pdcBibRefIF /@[[:alnum:]:_-]\{1,}\(\[[[:print:]]\{-}\]\)\?/ containedin=pdcInlineFootnote,pdcFootnote,pdcFootnotePar
+
+" Highlighting
+
+hi def link pdcCodeblock Special
+hi def link pdcDelimitedCodeBlock pdcCodeblock
+hi def link pdcAtxHeader Directory
+hi def link pdcFootnote Comment
+hi def link pdcInlineFootnote pdcFootnote
+hi def link pdcFootnotePar pdcFootnote
+hi def link pdcFootnoteBlockQuote pdcFootnote
+hi def pdcBodyLink ctermfg=fg guifg=fg guisp=SteelBlue4 gui=underline cterm=underline
+let fn_fg = pandoc#syntax#color#Instrospect('pdcInlineFootnote').guifg
+exe 'hi def pdcFootLink guifg='.fn_fg.' guisp=SteelBlue4 gui=underline cterm=underline'
+hi def link pdcBibRef pdcBodyLink
+hi def link pdcFootnoteRef pdcFootLink
+hi def link pdcBibRefIF pdcFootLink

From 75f742c433dae1db7ace0e659a74e248d36be5a9 Mon Sep 17 00:00:00 2001
From: Felipe Morales 
Date: Fri, 15 May 2020 00:51:21 +0200
Subject: [PATCH 3/4] fix color instrospection

---
 autoload/pandoc/syntax/color.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/autoload/pandoc/syntax/color.vim b/autoload/pandoc/syntax/color.vim
index 75a5a67..2b3cf87 100644
--- a/autoload/pandoc/syntax/color.vim
+++ b/autoload/pandoc/syntax/color.vim
@@ -100,7 +100,7 @@ function! pandoc#syntax#color#Instrospect(group) abort
     let hi_output = split(hi_output, '\n')[0]
     let parts = split(hi_output, '\s\+')[2:]
     if parts[0] ==# 'links'
-        let info = Hi_Info(parts[2])
+        let info = pandoc#syntax#color#Instrospect(parts[2])
         let info['linked_to'] = parts[2]
     else
         let info = {}

From 56bd7e978da907a75496841eae9a37e2bb068ddb Mon Sep 17 00:00:00 2001
From: Felipe Morales 
Date: Sun, 4 Jul 2021 01:56:10 -0400
Subject: [PATCH 4/4] update minimized

---
 syntax/pandoc_minimized.vim | 2 +-
 1 file changed, 1 insertion(+), 1 deletion(-)

diff --git a/syntax/pandoc_minimized.vim b/syntax/pandoc_minimized.vim
index b053332..96ff0c5 100644
--- a/syntax/pandoc_minimized.vim
+++ b/syntax/pandoc_minimized.vim
@@ -47,7 +47,7 @@ syn region pdcFencedDiv matchgroup=Delimiter start=/^:::.*$/ end=/:::\n\s*\n/ ke
 syn match pdcAtxHeader /\(\%^\|<.\+>.*\n\|^\s*\n\)\@<=#\{1,6}.*\n/ keepend contained containedin=pdcPar contains=@Spell
 
 " Footnotes
-syn region pdcFootnote start=/^\[\^/ end=/[[:print:]]\zs\n\ze\s*\n/ keepend contains=@Spell
+syn region pdcFootnote start=/^\[\^/ end=/[[:print:]]\zs\n\ze\s*\n/ keepend contains=@Spell nextgroup=pdcFootnotePar
 syn region pdcInlineFootnote matchgroup=Delimiter start=/\^\[/ skip=/\[[[:print:]]*\]/ end=/\]/ keepend contained containedin=pdcPar,pdcUList,pdcOList
 syn region pdcFootnoteRef matchgroup=Delimiter start=/\[\^/ end=/\]/ contained containedin=pdcPar,pdcBlockQuote,pdcUList,pdcOList,pdcFootnote nextgroup=pdcFootnotePar
 syn region pdcFootnotePar start=/^\t[[:print:]]/ end=/[[:print:]]\(\n\s*\n\)\@=/ keepend contains=@Spell nextgroup=pdcFootnotePar