dotfiles

My collection of dotfiles
git clone git://git.noxz.tech/dotfiles
Log | Files | Refs

markdown.vim.block (58067B)


      1 " Vim syntax file
      2 " Language:     Markdown
      3 " Maintainer:   Gabriele Lana <gabriele.lana@gmail.com>
      4 " Filenames:    *.md
      5 
      6 if exists("b:current_syntax")
      7   finish
      8 endif
      9 
     10 if !exists('main_syntax')
     11   let main_syntax = 'markdown'
     12 endif
     13 
     14 if !exists('g:markdown_flavor')
     15   let g:markdown_flavor = 'github'
     16 endif
     17 
     18 if exists('g:markdown_enable_conceal') && g:markdown_enable_conceal
     19     let b:markdown_concealends = 'concealends'
     20     let b:markdown_conceal = 'conceal'
     21     set conceallevel=2
     22     set concealcursor=
     23 else
     24     let b:markdown_concealends = ''
     25     let b:markdown_conceal = ''
     26 endif
     27 
     28 syn spell toplevel
     29 syn sync fromstart
     30 syn case ignore
     31 
     32 
     33 " {{{ INLINE ELEMENTS
     34 
     35 syn cluster markdownInline contains=
     36   \ markdownItalic,markdownBold,markdownBoldItalic,markdownStrike,markdownInlineCode,
     37   \ markdownPullRequestLinkInText,markdownUrlLinkInText,markdownUserLinkInText,
     38   \ markdownEmailLinkInText,markdownLinkContainer,markdownXmlComment,
     39   \ markdownXmlElement,markdownXmlEmptyElement,markdownXmlEntities
     40 
     41 execute 'syn region markdownItalic matchgroup=markdownInlineDelimiter '
     42   \ . 'start="\%(\s\|_\|^\)\@<=\*\%(\s\|\*\|$\)\@!" end="\%(\s\|\*\)\@<!\*" '
     43   \ . 'contains=@markdownInline '
     44   \ . b:markdown_concealends
     45 execute 'syn region markdownItalic matchgroup=markdownInlineDelimiter '
     46   \ . 'start="\%(\s\|\*\|^\)\@<=_\%(\s\|_\|$\)\@!" end="\%(\s\|_\)\@<!_" '
     47   \ . 'contains=@markdownInline '
     48   \ . b:markdown_concealends
     49 
     50 execute 'syn region markdownBold matchgroup=markdownInlineDelimiter '
     51   \ . 'start="\%(\s\|__\|^\)\@<=\*\*\%(\s\|\*\|$\)\@!" end="\%(\s\|\*\*\)\@<!\*\*" '
     52   \ . 'contains=@markdownInline '
     53   \ . b:markdown_concealends
     54 execute 'syn region markdownBold matchgroup=markdownInlineDelimiter '
     55   \ . 'start="\%(\s\|\*\*\|^\)\@<=__\%(\s\|_\|$\)\@!" end="\%(\s\|__\)\@<!__" '
     56   \ . 'contains=@markdownInline '
     57   \ . b:markdown_concealends
     58 
     59 execute 'syn region markdownBoldItalic matchgroup=markdownInlineDelimiter '
     60   \ . 'start="\%(\s\|_\|^\)\@<=\*\*\*\%(\s\|\*\|$\)\@!" end="\%(\s\|\*\)\@<!\*\*\*" '
     61   \ . 'contains=@markdownInline '
     62   \ . b:markdown_concealends
     63 execute 'syn region markdownBoldItalic matchgroup=markdownInlineDelimiter '
     64   \ . 'start="\%(\s\|\*\|^\)\@<=___\%(\s\|_\|$\)\@!" end="\%(\s\|_\)\@<!___" '
     65   \ . 'contains=@markdownInline '
     66   \ . b:markdown_concealends
     67 execute 'syn region markdownBoldItalic matchgroup=markdownInlineDelimiter '
     68   \ . 'start="\%(\s\|_\|^\)\@<=\*\*_\%(\s\|_\|$\)\@!" end="\%(\s\|_\)\@<!_\*\*" '
     69   \ . 'contains=@markdownInline '
     70   \ . b:markdown_concealends
     71 execute 'syn region markdownBoldItalic matchgroup=markdownInlineDelimiter '
     72   \ . 'start="\%(\s\|\*\|^\)\@<=__\*\%(\s\|\*\|$\)\@!" end="\%(\s\|\*\)\@<!\*__" '
     73   \ . 'contains=@markdownInline '
     74   \ . b:markdown_concealends
     75 
     76 syn match markdownStrike /\%(\\\)\@<!\~\~\%(\S\)\@=\_.\{-}\%(\S\)\@<=\~\~/ contains=markdownStrikeDelimiter,@markdownInline
     77 syn match markdownStrikeDelimiter /\~\~/ contained
     78 
     79 " Fenced code blocks in list items must be preceded by an empty line This is
     80 " made this way so that the second rule could eat up something that is not a
     81 " fenced code block like
     82 "
     83 "     * This is a list item
     84 "       ```ruby
     85 "       # this is not a fenced code block but it's a code block
     86 "       def ruby;
     87 "       ```
     88 execute 'syn region markdownInlineCode matchgroup=markdownCodeDelimiter start=/\%(`\)\@<!`/ end=/`/ keepend contains=@NoSpell ' . b:markdown_concealends
     89 execute 'syn region markdownInlineCode matchgroup=markdownCodeDelimiter start=/\%(`\)\@<!`\z(`\+\)/ end=/`\z1/ keepend contains=@NoSpell ' . b:markdown_concealends
     90 
     91 " case insensitive
     92 " preceded by something that is not a word
     93 " could be surrounded by angle brackets
     94 " could begin with / or // (path) or the url protocol
     95 " inside the url pairs of balanced parentheses are allowed
     96 " inside the url html entities are allowed
     97 " the end block is different because ?!:,. are not included in the url if they
     98 " appear at the end of the url
     99 let b:markdown_syntax_url =
    100   \ '\c'
    101   \ . '\%(\W\)\@<='
    102   \ . '<\?'
    103   \ . '\%('
    104   \ .   '\%(\<\%(https\?\|ftp\|file\):\/\/\|www\.\|ftp\.\)'
    105   \ .   '\|'
    106   \ .   '\/\/\?'
    107   \ . '\)'
    108   \ . '\%('
    109   \ .   '&#\?[0-9A-Za-z]\{1,8};'
    110   \ .   '\|'
    111   \ .   '\\'
    112   \ .   '\|'
    113   \ .   '([-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?)'
    114   \ .   '\|'
    115   \ .   '\[[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?\]'
    116   \ .   '\|'
    117   \ .   '{[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?}'
    118   \ .   '\|'
    119   \ .   '[-A-Z0-9+&@#/%=~_|$?!:,.]'
    120   \ . '\)*'
    121   \ . '\%('
    122   \ .   '&#\?[0-9A-Za-z]\{1,8};'
    123   \ .   '\|'
    124   \ .   '\\'
    125   \ .   '\|'
    126   \ .   '([-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?)'
    127   \ .   '\|'
    128   \ .   '\[[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?\]'
    129   \ .   '\|'
    130   \ .   '{[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?}'
    131   \ .   '\|'
    132   \ .   '[-A-Z0-9+&@#/%=~_|$]\+'
    133   \ . '\)'
    134   \ . '>\?'
    135 execute 'syn match markdownUrlLinkInText /' . b:markdown_syntax_url . '/ contains=@NoSpell display'
    136 
    137 syn match markdownPullRequestLinkInText /\%(\w\)\@<!#\d\+/ display
    138 syn match markdownUserLinkInText /\%(\w\)\@<!@[[:alnum:]._\/-]\+/ contains=@NoSpell display
    139 syn match markdownEmailLinkInText /[[:alnum:]._%+-]\+@[[:alnum:].-]\+\.\w\{2,4}/ contains=@NoSpell display
    140 
    141 " something encosed in square brackets
    142 " could not be preceded by a backslash
    143 " could contain pairs of square brackets
    144 " could contain no more than two consecutive newlines
    145 " could contain single square brackets (open or closed) escaped
    146 " could not contain unbalanced square brackets like 'a [ b \] c'
    147 " could not contain nested square brackets
    148 let b:markdown_syntax_allowed_characters_in_square_brackets = '\%([^\[\]]\|\\\[\|\\\]\)*'
    149 let b:markdown_syntax_square_brackets_block = ''
    150   \ . '\%(\\\)\@<!\['
    151   \ .   '\%('
    152   \ .     b:markdown_syntax_allowed_characters_in_square_brackets
    153   \ .     '\|'
    154   \ .     b:markdown_syntax_allowed_characters_in_square_brackets
    155   \ .     '\['
    156   \ .       b:markdown_syntax_allowed_characters_in_square_brackets
    157   \ .     '\]'
    158   \ .     b:markdown_syntax_allowed_characters_in_square_brackets
    159   \ .   '\)'
    160   \ .   '\%('
    161   \ .     '\n\%(\n\)\@!'
    162   \ .     '\%('
    163   \ .       b:markdown_syntax_allowed_characters_in_square_brackets
    164   \ .       '\|'
    165   \ .       b:markdown_syntax_allowed_characters_in_square_brackets
    166   \ .       '\['
    167   \ .         b:markdown_syntax_allowed_characters_in_square_brackets
    168   \ .       '\]'
    169   \ .       b:markdown_syntax_allowed_characters_in_square_brackets
    170   \ .     '\)'
    171   \ .   '\)*'
    172   \ . '\]'
    173 
    174 " something encosed in round brackets
    175 " could not be preceded by a backslash
    176 " could contain pairs of round brackets
    177 " could contain no more than two consecutive newlines
    178 " could contain single round brackets (open or closed) escaped
    179 " could not contain unbalanced round brackets like 'a ( b \) c'
    180 " could not contain nested round brackets
    181 let b:markdown_syntax_allowed_characters_in_round_brackets = '[^()]*'
    182 let b:markdown_syntax_round_brackets_block = ''
    183   \ . '\%(\\\)\@<!('
    184   \ .   '\%('
    185   \ .     b:markdown_syntax_allowed_characters_in_round_brackets
    186   \ .     '\|'
    187   \ .     b:markdown_syntax_allowed_characters_in_round_brackets
    188   \ .     '('
    189   \ .       b:markdown_syntax_allowed_characters_in_round_brackets
    190   \ .     ')'
    191   \ .     b:markdown_syntax_allowed_characters_in_round_brackets
    192   \ .   '\)'
    193   \ .   '\%('
    194   \ .     '\n\%(\n\)\@!'
    195   \ .     '\%('
    196   \ .       b:markdown_syntax_allowed_characters_in_round_brackets
    197   \ .       '\|'
    198   \ .       b:markdown_syntax_allowed_characters_in_round_brackets
    199   \ .       '('
    200   \ .         b:markdown_syntax_allowed_characters_in_round_brackets
    201   \ .       ')'
    202   \ .       b:markdown_syntax_allowed_characters_in_round_brackets
    203   \ .     '\)'
    204   \ .   '\)*'
    205   \ . ')'
    206 
    207 execute 'syn match markdownLinkContainer '
    208   \ . 'contains=markdownLinkTextContainer,markdownLinkUrlContainer transparent '
    209   \ . '/'
    210   \ . '!\?'
    211   \ . b:markdown_syntax_square_brackets_block
    212   \ . '\%(\s*\|\n\%\(\n\)\@!\)'
    213   \ . '\%('
    214   \ .   b:markdown_syntax_round_brackets_block
    215   \ .   '\|'
    216   \ .   b:markdown_syntax_square_brackets_block
    217   \ . '\)'
    218   \ . '/'
    219 
    220 execute 'syn match markdownLinkTextContainer contained '
    221   \ . 'contains=markdownLinkText '
    222   \ . '/'
    223   \ . '!\?'
    224   \ . b:markdown_syntax_square_brackets_block
    225   \ . '/'
    226 
    227 execute 'syn match markdownLinkText contained '
    228   \ . 'contains=@markdownInline,@NoSpell '
    229   \ . '/'
    230   \ . '!\?'
    231   \ . b:markdown_syntax_square_brackets_block
    232   \ . '/'
    233   \ . 'hs=s+1,he=e-1'
    234 
    235 execute 'syn match markdownLinkUrlContainer contained '
    236   \ . 'contains=markdownLinkUrl,markdownLinkTitleSingleQuoted,markdownLinkTitleDoubleQuoted '
    237   \ . '/'
    238   \ . b:markdown_syntax_round_brackets_block
    239   \ . '/ '
    240   \ . b:markdown_conceal
    241 
    242 execute 'syn match markdownLinkUrl contained '
    243   \ . 'contains=@NoSpell '
    244   \ . '/'
    245   \ . '\%((\)\@<='
    246   \ . '\%('
    247   \ .   '&#\?[0-9A-Za-z]\{1,8};'
    248   \ .   '\|'
    249   \ .   '\\'
    250   \ .   '\|'
    251   \ .   '([-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?)'
    252   \ .   '\|'
    253   \ .   '\[[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?\]'
    254   \ .   '\|'
    255   \ .   '{[-A-Z0-9+&@#/%=~_|$?!:,.]*\\\?}'
    256   \ .   '\|'
    257   \ .   '[-A-Z0-9+&@#/%=~_|$?!:,.]'
    258   \ .   '\|'
    259   \ .   '\s'
    260   \ . '\)\+'
    261   \ . '\%(\s\+["'']\|)\|\n\)\@='
    262   \ . '/'
    263 
    264 execute 'syn region markdownLinkTitleSingleQuoted start=/\s*''/ skip=/\\''/ end=/''\_s*/ display '
    265   \ . 'keepend contained contains=@markdownInline '
    266   \ . b:markdown_conceal
    267 
    268 execute 'syn region markdownLinkTitleDoubleQuoted start=/\s*"/ skip=/\\"/ end=/"\_s*/ display '
    269   \ . 'keepend contained contains=@markdownInline '
    270   \ . b:markdown_conceal
    271 
    272 syn match markdownXmlComment /\c<\!--\_.\{-}-->/ contains=@NoSpell
    273 syn match markdownXmlElement /\c<\([-A-Z0-9_$?!:,.]\+\)[^>]\{-}>\_.\{-}<\/\1>/ contains=@NoSpell
    274 syn match markdownXmlEmptyElement /\c<\([-A-Z0-9_$?!:,.]\+\)\%(\s\+[^>]\{-}\/>\|\s*\/>\)/ contains=@NoSpell
    275 syn match markdownXmlEntities /&#\?[0-9A-Za-z]\{1,8};/ contains=@NoSpell
    276 
    277 " }}}
    278 
    279 
    280 " {{{ ANCHORED BLOCKS
    281 
    282 syn match markdownRule /^\s*\*\s*\*\s*\*[[:space:]*]*$/ display
    283 syn match markdownRule /^\s*-\s*-\s*-[[:space:]-]*$/ display
    284 syn match markdownRule /^\s*_\s*_\s*_[[:space:]_]*$/ display
    285 
    286 if g:markdown_flavor ==? 'github'
    287   syn region markdownH1 matchgroup=markdownHeadingDelimiter start=/^#\%(\s\+\)\@=/      end=/#*\s*$/ display oneline contains=@markdownInline
    288   syn region markdownH2 matchgroup=markdownHeadingDelimiter start=/^##\%(\s\+\)\@=/     end=/#*\s*$/ display oneline contains=@markdownInline
    289   syn region markdownH3 matchgroup=markdownHeadingDelimiter start=/^###\%(\s\+\)\@=/    end=/#*\s*$/ display oneline contains=@markdownInline
    290   syn region markdownH4 matchgroup=markdownHeadingDelimiter start=/^####\%(\s\+\)\@=/   end=/#*\s*$/ display oneline contains=@markdownInline
    291   syn region markdownH5 matchgroup=markdownHeadingDelimiter start=/^#####\%(\s\+\)\@=/  end=/#*\s*$/ display oneline contains=@markdownInline
    292   syn region markdownH6 matchgroup=markdownHeadingDelimiter start=/^######\%(\s\+\)\@=/ end=/#*\s*$/ display oneline contains=@markdownInline
    293 
    294   syn match markdownH1 /^.\+\n=\+$/ display contains=@markdownInline,markdownHeadingUnderline
    295   syn match markdownH2 /^.\+\n-\+$/ display contains=@markdownInline,markdownHeadingUnderline
    296   syn match markdownHeadingUnderline /^[=-]\+$/ display contained
    297 endif
    298 
    299 if g:markdown_flavor ==? 'kramdown'
    300   syn match markdownHeaderContainer /^#\{1,6}.\+$/ display transparent
    301     \ contains=@markdownInline,markdownHeader,markdownHeaderId,markdownHeadingDelimiter
    302   syn match markdownHeader /\%(^#\+\)\@<=\%([^#]\+\%(#\+\s*\%($\|{\)\)\@=\|[^{]\{-}\%({\)\@=\|#$\)/
    303 
    304   syn match markdownHeader /^.\+\n=\+$/ display contains=@markdownInline,markdownHeadingUnderline,markdownHeaderId
    305   syn match markdownHeader /^.\+\n-\+$/ display contains=@markdownInline,markdownHeadingUnderline,markdownHeaderId
    306   syn match markdownHeadingUnderline /^[=-]\+$/ display contained
    307 
    308   syn match markdownHeaderId /{[^}]\+}\s*$/ display contained
    309   syn match markdownHeadingDelimiter /#\+\%(.\+\)\@=/ display contained
    310 endif
    311 
    312 execute 'syn match markdownLinkReference '
    313   \ . 'contains=@NoSpell '
    314   \ . 'display '
    315   \ . '/'
    316   \ . '^\s\{,3}'
    317   \ . b:markdown_syntax_square_brackets_block
    318   \ . ':.*'
    319   \ . '\%(\n\%\(\n\)\@!.*$\)*'
    320   \ . '/'
    321 
    322 syn region markdownBlockquote start=/^\s*\%(>\s\?\)\+\%(.\)\@=/ end=/\n\n/ contains=markdownBlockquoteDelimiter,@NoSpell
    323 syn match markdownBlockquoteDelimiter /^\s*\%(>\s\?\)\+/ contained
    324 
    325 syn region markdownFencedCodeBlock matchgroup=markdownCodeDelimiter start=/^\s\{,3}```\%(`*\).*$/ end=/^\s\{,3}```\%(`*\)\s*$/ contains=@NoSpell
    326 syn region markdownFencedCodeBlock matchgroup=markdownCodeDelimiter start=/^\s\{,3}\~\~\~\%(\~*\).*$/ end=/^\s\{,3}\~\~\~\%(\~*\)\s*$/ contains=@NoSpell
    327 
    328 syn match markdownCodeBlock /\%(^\n\)\@<=\%(\%(\s\{4,}\|\t\+\).*\n\)\+$/ contains=@NoSpell
    329 
    330 let s:markdown_table_header_rows_separator = ''
    331   \ . '\%('
    332   \ .   '\s*|\?\%(\s*[-:]-\{1,}[-:]\s*|\)\+\s*[-:]-\{1,}[-:]\s*|\?\s*'
    333   \ .   '\|'
    334   \ .   '\s*|\s*[-:]-\{1,}[-:]\s*|\s*'
    335   \ .   '\|'
    336   \ .   '\s*|\s*[-:]-\{1,}[-:]\s*'
    337   \ .   '\|'
    338   \ .   '\s*[-:]-\{1,}[-:]\s*|\s*'
    339   \ . '\)'
    340 execute 'syn match markdownTable '
    341   \ . 'transparent contains=markdownTableHeader,markdownTableDelimiter,@markdownInline '
    342   \ . '/'
    343   \ .   '^\s*\n'
    344   \ .   '\s*|\?\%([^|]\+|\)*[^|]\+|\?\s*\n'
    345   \ .   s:markdown_table_header_rows_separator . '\n'
    346   \ .   '\%('
    347   \ .     '\s*|\?\%([^|]\+|\)*[^|]\+|\?\s*\n'
    348   \ .   '\)*'
    349   \ .   '$'
    350   \ . '/'
    351 syn match markdownTableDelimiter /|/ contained
    352 execute 'syn match markdownTableDelimiter contained '
    353   \ . '/' . s:markdown_table_header_rows_separator . '/'
    354 execute 'syn match markdownTableHeader contained contains=@markdownInline '
    355   \ . '/\%(|\?\s*\)\@<=[^|]\+\%(.*\n' . s:markdown_table_header_rows_separator . '\)\@=/'
    356 
    357 " }}}
    358 
    359 
    360 " {{{ NESTED BLOCKS
    361 
    362 for s:level in range(1, 16)
    363   let s:indented_as_content = '\%( \{' . (2*s:level) . '}\|\t\{' . (s:level) . '}\)'
    364   let s:indented_as_container = '\%( \{' . (2*(s:level-1)) . '}\|\t\{' . (s:level-1) . '}\)'
    365   let s:preceded_by_separator = '^\s*\n'
    366 
    367   execute 'syn region markdownListItemAtLevel' . (s:level) . ' '
    368     \ . 'matchgroup=markdownItemDelimiter '
    369     \ . (s:level > 1 ? 'contained ' : '')
    370     \ . 'keepend '
    371     \ . 'contains='
    372     \ .   'markdownTableInListItemAtLevel' . (s:level) . ','
    373     \ .   'markdownCodeBlockInListItemAtLevel' . (s:level) . ','
    374     \ .   'markdownFencedCodeBlockInListItemAtLevel' . (s:level) . ','
    375     \ .   'markdownH1InListItemAtLevel' . (s:level) . ','
    376     \ .   'markdownH2InListItemAtLevel' . (s:level) . ','
    377     \ .   'markdownH3InListItemAtLevel' . (s:level) . ','
    378     \ .   'markdownH4InListItemAtLevel' . (s:level) . ','
    379     \ .   'markdownH5InListItemAtLevel' . (s:level) . ','
    380     \ .   'markdownH6InListItemAtLevel' . (s:level) . ','
    381     \ .   'markdownRuleInListItemAtLevel' . (s:level) . ','
    382     \ .   'markdownBlockquoteInListItemAtLevel' . (s:level) . ','
    383     \ .   'markdownListItemAtLevel' . (s:level+1) . ','
    384     \ .   '@markdownInline '
    385     \ . 'start=/^' . (s:indented_as_container) . '\%([-*+]\|\d\+\.\)\%(\s\+\[[ x]\]\)\?\s\+/ '
    386     \ . 'end='
    387     \ .   '/'
    388     \ .     '\n\%(\n\n\)\@='
    389     \ .     '\|'
    390     \ .     '\n\%(' . (s:indented_as_container) . '\%([-*+]\|\d\+\.\)\s\+\)\@='
    391     \ .     '\|'
    392     \ .     '\n\%(\n' . (s:indented_as_container) . '\S\)\@='
    393     \ .   '/'
    394 
    395   " fenced code blocks could have leading spaces after the base level indentation
    396   " so at least it must be indented as content but could be indented more
    397   " there's no upper limit to the indentation because the following rule on
    398   " code blocks is going to take care of that
    399   " TL;DR: don't swap markdownFencedCodeBlockInListItemAtLevel* with
    400   " markdownCodeBlockInListItemAtLevel* :-)
    401   execute 'syn region markdownFencedCodeBlockInListItemAtLevel' . (s:level) . ' '
    402     \ . 'contained contains=@NoSpell '
    403     \ . 'matchgroup=markdownFencedCodeBlockInItemDelimiter '
    404     \ . 'start='
    405     \ .   '/'
    406     \ .     (s:preceded_by_separator)
    407     \ .     '\z( \{' . (2*s:level) . ',}\|\t\{' . (s:level) . ',}\)*```\%(`*\).*$'
    408     \ .   '/ '
    409     \ . 'end=/^\z1```\%(`*\)\s*$/'
    410   execute 'syn region markdownFencedCodeBlockInListItemAtLevel' . (s:level) . ' '
    411     \ . 'contained contains=@NoSpell '
    412     \ . 'matchgroup=markdownFencedCodeBlockInItemDelimiter '
    413     \ . 'start='
    414     \ .   '/'
    415     \ .     (s:preceded_by_separator)
    416     \ .     '\z( \{' . (2*s:level) . ',}\|\t\{' . (s:level) . ',}\)*\~\~\~\%(\~*\).*$'
    417     \ .   '/ '
    418     \ . 'end=/^\z1\~\~\~\%(\~*\)\s*$/'
    419   execute 'hi def link markdownFencedCodeBlockInListItemAtLevel' . (s:level) . ' String'
    420 
    421   execute 'syn match markdownCodeBlockInListItemAtLevel' . (s:level) . ' '
    422     \ . 'contained contains=@NoSpell '
    423     \ . '/' . (s:preceded_by_separator) . '\%(\%( \{' . (6+2*s:level)  . ',}\|\t\{' . (1+s:level) . ',}\).*\n\?\)\+$/'
    424   execute 'hi def link markdownCodeBlockInListItemAtLevel' . (s:level) . ' String'
    425 
    426   execute 'syn region markdownH1InListItemAtLevel' . (s:level) . ' '
    427     \ . 'contained display oneline '
    428     \ . 'matchgroup=markdownHeadingDelimiter '
    429     \ . 'contains=@markdownInline '
    430     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '#\%(\s\+\)\@=/ '
    431     \ . 'end=/#*\s*$/'
    432   execute 'syn region markdownH2InListItemAtLevel' . (s:level) . ' '
    433     \ . 'contained display oneline '
    434     \ . 'matchgroup=markdownHeadingDelimiter '
    435     \ . 'contains=@markdownInline '
    436     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '##\%(\s\+\)\@=/ '
    437     \ . 'end=/#*\s*$/'
    438   execute 'syn region markdownH3InListItemAtLevel' . (s:level) . ' '
    439     \ . 'contained display oneline '
    440     \ . 'matchgroup=markdownHeadingDelimiter '
    441     \ . 'contains=@markdownInline '
    442     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '###\%(\s\+\)\@=/ '
    443     \ . 'end=/#*\s*$/'
    444   execute 'syn region markdownH4InListItemAtLevel' . (s:level) . ' '
    445     \ . 'contained display oneline '
    446     \ . 'matchgroup=markdownHeadingDelimiter '
    447     \ . 'contains=@markdownInline '
    448     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '####\%(\s\+\)\@=/ '
    449     \ . 'end=/#*\s*$/'
    450   execute 'syn region markdownH5InListItemAtLevel' . (s:level) . ' '
    451     \ . 'contained display oneline '
    452     \ . 'matchgroup=markdownHeadingDelimiter '
    453     \ . 'contains=@markdownInline '
    454     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '#####\%(\s\+\)\@=/ '
    455     \ . 'end=/#*\s*$/'
    456   execute 'syn region markdownH6InListItemAtLevel' . (s:level) . ' '
    457     \ . 'contained display oneline '
    458     \ . 'matchgroup=markdownHeadingDelimiter '
    459     \ . 'contains=@markdownInline '
    460     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '######\%(\s\+\)\@=/ '
    461     \ . 'end=/#*\s*$/'
    462   execute 'hi def link markdownH1InListItemAtLevel' . (s:level) . ' Title'
    463   execute 'hi def link markdownH2InListItemAtLevel' . (s:level) . ' Title'
    464   execute 'hi def link markdownH3InListItemAtLevel' . (s:level) . ' Title'
    465   execute 'hi def link markdownH4InListItemAtLevel' . (s:level) . ' Title'
    466   execute 'hi def link markdownH5InListItemAtLevel' . (s:level) . ' Title'
    467   execute 'hi def link markdownH6InListItemAtLevel' . (s:level) . ' Title'
    468 
    469   execute 'syn match markdownH1InListItemAtLevel' . (s:level) . ' '
    470     \ . 'display contained contains=@markdownInline,markdownHeadingDelimiterInListItemAtLevel'. (s:level) . ' '
    471     \ . '/' . (s:preceded_by_separator) . (s:indented_as_content) . '.\+\n' . (s:indented_as_content) . '=\+$/'
    472   execute 'syn match markdownH1InListItemAtLevel' . (s:level) . ' '
    473     \ . 'display contained contains=@markdownInline,markdownHeadingDelimiterInListItemAtLevel'. (s:level) . ' '
    474     \ . '/' . (s:preceded_by_separator) . (s:indented_as_content) . '.\+\n' . (s:indented_as_content) . '-\+$/'
    475   execute 'syn match markdownHeadingDelimiterInListItemAtLevel' . (s:level) . ' '
    476     \ . 'display contained '
    477     \ . '/^' . (s:indented_as_content) . '\%(-\+\|=\+\)$/'
    478   execute 'hi def link markdownH1InListItemAtLevel' . (s:level) . ' Title'
    479   execute 'hi def link markdownH2InListItemAtLevel' . (s:level) . ' Title'
    480   execute 'hi def link markdownHeadingDelimiterInListItemAtLevel' . (s:level) . ' Special'
    481 
    482   execute 'syn match markdownRuleInListItemAtLevel' . (s:level) . ' '
    483     \ . '/' . (s:preceded_by_separator) . (s:indented_as_content) . '*\*\s*\*\s*\*[[:space:]*]*$/ display'
    484   execute 'syn match markdownRuleInListItemAtLevel' . (s:level) . ' '
    485     \ . '/' . (s:preceded_by_separator) . (s:indented_as_content) . '-\s*-\s*-[[:space:]-]*$/ display'
    486   execute 'syn match markdownRuleInListItemAtLevel' . (s:level) . ' '
    487     \ . '/' . (s:preceded_by_separator) . (s:indented_as_content) . '_\s*_\s*_[[:space:]_]*$/ display'
    488   execute 'hi def link markdownRuleInListItemAtLevel' . (s:level) . ' Identifier'
    489 
    490   execute 'syn region markdownBlockquoteInListItemAtLevel' . (s:level) . ' '
    491     \ . 'contained '
    492     \ . 'contains=markdownBlockquoteDelimiterInListItemAtLevel' . (s:level) . ',@NoSpell '
    493     \ . 'start=/' . (s:preceded_by_separator) . (s:indented_as_content) . '\%(>\s\?\)\+\%(.\)\@=/ '
    494     \ . 'end=/\n\n/'
    495   execute 'syn match markdownBlockquoteDelimiterInListItemAtLevel' . (s:level) . ' '
    496     \ . 'contained '
    497     \ . '/^' . (s:indented_as_content) . '\%(>\s\?\)\+/'
    498   execute 'hi def link markdownBlockquoteInListItemAtLevel' . (s:level) . ' Comment'
    499   execute 'hi def link markdownBlockquoteDelimiterInListItemAtLevel' . (s:level) . ' Delimiter'
    500 
    501   " " the only constraint here is that the table begins at least at the same
    502   " " level as the list item's content, se we could reuse the previous syntactic
    503   " " elements, we could do that because tables could have arbitrary indentation
    504   execute 'syn match markdownTableInListItemAtLevel' . (s:level) . ' '
    505     \ . 'transparent contained contains=markdownTableHeader,markdownTableDelimiter,@markdownInline '
    506     \ . '/'
    507     \ .   '^\s*\n'
    508     \ .   (s:indented_as_content) . '\s*|\?\%([^|]\+|\)*[^|]\+|\?\s*\n'
    509     \ .   s:markdown_table_header_rows_separator . '\n'
    510     \ .   '\%('
    511     \ .     '\s*|\?\%([^|]\+|\)*[^|]\+|\?\s*\n'
    512     \ .   '\)*'
    513     \ .   '$'
    514     \ . '/'
    515 endfor
    516 hi def link markdownItemDelimiter Special
    517 hi def link markdownFencedCodeBlockInItemDelimiter Special
    518 
    519 " }}}
    520 
    521 
    522 " {{{ EMOTICONS
    523 
    524 syn keyword markdownEmoticonKeyword :bowtie: :smile: :laughing: :blush: :smiley:
    525 syn keyword markdownEmoticonKeyword :bowtie: :smile: :laughing: :blush: :smiley:
    526 syn keyword markdownEmoticonKeyword :relaxed: :smirk: :heart_eyes: :kissing_heart: :kissing_closed_eyes:
    527 syn keyword markdownEmoticonKeyword :flushed: :relieved: :satisfied: :grin: :wink:
    528 syn keyword markdownEmoticonKeyword :stuck_out_tongue_winking_eye: :stuck_out_tongue_closed_eyes: :grinning: :kissing: :kissing_smiling_eyes:
    529 syn keyword markdownEmoticonKeyword :stuck_out_tongue: :sleeping: :worried: :frowning: :anguished:
    530 syn keyword markdownEmoticonKeyword :open_mouth: :grimacing: :confused: :hushed: :expressionless:
    531 syn keyword markdownEmoticonKeyword :unamused: :sweat_smile: :sweat: :disappointed_relieved: :weary:
    532 syn keyword markdownEmoticonKeyword :pensive: :disappointed: :confounded: :fearful: :cold_sweat:
    533 syn keyword markdownEmoticonKeyword :persevere: :cry: :sob: :joy: :astonished:
    534 syn keyword markdownEmoticonKeyword :scream: :neckbeard: :tired_face: :angry: :rage:
    535 syn keyword markdownEmoticonKeyword :triumph: :sleepy: :yum: :mask: :sunglasses:
    536 syn keyword markdownEmoticonKeyword :dizzy_face: :imp: :smiling_imp: :neutral_face: :no_mouth:
    537 syn keyword markdownEmoticonKeyword :innocent: :alien: :yellow_heart: :blue_heart: :purple_heart:
    538 syn keyword markdownEmoticonKeyword :heart: :green_heart: :broken_heart: :heartbeat: :heartpulse:
    539 syn keyword markdownEmoticonKeyword :two_hearts: :revolving_hearts: :cupid: :sparkling_heart: :sparkles:
    540 syn keyword markdownEmoticonKeyword :star: :star2: :dizzy: :boom: :collision:
    541 syn keyword markdownEmoticonKeyword :anger: :exclamation: :question: :grey_exclamation: :grey_question:
    542 syn keyword markdownEmoticonKeyword :zzz: :dash: :sweat_drops: :notes: :musical_note:
    543 syn keyword markdownEmoticonKeyword :fire: :hankey: :poop: :shit: :+1:
    544 syn keyword markdownEmoticonKeyword :thumbsup: :-1: :thumbsdown: :ok_hand: :punch:
    545 syn keyword markdownEmoticonKeyword :facepunch: :fist: :v: :wave: :hand:
    546 syn keyword markdownEmoticonKeyword :raised_hand: :open_hands: :point_up: :point_down: :point_left:
    547 syn keyword markdownEmoticonKeyword :point_right: :raised_hands: :pray: :point_up_2: :clap:
    548 syn keyword markdownEmoticonKeyword :muscle: :metal: :fu: :walking: :runner:
    549 syn keyword markdownEmoticonKeyword :running: :couple: :family: :two_men_holding_hands: :two_women_holding_hands:
    550 syn keyword markdownEmoticonKeyword :dancer: :dancers: :ok_woman: :no_good: :information_desk_person:
    551 syn keyword markdownEmoticonKeyword :raising_hand: :bride_with_veil: :person_with_pouting_face: :person_frowning: :bow:
    552 syn keyword markdownEmoticonKeyword :couplekiss: :couple_with_heart: :massage: :haircut: :nail_care:
    553 syn keyword markdownEmoticonKeyword :boy: :girl: :woman: :man: :baby:
    554 syn keyword markdownEmoticonKeyword :older_woman: :older_man: :person_with_blond_hair: :man_with_gua_pi_mao: :man_with_turban:
    555 syn keyword markdownEmoticonKeyword :construction_worker: :cop: :angel: :princess: :smiley_cat:
    556 syn keyword markdownEmoticonKeyword :smile_cat: :heart_eyes_cat: :kissing_cat: :smirk_cat: :scream_cat:
    557 syn keyword markdownEmoticonKeyword :crying_cat_face: :joy_cat: :pouting_cat: :japanese_ogre: :japanese_goblin:
    558 syn keyword markdownEmoticonKeyword :see_no_evil: :hear_no_evil: :speak_no_evil: :guardsman: :skull:
    559 syn keyword markdownEmoticonKeyword :feet: :lips: :kiss: :droplet: :ear:
    560 syn keyword markdownEmoticonKeyword :eyes: :nose: :tongue: :love_letter: :bust_in_silhouette:
    561 syn keyword markdownEmoticonKeyword :busts_in_silhouette: :speech_balloon: :thought_balloon: :feelsgood: :finnadie:
    562 syn keyword markdownEmoticonKeyword :goberserk: :godmode: :hurtrealbad: :rage1: :rage2:
    563 syn keyword markdownEmoticonKeyword :rage3: :rage4: :suspect: :trollface: :sunny:
    564 syn keyword markdownEmoticonKeyword :umbrella: :cloud: :snowflake: :snowman: :zap:
    565 syn keyword markdownEmoticonKeyword :cyclone: :foggy: :ocean: :cat: :dog:
    566 syn keyword markdownEmoticonKeyword :mouse: :hamster: :rabbit: :wolf: :frog:
    567 syn keyword markdownEmoticonKeyword :tiger: :koala: :bear: :pig: :pig_nose:
    568 syn keyword markdownEmoticonKeyword :cow: :boar: :monkey_face: :monkey: :horse:
    569 syn keyword markdownEmoticonKeyword :racehorse: :camel: :sheep: :elephant: :panda_face:
    570 syn keyword markdownEmoticonKeyword :snake: :bird: :baby_chick: :hatched_chick: :hatching_chick:
    571 syn keyword markdownEmoticonKeyword :chicken: :penguin: :turtle: :bug: :honeybee:
    572 syn keyword markdownEmoticonKeyword :ant: :beetle: :snail: :octopus: :tropical_fish:
    573 syn keyword markdownEmoticonKeyword :fish: :whale: :whale2: :dolphin: :cow2:
    574 syn keyword markdownEmoticonKeyword :ram: :rat: :water_buffalo: :tiger2: :rabbit2:
    575 syn keyword markdownEmoticonKeyword :dragon: :goat: :rooster: :dog2: :pig2:
    576 syn keyword markdownEmoticonKeyword :mouse2: :ox: :dragon_face: :blowfish: :crocodile:
    577 syn keyword markdownEmoticonKeyword :dromedary_camel: :leopard: :cat2: :poodle: :paw_prints:
    578 syn keyword markdownEmoticonKeyword :bouquet: :cherry_blossom: :tulip: :four_leaf_clover: :rose:
    579 syn keyword markdownEmoticonKeyword :sunflower: :hibiscus: :maple_leaf: :leaves: :fallen_leaf:
    580 syn keyword markdownEmoticonKeyword :herb: :mushroom: :cactus: :palm_tree: :evergreen_tree:
    581 syn keyword markdownEmoticonKeyword :deciduous_tree: :chestnut: :seedling: :blossom: :ear_of_rice:
    582 syn keyword markdownEmoticonKeyword :shell: :globe_with_meridians: :sun_with_face: :full_moon_with_face: :new_moon_with_face:
    583 syn keyword markdownEmoticonKeyword :new_moon: :waxing_crescent_moon: :first_quarter_moon: :waxing_gibbous_moon: :full_moon:
    584 syn keyword markdownEmoticonKeyword :waning_gibbous_moon: :last_quarter_moon: :waning_crescent_moon: :last_quarter_moon_with_face: :first_quarter_moon_with_face:
    585 syn keyword markdownEmoticonKeyword :moon: :earth_africa: :earth_americas: :earth_asia: :volcano:
    586 syn keyword markdownEmoticonKeyword :milky_way: :partly_sunny: :octocat: :squirrel: :bamboo:
    587 syn keyword markdownEmoticonKeyword :gift_heart: :dolls: :school_satchel: :mortar_board: :flags:
    588 syn keyword markdownEmoticonKeyword :fireworks: :sparkler: :wind_chime: :rice_scene: :jack_o_lantern:
    589 syn keyword markdownEmoticonKeyword :ghost: :santa: :christmas_tree: :gift: :bell:
    590 syn keyword markdownEmoticonKeyword :no_bell: :tanabata_tree: :tada: :confetti_ball: :balloon:
    591 syn keyword markdownEmoticonKeyword :crystal_ball: :cd: :dvd: :floppy_disk: :camera:
    592 syn keyword markdownEmoticonKeyword :video_camera: :movie_camera: :computer: :tv: :iphone:
    593 syn keyword markdownEmoticonKeyword :phone: :telephone: :telephone_receiver: :pager: :fax:
    594 syn keyword markdownEmoticonKeyword :minidisc: :vhs: :sound: :speaker: :mute:
    595 syn keyword markdownEmoticonKeyword :loudspeaker: :mega: :hourglass: :hourglass_flowing_sand: :alarm_clock:
    596 syn keyword markdownEmoticonKeyword :watch: :radio: :satellite: :loop: :mag:
    597 syn keyword markdownEmoticonKeyword :mag_right: :unlock: :lock: :lock_with_ink_pen: :closed_lock_with_key:
    598 syn keyword markdownEmoticonKeyword :key: :bulb: :flashlight: :high_brightness: :low_brightness:
    599 syn keyword markdownEmoticonKeyword :electric_plug: :battery: :calling: :email: :mailbox:
    600 syn keyword markdownEmoticonKeyword :postbox: :bath: :bathtub: :shower: :toilet:
    601 syn keyword markdownEmoticonKeyword :wrench: :nut_and_bolt: :hammer: :seat: :moneybag:
    602 syn keyword markdownEmoticonKeyword :yen: :dollar: :pound: :euro: :credit_card:
    603 syn keyword markdownEmoticonKeyword :money_with_wings: :e-mail: :inbox_tray: :outbox_tray: :envelope:
    604 syn keyword markdownEmoticonKeyword :incoming_envelope: :postal_horn: :mailbox_closed: :mailbox_with_mail: :mailbox_with_no_mail:
    605 syn keyword markdownEmoticonKeyword :door: :smoking: :bomb: :gun: :hocho:
    606 syn keyword markdownEmoticonKeyword :pill: :syringe: :page_facing_up: :page_with_curl: :bookmark_tabs:
    607 syn keyword markdownEmoticonKeyword :bar_chart: :chart_with_upwards_trend: :chart_with_downwards_trend: :scroll: :clipboard:
    608 syn keyword markdownEmoticonKeyword :calendar: :date: :card_index: :file_folder: :open_file_folder:
    609 syn keyword markdownEmoticonKeyword :scissors: :pushpin: :paperclip: :black_nib: :pencil2:
    610 syn keyword markdownEmoticonKeyword :straight_ruler: :triangular_ruler: :closed_book: :green_book: :blue_book:
    611 syn keyword markdownEmoticonKeyword :orange_book: :notebook: :notebook_with_decorative_cover: :ledger: :books:
    612 syn keyword markdownEmoticonKeyword :bookmark: :name_badge: :microscope: :telescope: :newspaper:
    613 syn keyword markdownEmoticonKeyword :football: :basketball: :soccer: :baseball: :tennis:
    614 syn keyword markdownEmoticonKeyword :8ball: :rugby_football: :bowling: :golf: :mountain_bicyclist:
    615 syn keyword markdownEmoticonKeyword :bicyclist: :horse_racing: :snowboarder: :swimmer: :surfer:
    616 syn keyword markdownEmoticonKeyword :ski: :spades: :hearts: :clubs: :diamonds:
    617 syn keyword markdownEmoticonKeyword :gem: :ring: :trophy: :musical_score: :musical_keyboard:
    618 syn keyword markdownEmoticonKeyword :violin: :space_invader: :video_game: :black_joker: :flower_playing_cards:
    619 syn keyword markdownEmoticonKeyword :game_die: :dart: :mahjong: :clapper: :memo:
    620 syn keyword markdownEmoticonKeyword :pencil: :book: :art: :microphone: :headphones:
    621 syn keyword markdownEmoticonKeyword :trumpet: :saxophone: :guitar: :shoe: :sandal:
    622 syn keyword markdownEmoticonKeyword :high_heel: :lipstick: :boot: :shirt: :tshirt:
    623 syn keyword markdownEmoticonKeyword :necktie: :womans_clothes: :dress: :running_shirt_with_sash: :jeans:
    624 syn keyword markdownEmoticonKeyword :kimono: :bikini: :ribbon: :tophat: :crown:
    625 syn keyword markdownEmoticonKeyword :womans_hat: :mans_shoe: :closed_umbrella: :briefcase: :handbag:
    626 syn keyword markdownEmoticonKeyword :pouch: :purse: :eyeglasses: :fishing_pole_and_fish: :coffee:
    627 syn keyword markdownEmoticonKeyword :tea: :sake: :baby_bottle: :beer: :beers:
    628 syn keyword markdownEmoticonKeyword :cocktail: :tropical_drink: :wine_glass: :fork_and_knife: :pizza:
    629 syn keyword markdownEmoticonKeyword :hamburger: :fries: :poultry_leg: :meat_on_bone: :spaghetti:
    630 syn keyword markdownEmoticonKeyword :curry: :fried_shrimp: :bento: :sushi: :fish_cake:
    631 syn keyword markdownEmoticonKeyword :rice_ball: :rice_cracker: :rice: :ramen: :stew:
    632 syn keyword markdownEmoticonKeyword :oden: :dango: :egg: :bread: :doughnut:
    633 syn keyword markdownEmoticonKeyword :custard: :icecream: :ice_cream: :shaved_ice: :birthday:
    634 syn keyword markdownEmoticonKeyword :cake: :cookie: :chocolate_bar: :candy: :lollipop:
    635 syn keyword markdownEmoticonKeyword :honey_pot: :apple: :green_apple: :tangerine: :lemon:
    636 syn keyword markdownEmoticonKeyword :cherries: :grapes: :watermelon: :strawberry: :peach:
    637 syn keyword markdownEmoticonKeyword :melon: :banana: :pear: :pineapple: :sweet_potato:
    638 syn keyword markdownEmoticonKeyword :eggplant: :tomato: :corn: :house: :house_with_garden:
    639 syn keyword markdownEmoticonKeyword :school: :office: :post_office: :hospital: :bank:
    640 syn keyword markdownEmoticonKeyword :convenience_store: :love_hotel: :hotel: :wedding: :church:
    641 syn keyword markdownEmoticonKeyword :department_store: :european_post_office: :city_sunrise: :city_sunset: :japanese_castle:
    642 syn keyword markdownEmoticonKeyword :european_castle: :tent: :factory: :tokyo_tower: :japan:
    643 syn keyword markdownEmoticonKeyword :mount_fuji: :sunrise_over_mountains: :sunrise: :stars: :statue_of_liberty:
    644 syn keyword markdownEmoticonKeyword :bridge_at_night: :carousel_horse: :rainbow: :ferris_wheel: :fountain:
    645 syn keyword markdownEmoticonKeyword :roller_coaster: :ship: :speedboat: :boat: :sailboat:
    646 syn keyword markdownEmoticonKeyword :rowboat: :anchor: :rocket: :airplane: :helicopter:
    647 syn keyword markdownEmoticonKeyword :steam_locomotive: :tram: :mountain_railway: :bike: :aerial_tramway:
    648 syn keyword markdownEmoticonKeyword :suspension_railway: :mountain_cableway: :tractor: :blue_car: :oncoming_automobile:
    649 syn keyword markdownEmoticonKeyword :car: :red_car: :taxi: :oncoming_taxi: :articulated_lorry:
    650 syn keyword markdownEmoticonKeyword :bus: :oncoming_bus: :rotating_light: :police_car: :oncoming_police_car:
    651 syn keyword markdownEmoticonKeyword :fire_engine: :ambulance: :minibus: :truck: :train:
    652 syn keyword markdownEmoticonKeyword :station: :train2: :bullettrain_front: :bullettrain_side: :light_rail:
    653 syn keyword markdownEmoticonKeyword :monorail: :railway_car: :trolleybus: :ticket: :fuelpump:
    654 syn keyword markdownEmoticonKeyword :vertical_traffic_light: :traffic_light: :warning: :construction: :beginner:
    655 syn keyword markdownEmoticonKeyword :atm: :slot_machine: :busstop: :barber: :hotsprings:
    656 syn keyword markdownEmoticonKeyword :checkered_flag: :crossed_flags: :izakaya_lantern: :moyai: :circus_tent:
    657 syn keyword markdownEmoticonKeyword :performing_arts: :round_pushpin: :triangular_flag_on_post: :jp: :kr:
    658 syn keyword markdownEmoticonKeyword :cn: :us: :fr: :es: :it:
    659 syn keyword markdownEmoticonKeyword :ru: :gb: :uk: :de: :one:
    660 syn keyword markdownEmoticonKeyword :two: :three: :four: :five: :six:
    661 syn keyword markdownEmoticonKeyword :seven: :eight: :nine: :keycap_ten: :1234:
    662 syn keyword markdownEmoticonKeyword :zero: :hash: :symbols: :arrow_backward: :arrow_down:
    663 syn keyword markdownEmoticonKeyword :arrow_forward: :arrow_left: :capital_abcd: :abcd: :abc:
    664 syn keyword markdownEmoticonKeyword :arrow_lower_left: :arrow_lower_right: :arrow_right: :arrow_up: :arrow_upper_left:
    665 syn keyword markdownEmoticonKeyword :arrow_upper_right: :arrow_double_down: :arrow_double_up: :arrow_down_small: :arrow_heading_down:
    666 syn keyword markdownEmoticonKeyword :arrow_heading_up: :leftwards_arrow_with_hook: :arrow_right_hook: :left_right_arrow: :arrow_up_down:
    667 syn keyword markdownEmoticonKeyword :arrow_up_small: :arrows_clockwise: :arrows_counterclockwise: :rewind: :fast_forward:
    668 syn keyword markdownEmoticonKeyword :information_source: :ok: :twisted_rightwards_arrows: :repeat: :repeat_one:
    669 syn keyword markdownEmoticonKeyword :new: :top: :up: :cool: :free:
    670 syn keyword markdownEmoticonKeyword :ng: :cinema: :koko: :signal_strength: :u5272:
    671 syn keyword markdownEmoticonKeyword :u5408: :u55b6: :u6307: :u6708: :u6709:
    672 syn keyword markdownEmoticonKeyword :u6e80: :u7121: :u7533: :u7a7a: :u7981:
    673 syn keyword markdownEmoticonKeyword :sa: :restroom: :mens: :womens: :baby_symbol:
    674 syn keyword markdownEmoticonKeyword :no_smoking: :parking: :wheelchair: :metro: :baggage_claim:
    675 syn keyword markdownEmoticonKeyword :accept: :wc: :potable_water: :put_litter_in_its_place: :secret:
    676 syn keyword markdownEmoticonKeyword :congratulations: :m: :passport_control: :left_luggage: :customs:
    677 syn keyword markdownEmoticonKeyword :ideograph_advantage: :cl: :sos: :id: :no_entry_sign:
    678 syn keyword markdownEmoticonKeyword :underage: :no_mobile_phones: :do_not_litter: :non-potable_water: :no_bicycles:
    679 syn keyword markdownEmoticonKeyword :no_pedestrians: :children_crossing: :no_entry: :eight_spoked_asterisk: :eight_pointed_black_star:
    680 syn keyword markdownEmoticonKeyword :heart_decoration: :vs: :vibration_mode: :mobile_phone_off: :chart:
    681 syn keyword markdownEmoticonKeyword :currency_exchange: :aries: :taurus: :gemini: :cancer:
    682 syn keyword markdownEmoticonKeyword :leo: :virgo: :libra: :scorpius: :sagittarius:
    683 syn keyword markdownEmoticonKeyword :capricorn: :aquarius: :pisces: :ophiuchus: :six_pointed_star:
    684 syn keyword markdownEmoticonKeyword :negative_squared_cross_mark: :a: :b: :ab: :o2:
    685 syn keyword markdownEmoticonKeyword :diamond_shape_with_a_dot_inside: :recycle: :end: :on: :soon:
    686 syn keyword markdownEmoticonKeyword :clock1: :clock130: :clock10: :clock1030: :clock11:
    687 syn keyword markdownEmoticonKeyword :clock1130: :clock12: :clock1230: :clock2: :clock230:
    688 syn keyword markdownEmoticonKeyword :clock3: :clock330: :clock4: :clock430: :clock5:
    689 syn keyword markdownEmoticonKeyword :clock530: :clock6: :clock630: :clock7: :clock730:
    690 syn keyword markdownEmoticonKeyword :clock8: :clock830: :clock9: :clock930: :heavy_dollar_sign:
    691 syn keyword markdownEmoticonKeyword :copyright: :registered: :tm: :x: :heavy_exclamation_mark:
    692 syn keyword markdownEmoticonKeyword :bangbang: :interrobang: :o: :heavy_multiplication_x: :heavy_plus_sign:
    693 syn keyword markdownEmoticonKeyword :heavy_minus_sign: :heavy_division_sign: :white_flower: :100: :heavy_check_mark:
    694 syn keyword markdownEmoticonKeyword :ballot_box_with_check: :radio_button: :link: :curly_loop: :wavy_dash:
    695 syn keyword markdownEmoticonKeyword :part_alternation_mark: :trident: :black_square: :white_square: :white_check_mark:
    696 syn keyword markdownEmoticonKeyword :black_square_button: :white_square_button: :black_circle: :white_circle: :red_circle:
    697 syn keyword markdownEmoticonKeyword :large_blue_circle: :large_blue_diamond: :large_orange_diamond: :small_blue_diamond: :small_orange_diamond:
    698 syn keyword markdownEmoticonKeyword :small_red_triangle: :small_red_triangle_down: :shipit: :relaxed: :smirk:
    699 syn keyword markdownEmoticonKeyword :heart_eyes: :kissing_heart: :kissing_closed_eyes: :flushed: :relieved:
    700 syn keyword markdownEmoticonKeyword :satisfied: :grin: :wink: :stuck_out_tongue_winking_eye: :stuck_out_tongue_closed_eyes:
    701 syn keyword markdownEmoticonKeyword :grinning: :kissing: :kissing_smiling_eyes: :stuck_out_tongue: :sleeping:
    702 syn keyword markdownEmoticonKeyword :worried: :frowning: :anguished: :open_mouth: :grimacing:
    703 syn keyword markdownEmoticonKeyword :confused: :hushed: :expressionless: :unamused: :sweat_smile:
    704 syn keyword markdownEmoticonKeyword :sweat: :disappointed_relieved: :weary: :pensive: :disappointed:
    705 syn keyword markdownEmoticonKeyword :confounded: :fearful: :cold_sweat: :persevere: :cry:
    706 syn keyword markdownEmoticonKeyword :sob: :joy: :astonished: :scream: :neckbeard:
    707 syn keyword markdownEmoticonKeyword :tired_face: :angry: :rage: :triumph: :sleepy:
    708 syn keyword markdownEmoticonKeyword :yum: :mask: :sunglasses: :dizzy_face: :imp:
    709 syn keyword markdownEmoticonKeyword :smiling_imp: :neutral_face: :no_mouth: :innocent: :alien:
    710 syn keyword markdownEmoticonKeyword :yellow_heart: :blue_heart: :purple_heart: :heart: :green_heart:
    711 syn keyword markdownEmoticonKeyword :broken_heart: :heartbeat: :heartpulse: :two_hearts: :revolving_hearts:
    712 syn keyword markdownEmoticonKeyword :cupid: :sparkling_heart: :sparkles: :star: :star2:
    713 syn keyword markdownEmoticonKeyword :dizzy: :boom: :collision: :anger: :exclamation:
    714 syn keyword markdownEmoticonKeyword :question: :grey_exclamation: :grey_question: :zzz: :dash:
    715 syn keyword markdownEmoticonKeyword :sweat_drops: :notes: :musical_note: :fire: :hankey:
    716 syn keyword markdownEmoticonKeyword :poop: :shit: :+1: :thumbsup: :-1:
    717 syn keyword markdownEmoticonKeyword :thumbsdown: :ok_hand: :punch: :facepunch: :fist:
    718 syn keyword markdownEmoticonKeyword :v: :wave: :hand: :raised_hand: :open_hands:
    719 syn keyword markdownEmoticonKeyword :point_up: :point_down: :point_left: :point_right: :raised_hands:
    720 syn keyword markdownEmoticonKeyword :pray: :point_up_2: :clap: :muscle: :metal:
    721 syn keyword markdownEmoticonKeyword :fu: :walking: :runner: :running: :couple:
    722 syn keyword markdownEmoticonKeyword :family: :two_men_holding_hands: :two_women_holding_hands: :dancer: :dancers:
    723 syn keyword markdownEmoticonKeyword :ok_woman: :no_good: :information_desk_person: :raising_hand: :bride_with_veil:
    724 syn keyword markdownEmoticonKeyword :person_with_pouting_face: :person_frowning: :bow: :couplekiss: :couple_with_heart:
    725 syn keyword markdownEmoticonKeyword :massage: :haircut: :nail_care: :boy: :girl:
    726 syn keyword markdownEmoticonKeyword :woman: :man: :baby: :older_woman: :older_man:
    727 syn keyword markdownEmoticonKeyword :person_with_blond_hair: :man_with_gua_pi_mao: :man_with_turban: :construction_worker: :cop:
    728 syn keyword markdownEmoticonKeyword :angel: :princess: :smiley_cat: :smile_cat: :heart_eyes_cat:
    729 syn keyword markdownEmoticonKeyword :kissing_cat: :smirk_cat: :scream_cat: :crying_cat_face: :joy_cat:
    730 syn keyword markdownEmoticonKeyword :pouting_cat: :japanese_ogre: :japanese_goblin: :see_no_evil: :hear_no_evil:
    731 syn keyword markdownEmoticonKeyword :speak_no_evil: :guardsman: :skull: :feet: :lips:
    732 syn keyword markdownEmoticonKeyword :kiss: :droplet: :ear: :eyes: :nose:
    733 syn keyword markdownEmoticonKeyword :tongue: :love_letter: :bust_in_silhouette: :busts_in_silhouette: :speech_balloon:
    734 syn keyword markdownEmoticonKeyword :thought_balloon: :feelsgood: :finnadie: :goberserk: :godmode:
    735 syn keyword markdownEmoticonKeyword :hurtrealbad: :rage1: :rage2: :rage3: :rage4:
    736 syn keyword markdownEmoticonKeyword :suspect: :trollface: :sunny: :umbrella: :cloud:
    737 syn keyword markdownEmoticonKeyword :snowflake: :snowman: :zap: :cyclone: :foggy:
    738 syn keyword markdownEmoticonKeyword :ocean: :cat: :dog: :mouse: :hamster:
    739 syn keyword markdownEmoticonKeyword :rabbit: :wolf: :frog: :tiger: :koala:
    740 syn keyword markdownEmoticonKeyword :bear: :pig: :pig_nose: :cow: :boar:
    741 syn keyword markdownEmoticonKeyword :monkey_face: :monkey: :horse: :racehorse: :camel:
    742 syn keyword markdownEmoticonKeyword :sheep: :elephant: :panda_face: :snake: :bird:
    743 syn keyword markdownEmoticonKeyword :baby_chick: :hatched_chick: :hatching_chick: :chicken: :penguin:
    744 syn keyword markdownEmoticonKeyword :turtle: :bug: :honeybee: :ant: :beetle:
    745 syn keyword markdownEmoticonKeyword :snail: :octopus: :tropical_fish: :fish: :whale:
    746 syn keyword markdownEmoticonKeyword :whale2: :dolphin: :cow2: :ram: :rat:
    747 syn keyword markdownEmoticonKeyword :water_buffalo: :tiger2: :rabbit2: :dragon: :goat:
    748 syn keyword markdownEmoticonKeyword :rooster: :dog2: :pig2: :mouse2: :ox:
    749 syn keyword markdownEmoticonKeyword :dragon_face: :blowfish: :crocodile: :dromedary_camel: :leopard:
    750 syn keyword markdownEmoticonKeyword :cat2: :poodle: :paw_prints: :bouquet: :cherry_blossom:
    751 syn keyword markdownEmoticonKeyword :tulip: :four_leaf_clover: :rose: :sunflower: :hibiscus:
    752 syn keyword markdownEmoticonKeyword :maple_leaf: :leaves: :fallen_leaf: :herb: :mushroom:
    753 syn keyword markdownEmoticonKeyword :cactus: :palm_tree: :evergreen_tree: :deciduous_tree: :chestnut:
    754 syn keyword markdownEmoticonKeyword :seedling: :blossom: :ear_of_rice: :shell: :globe_with_meridians:
    755 syn keyword markdownEmoticonKeyword :sun_with_face: :full_moon_with_face: :new_moon_with_face: :new_moon: :waxing_crescent_moon:
    756 syn keyword markdownEmoticonKeyword :first_quarter_moon: :waxing_gibbous_moon: :full_moon: :waning_gibbous_moon: :last_quarter_moon:
    757 syn keyword markdownEmoticonKeyword :waning_crescent_moon: :last_quarter_moon_with_face: :first_quarter_moon_with_face: :moon: :earth_africa:
    758 syn keyword markdownEmoticonKeyword :earth_americas: :earth_asia: :volcano: :milky_way: :partly_sunny:
    759 syn keyword markdownEmoticonKeyword :octocat: :squirrel: :bamboo: :gift_heart: :dolls:
    760 syn keyword markdownEmoticonKeyword :school_satchel: :mortar_board: :flags: :fireworks: :sparkler:
    761 syn keyword markdownEmoticonKeyword :wind_chime: :rice_scene: :jack_o_lantern: :ghost: :santa:
    762 syn keyword markdownEmoticonKeyword :christmas_tree: :gift: :bell: :no_bell: :tanabata_tree:
    763 syn keyword markdownEmoticonKeyword :tada: :confetti_ball: :balloon: :crystal_ball: :cd:
    764 syn keyword markdownEmoticonKeyword :dvd: :floppy_disk: :camera: :video_camera: :movie_camera:
    765 syn keyword markdownEmoticonKeyword :computer: :tv: :iphone: :phone: :telephone:
    766 syn keyword markdownEmoticonKeyword :telephone_receiver: :pager: :fax: :minidisc: :vhs:
    767 syn keyword markdownEmoticonKeyword :sound: :speaker: :mute: :loudspeaker: :mega:
    768 syn keyword markdownEmoticonKeyword :hourglass: :hourglass_flowing_sand: :alarm_clock: :watch: :radio:
    769 syn keyword markdownEmoticonKeyword :satellite: :loop: :mag: :mag_right: :unlock:
    770 syn keyword markdownEmoticonKeyword :lock: :lock_with_ink_pen: :closed_lock_with_key: :key: :bulb:
    771 syn keyword markdownEmoticonKeyword :flashlight: :high_brightness: :low_brightness: :electric_plug: :battery:
    772 syn keyword markdownEmoticonKeyword :calling: :email: :mailbox: :postbox: :bath:
    773 syn keyword markdownEmoticonKeyword :bathtub: :shower: :toilet: :wrench: :nut_and_bolt:
    774 syn keyword markdownEmoticonKeyword :hammer: :seat: :moneybag: :yen: :dollar:
    775 syn keyword markdownEmoticonKeyword :pound: :euro: :credit_card: :money_with_wings: :e-mail:
    776 syn keyword markdownEmoticonKeyword :inbox_tray: :outbox_tray: :envelope: :incoming_envelope: :postal_horn:
    777 syn keyword markdownEmoticonKeyword :mailbox_closed: :mailbox_with_mail: :mailbox_with_no_mail: :door: :smoking:
    778 syn keyword markdownEmoticonKeyword :bomb: :gun: :hocho: :pill: :syringe:
    779 syn keyword markdownEmoticonKeyword :page_facing_up: :page_with_curl: :bookmark_tabs: :bar_chart: :chart_with_upwards_trend:
    780 syn keyword markdownEmoticonKeyword :chart_with_downwards_trend: :scroll: :clipboard: :calendar: :date:
    781 syn keyword markdownEmoticonKeyword :card_index: :file_folder: :open_file_folder: :scissors: :pushpin:
    782 syn keyword markdownEmoticonKeyword :paperclip: :black_nib: :pencil2: :straight_ruler: :triangular_ruler:
    783 syn keyword markdownEmoticonKeyword :closed_book: :green_book: :blue_book: :orange_book: :notebook:
    784 syn keyword markdownEmoticonKeyword :notebook_with_decorative_cover: :ledger: :books: :bookmark: :name_badge:
    785 syn keyword markdownEmoticonKeyword :microscope: :telescope: :newspaper: :football: :basketball:
    786 syn keyword markdownEmoticonKeyword :soccer: :baseball: :tennis: :8ball: :rugby_football:
    787 syn keyword markdownEmoticonKeyword :bowling: :golf: :mountain_bicyclist: :bicyclist: :horse_racing:
    788 syn keyword markdownEmoticonKeyword :snowboarder: :swimmer: :surfer: :ski: :spades:
    789 syn keyword markdownEmoticonKeyword :hearts: :clubs: :diamonds: :gem: :ring:
    790 syn keyword markdownEmoticonKeyword :trophy: :musical_score: :musical_keyboard: :violin: :space_invader:
    791 syn keyword markdownEmoticonKeyword :video_game: :black_joker: :flower_playing_cards: :game_die: :dart:
    792 syn keyword markdownEmoticonKeyword :mahjong: :clapper: :memo: :pencil: :book:
    793 syn keyword markdownEmoticonKeyword :art: :microphone: :headphones: :trumpet: :saxophone:
    794 syn keyword markdownEmoticonKeyword :guitar: :shoe: :sandal: :high_heel: :lipstick:
    795 syn keyword markdownEmoticonKeyword :boot: :shirt: :tshirt: :necktie: :womans_clothes:
    796 syn keyword markdownEmoticonKeyword :dress: :running_shirt_with_sash: :jeans: :kimono: :bikini:
    797 syn keyword markdownEmoticonKeyword :ribbon: :tophat: :crown: :womans_hat: :mans_shoe:
    798 syn keyword markdownEmoticonKeyword :closed_umbrella: :briefcase: :handbag: :pouch: :purse:
    799 syn keyword markdownEmoticonKeyword :eyeglasses: :fishing_pole_and_fish: :coffee: :tea: :sake:
    800 syn keyword markdownEmoticonKeyword :baby_bottle: :beer: :beers: :cocktail: :tropical_drink:
    801 syn keyword markdownEmoticonKeyword :wine_glass: :fork_and_knife: :pizza: :hamburger: :fries:
    802 syn keyword markdownEmoticonKeyword :poultry_leg: :meat_on_bone: :spaghetti: :curry: :fried_shrimp:
    803 syn keyword markdownEmoticonKeyword :bento: :sushi: :fish_cake: :rice_ball: :rice_cracker:
    804 syn keyword markdownEmoticonKeyword :rice: :ramen: :stew: :oden: :dango:
    805 syn keyword markdownEmoticonKeyword :egg: :bread: :doughnut: :custard: :icecream:
    806 syn keyword markdownEmoticonKeyword :ice_cream: :shaved_ice: :birthday: :cake: :cookie:
    807 syn keyword markdownEmoticonKeyword :chocolate_bar: :candy: :lollipop: :honey_pot: :apple:
    808 syn keyword markdownEmoticonKeyword :green_apple: :tangerine: :lemon: :cherries: :grapes:
    809 syn keyword markdownEmoticonKeyword :watermelon: :strawberry: :peach: :melon: :banana:
    810 syn keyword markdownEmoticonKeyword :pear: :pineapple: :sweet_potato: :eggplant: :tomato:
    811 syn keyword markdownEmoticonKeyword :corn: :house: :house_with_garden: :school: :office:
    812 syn keyword markdownEmoticonKeyword :post_office: :hospital: :bank: :convenience_store: :love_hotel:
    813 syn keyword markdownEmoticonKeyword :hotel: :wedding: :church: :department_store: :european_post_office:
    814 syn keyword markdownEmoticonKeyword :city_sunrise: :city_sunset: :japanese_castle: :european_castle: :tent:
    815 syn keyword markdownEmoticonKeyword :factory: :tokyo_tower: :japan: :mount_fuji: :sunrise_over_mountains:
    816 syn keyword markdownEmoticonKeyword :sunrise: :stars: :statue_of_liberty: :bridge_at_night: :carousel_horse:
    817 syn keyword markdownEmoticonKeyword :rainbow: :ferris_wheel: :fountain: :roller_coaster: :ship:
    818 syn keyword markdownEmoticonKeyword :speedboat: :boat: :sailboat: :rowboat: :anchor:
    819 syn keyword markdownEmoticonKeyword :rocket: :airplane: :helicopter: :steam_locomotive: :tram:
    820 syn keyword markdownEmoticonKeyword :mountain_railway: :bike: :aerial_tramway: :suspension_railway: :mountain_cableway:
    821 syn keyword markdownEmoticonKeyword :tractor: :blue_car: :oncoming_automobile: :car: :red_car:
    822 syn keyword markdownEmoticonKeyword :taxi: :oncoming_taxi: :articulated_lorry: :bus: :oncoming_bus:
    823 syn keyword markdownEmoticonKeyword :rotating_light: :police_car: :oncoming_police_car: :fire_engine: :ambulance:
    824 syn keyword markdownEmoticonKeyword :minibus: :truck: :train: :station: :train2:
    825 syn keyword markdownEmoticonKeyword :bullettrain_front: :bullettrain_side: :light_rail: :monorail: :railway_car:
    826 syn keyword markdownEmoticonKeyword :trolleybus: :ticket: :fuelpump: :vertical_traffic_light: :traffic_light:
    827 syn keyword markdownEmoticonKeyword :warning: :construction: :beginner: :atm: :slot_machine:
    828 syn keyword markdownEmoticonKeyword :busstop: :barber: :hotsprings: :checkered_flag: :crossed_flags:
    829 syn keyword markdownEmoticonKeyword :izakaya_lantern: :moyai: :circus_tent: :performing_arts: :round_pushpin:
    830 syn keyword markdownEmoticonKeyword :triangular_flag_on_post: :jp: :kr: :cn: :us:
    831 syn keyword markdownEmoticonKeyword :fr: :es: :it: :ru: :gb:
    832 syn keyword markdownEmoticonKeyword :uk: :de: :one: :two: :three:
    833 syn keyword markdownEmoticonKeyword :four: :five: :six: :seven: :eight:
    834 syn keyword markdownEmoticonKeyword :nine: :keycap_ten: :1234: :zero: :hash:
    835 syn keyword markdownEmoticonKeyword :symbols: :arrow_backward: :arrow_down: :arrow_forward: :arrow_left:
    836 syn keyword markdownEmoticonKeyword :capital_abcd: :abcd: :abc: :arrow_lower_left: :arrow_lower_right:
    837 syn keyword markdownEmoticonKeyword :arrow_right: :arrow_up: :arrow_upper_left: :arrow_upper_right: :arrow_double_down:
    838 syn keyword markdownEmoticonKeyword :arrow_double_up: :arrow_down_small: :arrow_heading_down: :arrow_heading_up: :leftwards_arrow_with_hook:
    839 syn keyword markdownEmoticonKeyword :arrow_right_hook: :left_right_arrow: :arrow_up_down: :arrow_up_small: :arrows_clockwise:
    840 syn keyword markdownEmoticonKeyword :arrows_counterclockwise: :rewind: :fast_forward: :information_source: :ok:
    841 syn keyword markdownEmoticonKeyword :twisted_rightwards_arrows: :repeat: :repeat_one: :new: :top:
    842 syn keyword markdownEmoticonKeyword :up: :cool: :free: :ng: :cinema:
    843 syn keyword markdownEmoticonKeyword :koko: :signal_strength: :u5272: :u5408: :u55b6:
    844 syn keyword markdownEmoticonKeyword :u6307: :u6708: :u6709: :u6e80: :u7121:
    845 syn keyword markdownEmoticonKeyword :u7533: :u7a7a: :u7981: :sa: :restroom:
    846 syn keyword markdownEmoticonKeyword :mens: :womens: :baby_symbol: :no_smoking: :parking:
    847 syn keyword markdownEmoticonKeyword :wheelchair: :metro: :baggage_claim: :accept: :wc:
    848 syn keyword markdownEmoticonKeyword :potable_water: :put_litter_in_its_place: :secret: :congratulations: :m:
    849 syn keyword markdownEmoticonKeyword :passport_control: :left_luggage: :customs: :ideograph_advantage: :cl:
    850 syn keyword markdownEmoticonKeyword :sos: :id: :no_entry_sign: :underage: :no_mobile_phones:
    851 syn keyword markdownEmoticonKeyword :do_not_litter: :non-potable_water: :no_bicycles: :no_pedestrians: :children_crossing:
    852 syn keyword markdownEmoticonKeyword :no_entry: :eight_spoked_asterisk: :eight_pointed_black_star: :heart_decoration: :vs:
    853 syn keyword markdownEmoticonKeyword :vibration_mode: :mobile_phone_off: :chart: :currency_exchange: :aries:
    854 syn keyword markdownEmoticonKeyword :taurus: :gemini: :cancer: :leo: :virgo:
    855 syn keyword markdownEmoticonKeyword :libra: :scorpius: :sagittarius: :capricorn: :aquarius:
    856 syn keyword markdownEmoticonKeyword :pisces: :ophiuchus: :six_pointed_star: :negative_squared_cross_mark: :a:
    857 syn keyword markdownEmoticonKeyword :b: :ab: :o2: :diamond_shape_with_a_dot_inside: :recycle:
    858 syn keyword markdownEmoticonKeyword :end: :on: :soon: :clock1: :clock130:
    859 syn keyword markdownEmoticonKeyword :clock10: :clock1030: :clock11: :clock1130: :clock12:
    860 syn keyword markdownEmoticonKeyword :clock1230: :clock2: :clock230: :clock3: :clock330:
    861 syn keyword markdownEmoticonKeyword :clock4: :clock430: :clock5: :clock530: :clock6:
    862 syn keyword markdownEmoticonKeyword :clock630: :clock7: :clock730: :clock8: :clock830:
    863 syn keyword markdownEmoticonKeyword :clock9: :clock930: :heavy_dollar_sign: :copyright: :registered:
    864 syn keyword markdownEmoticonKeyword :tm: :x: :heavy_exclamation_mark: :bangbang: :interrobang:
    865 syn keyword markdownEmoticonKeyword :o: :heavy_multiplication_x: :heavy_plus_sign: :heavy_minus_sign: :heavy_division_sign:
    866 syn keyword markdownEmoticonKeyword :white_flower: :100: :heavy_check_mark: :ballot_box_with_check: :radio_button:
    867 syn keyword markdownEmoticonKeyword :link: :curly_loop: :wavy_dash: :part_alternation_mark: :trident:
    868 syn keyword markdownEmoticonKeyword :black_square: :white_square: :white_check_mark: :black_square_button: :white_square_button:
    869 syn keyword markdownEmoticonKeyword :black_circle: :white_circle: :red_circle: :large_blue_circle: :large_blue_diamond:
    870 syn keyword markdownEmoticonKeyword :large_orange_diamond: :small_blue_diamond: :small_orange_diamond: :small_red_triangle: :small_red_triangle_down:
    871 syn keyword markdownEmoticonKeyword :shipit:
    872 
    873 " }}}
    874 
    875 
    876 " {{{ HIGHLIGHT DEFINITION
    877 
    878 hi def Italic                       term=italic cterm=italic gui=italic
    879 hi def Bold                         term=bold cterm=bold gui=bold
    880 hi def BoldItalic                   term=bold,italic cterm=bold,italic gui=bold,italic
    881 
    882 hi def link markdownItalic                  Italic
    883 hi def link markdownBold                    Bold
    884 hi def link markdownBoldItalic              BoldItalic
    885 
    886 hi def link markdownPullRequestLinkInText   Underlined
    887 hi def link markdownUserLinkInText          Underlined
    888 hi def link markdownUrlLinkInText           Underlined
    889 hi def link markdownEmailLinkInText         Underlined
    890 
    891 hi def link markdownLinkText                Underlined
    892 hi def link markdownLinkUrl                 Underlined
    893 hi def link markdownLinkTitleSingleQuoted   Bold
    894 hi def link markdownLinkTitleDoubleQuoted   Bold
    895 hi def link markdownLinkUrlContainer        Delimiter
    896 hi def link markdownLinkTextContainer       Delimiter
    897 hi def link markdownLinkReference           NonText
    898 
    899 hi def link markdownCodeDelimiter           Delimiter
    900 hi def link markdownInlineCode              String
    901 hi def link markdownFencedCodeBlock         String
    902 hi def link markdownCodeBlock               String
    903 
    904 hi def link markdownTableDelimiter          Delimiter
    905 hi def link markdownTableHeader             Bold
    906 
    907 hi def link markdownStrike                  NonText
    908 hi def link markdownStrikeDelimiter         Delimiter
    909 hi def link markdownBlockquote              Comment
    910 hi def link markdownBlockquoteDelimiter     Delimiter
    911 hi def link markdownInlineDelimiter         Delimiter
    912 hi def link markdownListDelimiter           Delimiter
    913 
    914 hi def link markdownHeaderId                Delimiter
    915 hi def link markdownHeadingDelimiter        Delimiter
    916 hi def link markdownHeadingUnderline        Delimiter
    917 hi def link markdownHeader                  Title
    918 hi def link markdownH1                      Title
    919 hi def link markdownH2                      Title
    920 hi def link markdownH3                      Title
    921 hi def link markdownH4                      Title
    922 hi def link markdownH5                      Title
    923 hi def link markdownH6                      Title
    924 
    925 hi def link markdownEmoticonKeyword         Statement
    926 hi def link markdownRule                    Identifier
    927 
    928 hi def link markdownXmlComment              NonText
    929 hi def link markdownXmlElement              NonText
    930 hi def link markdownXmlEmptyElement         NonText
    931 hi def link markdownXmlEntities             Special
    932 
    933 " }}}
    934 
    935 
    936 if !exists('g:markdown_include_jekyll_support') || g:markdown_include_jekyll_support
    937   execute 'runtime! syntax/markdown_jekyll.vim'
    938 endif
    939 
    940 let b:current_syntax = "markdown"
    941 if main_syntax ==# 'markdown'
    942   unlet main_syntax
    943 endif