name: HTML fileTypes:

firstLineMatch: <!DOCTYPE|<(?i:html) scopeName: text.html.basic repository:

tag-stuff: 
  patterns: 
  - include: "#tag-id-attribute"
  - include: "#tag-generic-attribute"
  - include: "#string-double-quoted"
  - include: "#string-single-quoted"
  - include: "#embedded-code"
string-double-quoted: 
  name: string.quoted.double.html
  endCaptures: 
    "0": 
      name: punctuation.definition.string.end.html
  begin: "\""
  beginCaptures: 
    "0": 
      name: punctuation.definition.string.begin.html
  end: "\""
  patterns: 
  - include: "#embedded-code"
  - include: "#entities"
php: 
  patterns: 
  - name: source.php.embedded.line.empty.html
    captures: 
      "1": 
        name: source.php.embedded.line.empty.whitespace.html
    match: <\?(?i:php|=)?(\s*\?)>
  - name: source.php.embedded.block.html
    begin: (?:^\s*)(?=<\?(?i:php|=)?(?!.*\?>))
    applyEndPatternLast: 1
    end: (?<=\?>)(?:\s*$\n)?
    patterns: 
    - include: source.php
    comment: match only multi-line PHP with leading whitespace
  - name: source.php.embedded.line.html
    begin: (?=<\?(?i:php|=)?)
    applyEndPatternLast: 1
    end: (?<=\?>)
    patterns: 
    - include: source.php
entities: 
  patterns: 
  - name: constant.character.entity.html
    captures: 
      "1": 
        name: punctuation.definition.entity.html
      "3": 
        name: punctuation.definition.entity.html
    match: (&)([a-zA-Z0-9]+|#[0-9]+|#x[0-9a-fA-F]+)(;)
  - name: invalid.illegal.bad-ampersand.html
    match: "&"
string-single-quoted: 
  name: string.quoted.single.html
  endCaptures: 
    "0": 
      name: punctuation.definition.string.end.html
  begin: "'"
  beginCaptures: 
    "0": 
      name: punctuation.definition.string.begin.html
  end: "'"
  patterns: 
  - include: "#embedded-code"
  - include: "#entities"
python: 
  name: source.python.embedded.html
  begin: (?:^\s*)<\?python(?!.*\?>)
  end: \?>(?:\s*$\n)?
  patterns: 
  - include: source.python
tag-id-attribute: 
  name: meta.attribute-with-value.id.html
  captures: 
    "1": 
      name: entity.other.attribute-name.id.html
    "2": 
      name: punctuation.separator.key-value.html
  begin: \b(id)\b\s*(=)
  end: (?<='|")
  patterns: 
  - name: string.quoted.double.html
    endCaptures: 
      "0": 
        name: punctuation.definition.string.end.html
    begin: "\""
    contentName: meta.toc-list.id.html
    beginCaptures: 
      "0": 
        name: punctuation.definition.string.begin.html
    end: "\""
    patterns: 
    - include: "#embedded-code"
    - include: "#entities"
  - name: string.quoted.single.html
    endCaptures: 
      "0": 
        name: punctuation.definition.string.end.html
    begin: "'"
    contentName: meta.toc-list.id.html
    beginCaptures: 
      "0": 
        name: punctuation.definition.string.begin.html
    end: "'"
    patterns: 
    - include: "#embedded-code"
    - include: "#entities"
tag-generic-attribute: 
  name: entity.other.attribute-name.html
  match: \b([a-zA-Z\-:]+)
ruby: 
  patterns: 
  - name: comment.block.erb
    captures: 
      "0": 
        name: punctuation.definition.comment.erb
    begin: <%+#
    end: "%>"
  - name: source.ruby.embedded.html
    captures: 
      "0": 
        name: punctuation.section.embedded.ruby
    begin: <%+(?!>)=?
    end: -?%>
    patterns: 
    - name: comment.line.number-sign.ruby
      captures: 
        "1": 
          name: punctuation.definition.comment.ruby
      match: (#).*?(?=-?%>)
    - include: source.ruby
  - name: source.ruby.nitro.embedded.html
    captures: 
      "0": 
        name: punctuation.section.embedded.ruby.nitro
    begin: <\?r(?!>)=?
    end: -?\?>
    patterns: 
    - name: comment.line.number-sign.ruby.nitro
      captures: 
        "1": 
          name: punctuation.definition.comment.ruby.nitro
      match: (#).*?(?=-?\?>)
    - include: source.ruby
smarty: 
  patterns: 
  - captures: 
      "1": 
        name: source.smarty.embedded.html
      "2": 
        name: support.function.built-in.smarty
    begin: (\{(literal)\})
    end: (\{/(literal)\})
  - name: source.smarty.embedded.html
    begin: "{{|{"
    end: "}}|}"
    disabled: 1
    patterns: 
    - include: source.smarty
embedded-code: 
  patterns: 
  - include: "#ruby"
  - include: "#php"
  - include: "#smarty"
  - include: "#python"

uuid: 17994EC8-6B1D-11D9-AC3A-000D93589AF6 foldingStartMarker: |-

(?x)
              (<(?i:head|body|table|thead|tbody|tfoot|tr|div|select|fieldset|style|script|ul|ol|form|dl)\b.*?>
              |<!--(?!.*--\s*>)
              |^<!--\ \#tminclude\ (?>.*?-->)$
              |<\?(?:php)?.*\b(if|for(each)?|while)\b.+:
              |\{\{?(if|foreach|capture|literal|foreach|php|section|strip)
              |\{\s*($|\?>\s*$|//|/\*(.*\*/\s*$|(?!.*?\*/)))
              )

patterns: