scopeName: text.html.markdown name: Markdown keyEquivalent: ^~M repository:

link-email: 
  name: meta.link.email.lt-gt.markdown
  captures: 
    "1": 
      name: punctuation.definition.link.markdown
    "2": 
      name: markup.underline.link.markdown
    "4": 
      name: punctuation.definition.link.markdown
  match: (<)((?:mailto:)?[-.\w]+@[-a-z0-9]+(\.[-a-z0-9]+)*\.[a-z]+)(>)
bracket: 
  name: meta.other.valid-bracket.markdown
  comment: "\n\
    \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
    \t\t\t\tHTML grammar will not mark it up as invalid.\n\
    \t\t\t"
  match: <(?![a-z/?\$!])
list-paragraph: 
  patterns: 
  - name: meta.paragraph.list.markdown
    begin: \G\s+(?=\S)
    end: ^\s*$
    patterns: 
    - include: "#inline"
    - comment: Match the list punctuation
      captures: 
        "1": 
          name: punctuation.definition.list_item.markdown
      match: ^\s*([*+-]|[0-9]+\.)
link-ref-literal: 
  name: meta.link.reference.literal.markdown
  captures: 
    "6": 
      name: punctuation.definition.constant.end.markdown
    "1": 
      name: punctuation.definition.string.begin.markdown
    "2": 
      name: string.other.link.title.markdown
    "4": 
      name: punctuation.definition.string.end.markdown
    "5": 
      name: punctuation.definition.constant.begin.markdown
  match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(\])
image-inline: 
  name: meta.image.inline.markdown
  captures: 
    "6": 
      name: punctuation.definition.metadata.markdown
    "11": 
      name: punctuation.definition.string.markdown
    "7": 
      name: punctuation.definition.link.markdown
    "12": 
      name: punctuation.definition.string.markdown
    "8": 
      name: markup.underline.link.image.markdown
    "13": 
      name: string.other.link.description.title.markdown
    "9": 
      name: punctuation.definition.link.markdown
    "14": 
      name: punctuation.definition.string.markdown
    "15": 
      name: punctuation.definition.string.markdown
    "16": 
      name: punctuation.definition.metadata.markdown
    "1": 
      name: punctuation.definition.string.begin.markdown
    "2": 
      name: string.other.link.description.markdown
    "3": 
      name: punctuation.definition.string.end.markdown
    "10": 
      name: string.other.link.description.title.markdown
    "5": 
      name: invalid.illegal.whitespace.markdown
  match: "(?x:\n\
    \t\t\t\t\\!\t\t\t\t\t\t\t# Images start with !\n\
    \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
    \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
    \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
    \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
    \t\t\t\t\t(<?)(\\S+?)(>?)\t\t\t# The url\n\
    \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
    \t\t\t\t\t(?:\n\
    \t\t\t\t\t\t  ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
    \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
    \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
    \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
    \t\t\t\t(\\))\n\
    \t\t\t )"
link-inline: 
  name: meta.link.inline.markdown
  captures: 
    "6": 
      name: punctuation.definition.metadata.markdown
    "11": 
      name: punctuation.definition.string.begin.markdown
    "7": 
      name: punctuation.definition.link.markdown
    "12": 
      name: punctuation.definition.string.end.markdown
    "8": 
      name: markup.underline.link.markdown
    "13": 
      name: string.other.link.description.title.markdown
    "9": 
      name: punctuation.definition.link.markdown
    "14": 
      name: punctuation.definition.string.begin.markdown
    "15": 
      name: punctuation.definition.string.end.markdown
    "16": 
      name: punctuation.definition.metadata.markdown
    "1": 
      name: punctuation.definition.string.begin.markdown
    "2": 
      name: string.other.link.title.markdown
    "4": 
      name: punctuation.definition.string.end.markdown
    "10": 
      name: string.other.link.description.title.markdown
    "5": 
      name: invalid.illegal.whitespace.markdown
  match: "(?x:\n\
    \t\t\t\t(\\[)((?<square>[^\\[\\]\\\\]|\\\\.|\\[\\g<square>*+\\])*+)(\\])\t\n\
    \t\t\t\t\t\t\t\t\t\t\t# Match the link text.\n\
    \t\t\t\t([ ])?\t\t\t\t\t\t# Space not allowed\n\
    \t\t\t\t(\\()\t\t\t\t\t\t# Opening paren for url\n\
    \t\t\t\t\t(<?)(.*?)(>?)\t\t\t# The url\n\
    \t\t\t\t\t[ \\t]*\t\t\t\t\t# Optional whitespace\n\
    \t\t\t\t\t(?:\n\
    \t\t\t\t\t\t  ((\\().+?(\\)))\t\t# Match title in parens\xE2\x80\xA6\n\
    \t\t\t\t\t\t| ((\").+?(\"))\t\t# or in quotes.\n\
    \t\t\t\t\t)?\t\t\t\t\t\t# Title is optional\n\
    \t\t\t\t\t\\s*\t\t\t\t\t\t# Optional whitespace\n\
    \t\t\t\t(\\))\n\
    \t\t\t )"
inline: 
  patterns: 
  - include: "#escape"
  - include: "#ampersand"
  - include: "#bracket"
  - include: "#raw"
  - include: "#bold"
  - include: "#italic"
  - include: "#line-break"
  - include: "#image-inline"
  - include: "#link-inline"
  - include: "#link-inet"
  - include: "#link-email"
  - include: "#image-ref"
  - include: "#link-ref-literal"
  - include: "#link-ref"
image-ref: 
  name: meta.image.reference.markdown
  captures: 
    "6": 
      name: constant.other.reference.link.markdown
    "7": 
      name: punctuation.definition.constant.markdown
    "1": 
      name: punctuation.definition.string.begin.markdown
    "2": 
      name: string.other.link.description.markdown
    "4": 
      name: punctuation.definition.string.begin.markdown
    "5": 
      name: punctuation.definition.constant.markdown
  match: \!(\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)(.*?)(\])
escape: 
  name: constant.character.escape.markdown
  match: \\[-`*_#+.!(){}\[\]\\>]
block_quote: 
  name: markup.quote.markdown
  comment: "\n\
    \t\t\t\tWe terminate the block quote when seeing an empty line, a\n\
    \t\t\t\tseparator or a line with leading > characters. The latter is\n\
    \t\t\t\tto \xE2\x80\x9Creset\xE2\x80\x9D the quote level for quoted lines.\n\
    \t\t\t"
  begin: \G[ ]{,3}(>)(?!$)[ ]?
  beginCaptures: 
    "1": 
      name: punctuation.definition.blockquote.markdown
  end: |-
    (?x)^
                              (?=     \s*$
                              |       [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
                              |       [ ]{,3}>.
                              )
  patterns: 
  - begin: !binary |
      KD94KVxHCgkJCQkJCSg/PQlbIF17LDN9Pi4KCQkJCQkJKQ==

    end: ^
    patterns: 
    - include: "#block_quote"
  - begin: |-
      (?x)\G
                                                      (?=     ([ ]{4}|\t)
                                                      |       [#]{1,6}\s*+
                                                      |       [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
                                                      )
    applyEndPatternLast: 1
    end: ^
    patterns: 
    - include: "#block_raw"
    - include: "#heading"
    - include: "#separator"
  - begin: |-
      (?x)\G
                                                      (?!     $
                                                      |       [ ]{,3}>.
                                                      |       ([ ]{4}|\t)
                                                      |       [#]{1,6}\s*+
                                                      |       [ ]{,3}(?<marker>[-*_])([ ]{,2}\k<marker>){2,}[ \t]*+$
                                                      )
    end: $|(?<=\n)
    patterns: 
    - include: "#inline"
link-ref: 
  name: meta.link.reference.markdown
  captures: 
    "6": 
      name: constant.other.reference.link.markdown
    "7": 
      name: punctuation.definition.constant.end.markdown
    "1": 
      name: punctuation.definition.string.begin.markdown
    "2": 
      name: string.other.link.title.markdown
    "4": 
      name: punctuation.definition.string.end.markdown
    "5": 
      name: punctuation.definition.constant.begin.markdown
  match: (\[)((?<square>[^\[\]\\]|\\.|\[\g<square>*+\])*+)(\])[ ]?(\[)([^\]]*+)(\])
block_raw: 
  name: markup.raw.block.markdown
  match: \G([ ]{4}|\t).*$\n?
bold: 
  name: markup.bold.markdown
  begin: !binary |
    KD94KQoJCQkJCQkoXCpcKnxfXykoPz1cUykJCQkJCQkJCSMgT3BlbgoJCQkJ
    CQkoPz0KCQkJCQkJCSgKCQkJCQkJCSAgICA8W14+XSorPgkJCQkJCQkjIEhU
    TUwgdGFncwoJCQkJCQkJICB8ICg/PHJhdz5gKykoW15gXXwoPyEoPzwhYClc
    azxyYXc+KD8hYCkpYCkqK1xrPHJhdz4KCQkJCQkJCQkJCQkJCQkJCQkjIFJh
    dwoJCQkJCQkJICB8IFxcW1xcYCpfe31cW1xdKCkjLiErXC0+XT8rCQkJIyBF
    c2NhcGVzCgkJCQkJCQkgIHwgXFsKCQkJCQkJCQkoCQkJCQoJCQkJCQkJCSAg
    ICAgICAgKD88c3F1YXJlPgkJCQkJIyBOYW1lZCBncm91cAoJCQkJCQkJCQkJ
    CVteXFtcXVxcXQkJCQkjIE1hdGNoIG1vc3QgY2hhcnMKCQkJCQkJCQkgICAg
    ICAgICAgfCBcXC4JCQkJCQkjIEVzY2FwZWQgY2hhcnMKCQkJCQkJCQkgICAg
    ICAgICAgfCBcWyBcZzxzcXVhcmU+KisgXF0JCSMgTmVzdGVkIGJyYWNrZXRz
    CgkJCQkJCQkJICAgICAgICApKisKCQkJCQkJCQkJXF0KCQkJCQkJCQkJKAoJ
    CQkJCQkJCQkJKAkJCQkJCQkjIFJlZmVyZW5jZSBMaW5rCgkJCQkJCQkJCQkJ
    WyBdPwkJCQkJIyBPcHRpb25hbCBzcGFjZQoJCQkJCQkJCQkJCVxbW15cXV0q
    K1xdCQkJCSMgUmVmIG5hbWUKCQkJCQkJCQkJCSkKCQkJCQkJCQkJICB8ICgJ
    CQkJCQkJIyBJbmxpbmUgTGluawoJCQkJCQkJCQkJCVwoCQkJCQkJIyBPcGVu
    aW5nIHBhcmVuCgkJCQkJCQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3
    aHRpZXNwYWNlCgkJCQkJCQkJCQkJCTw/KC4qPyk+PwkJCSMgVVJMCgkJCQkJ
    CQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRpZXNwYWNlCgkJCQkJ
    CQkJCQkJCSgJCQkJCSMgT3B0aW9uYWwgVGl0bGUKCQkJCQkJCQkJCQkJCSg/
    PHRpdGxlPlsnIl0pCgkJCQkJCQkJCQkJCQkoLio/KQoJCQkJCQkJCQkJCQkJ
    XGs8dGl0bGU+CgkJCQkJCQkJCQkJCSk/CgkJCQkJCQkJCQkJXCkKCQkJCQkJ
    CQkJCSkKCQkJCQkJCQkJKQoJCQkJCQkJCSkKCQkJCQkJCSAgfCAoPyEoPzw9
    XFMpXDEpLgkJCQkJCSMgRXZlcnl0aGluZyBiZXNpZGVzCgkJCQkJCQkJCQkJ
    CQkJCQkJIyBzdHlsZSBjbG9zZXIKCQkJCQkJCSkrKwoJCQkJCQkJKD88PVxT
    KVwxCQkJCQkJCQkjIENsb3NlCgkJCQkJCSkKCQkJCQk=

  captures: 
    "1": 
      name: punctuation.definition.bold.markdown
  end: (?<=\S)(\1)
  patterns: 
  - begin: (?=<[^>]*?>)
    applyEndPatternLast: 1
    end: (?<=>)
    patterns: 
    - include: text.html.basic
  - include: "#escape"
  - include: "#ampersand"
  - include: "#bracket"
  - include: "#raw"
  - include: "#italic"
  - include: "#image-inline"
  - include: "#link-inline"
  - include: "#link-inet"
  - include: "#link-email"
  - include: "#image-ref"
  - include: "#link-ref-literal"
  - include: "#link-ref"
heading: 
  name: markup.heading.markdown
  begin: \G(#{1,6})(?!#)\s*(?=\S)
  captures: 
    "1": 
      name: punctuation.definition.heading.markdown
  end: \s*(#*)$\n?
  contentName: entity.name.section.markdown
  patterns: 
  - include: "#inline"
separator: 
  name: meta.separator.markdown
  match: \G[ ]{,3}([-*_])([ ]{,2}\1){2,}[ \t]*$\n?
italic: 
  name: markup.italic.markdown
  begin: !binary |
    KD94KQoJCQkJCQkoXCp8XykoPz1cUykJCQkJCQkJCSMgT3BlbgoJCQkJCQko
    Pz0KCQkJCQkJCSgKCQkJCQkJCSAgICA8W14+XSorPgkJCQkJCQkjIEhUTUwg
    dGFncwoJCQkJCQkJICB8ICg/PHJhdz5gKykoW15gXXwoPyEoPzwhYClcazxy
    YXc+KD8hYCkpYCkqK1xrPHJhdz4KCQkJCQkJCQkJCQkJCQkJCQkjIFJhdwoJ
    CQkJCQkJICB8IFxcW1xcYCpfe31cW1xdKCkjLiErXC0+XT8rCQkJIyBFc2Nh
    cGVzCgkJCQkJCQkgIHwgXFsKCQkJCQkJCQkoCQkJCQoJCQkJCQkJCSAgICAg
    ICAgKD88c3F1YXJlPgkJCQkJIyBOYW1lZCBncm91cAoJCQkJCQkJCQkJCVte
    XFtcXVxcXQkJCQkjIE1hdGNoIG1vc3QgY2hhcnMKCQkJCQkJCQkgICAgICAg
    ICAgfCBcXC4JCQkJCQkjIEVzY2FwZWQgY2hhcnMKCQkJCQkJCQkgICAgICAg
    ICAgfCBcWyBcZzxzcXVhcmU+KisgXF0JCSMgTmVzdGVkIGJyYWNrZXRzCgkJ
    CQkJCQkJICAgICAgICApKisKCQkJCQkJCQkJXF0KCQkJCQkJCQkJKAoJCQkJ
    CQkJCQkJKAkJCQkJCQkjIFJlZmVyZW5jZSBMaW5rCgkJCQkJCQkJCQkJWyBd
    PwkJCQkJIyBPcHRpb25hbCBzcGFjZQoJCQkJCQkJCQkJCVxbW15cXV0qK1xd
    CQkJCSMgUmVmIG5hbWUKCQkJCQkJCQkJCSkKCQkJCQkJCQkJICB8ICgJCQkJ
    CQkJIyBJbmxpbmUgTGluawoJCQkJCQkJCQkJCVwoCQkJCQkJIyBPcGVuaW5n
    IHBhcmVuCgkJCQkJCQkJCQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRp
    ZXNwYWNlCgkJCQkJCQkJCQkJCTw/KC4qPyk+PwkJCSMgVVJMCgkJCQkJCQkJ
    CQkJCVsgXHRdKisJCQkJIyBPcHRpb25hbCB3aHRpZXNwYWNlCgkJCQkJCQkJ
    CQkJCSgJCQkJCSMgT3B0aW9uYWwgVGl0bGUKCQkJCQkJCQkJCQkJCSg/PHRp
    dGxlPlsnIl0pCgkJCQkJCQkJCQkJCQkoLio/KQoJCQkJCQkJCQkJCQkJXGs8
    dGl0bGU+CgkJCQkJCQkJCQkJCSk/CgkJCQkJCQkJCQkJXCkKCQkJCQkJCQkJ
    CSkKCQkJCQkJCQkJKQoJCQkJCQkJCSkKCQkJCQkJCSAgfCBcMVwxCQkJCQkJ
    CQkjIE11c3QgYmUgYm9sZCBjbG9zZXIKCQkJCQkJCSAgfCAoPyEoPzw9XFMp
    XDEpLgkJCQkJCSMgRXZlcnl0aGluZyBiZXNpZGVzCgkJCQkJCQkJCQkJCQkJ
    CQkJIyBzdHlsZSBjbG9zZXIKCQkJCQkJCSkrKwoJCQkJCQkJKD88PVxTKVwx
    CQkJCQkJCQkjIENsb3NlCgkJCQkJCSkKCQkJCQk=

  captures: 
    "1": 
      name: punctuation.definition.italic.markdown
  end: (?<=\S)(\1)((?!\1)|(?=\1\1))
  patterns: 
  - begin: (?=<[^>]*?>)
    applyEndPatternLast: 1
    end: (?<=>)
    patterns: 
    - include: text.html.basic
  - include: "#escape"
  - include: "#ampersand"
  - include: "#bracket"
  - include: "#raw"
  - include: "#bold"
  - include: "#image-inline"
  - include: "#link-inline"
  - include: "#link-inet"
  - include: "#link-email"
  - include: "#image-ref"
  - include: "#link-ref-literal"
  - include: "#link-ref"
raw: 
  name: markup.raw.inline.markdown
  captures: 
    "1": 
      name: punctuation.definition.raw.markdown
    "3": 
      name: punctuation.definition.raw.markdown
  match: (`+)([^`]|(?!(?<!`)\1(?!`))`)*+(\1)
link-inet: 
  name: meta.link.inet.markdown
  captures: 
    "1": 
      name: punctuation.definition.link.markdown
    "2": 
      name: markup.underline.link.markdown
    "3": 
      name: punctuation.definition.link.markdown
  match: (<)((?:https?|ftp)://.*?)(>)
line-break: 
  name: meta.dummy.line-break
  match: " {2,}$"
ampersand: 
  name: meta.other.valid-ampersand.markdown
  comment: "\n\
    \t\t\t\tMarkdown will convert this for us. We match it so that the\n\
    \t\t\t\tHTML grammar will not mark it up as invalid.\n\
    \t\t\t"
  match: "&(?!([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+);)"

uuid: 0A1D9874-B448-11D9-BD50-000D93B6E43C patterns:

foldingStartMarker: |-

(?x)
              (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
              |<!--(?!.*-->)
              |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
              )

foldingStopMarker: |-

(?x)
              (</(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)>
              |^\s*-->
              |(^|\s)\}
              )

fileTypes: