| 1234567891011121314151617181920212223242526272829303132333435363738394041424344454647 |
- 'use strict'
- // Characters.
- var NULL = '\0'
- var AMP = '&'
- var SP = ' '
- var TB = '\t'
- var GR = '`'
- var DQ = '"'
- var SQ = "'"
- var EQ = '='
- var LT = '<'
- var GT = '>'
- var SO = '/'
- var LF = '\n'
- var CR = '\r'
- var FF = '\f'
- var whitespace = [SP, TB, LF, CR, FF]
- // https://html.spec.whatwg.org/#attribute-name-state
- var name = whitespace.concat(AMP, SO, GT, EQ)
- // https://html.spec.whatwg.org/#attribute-value-(unquoted)-state
- var unquoted = whitespace.concat(AMP, GT)
- var unquotedSafe = unquoted.concat(NULL, DQ, SQ, LT, EQ, GR)
- // https://html.spec.whatwg.org/#attribute-value-(single-quoted)-state
- var singleQuoted = [AMP, SQ]
- // https://html.spec.whatwg.org/#attribute-value-(double-quoted)-state
- var doubleQuoted = [AMP, DQ]
- // Maps of subsets. Each value is a matrix of tuples.
- // The first value causes parse errors, the second is valid.
- // Of both values, the first value is unsafe, and the second is safe.
- module.exports = {
- name: [
- [name, name.concat(DQ, SQ, GR)],
- [name.concat(NULL, DQ, SQ, LT), name.concat(NULL, DQ, SQ, LT, GR)]
- ],
- unquoted: [[unquoted, unquotedSafe], [unquotedSafe, unquotedSafe]],
- single: [
- [singleQuoted, singleQuoted.concat(DQ, GR)],
- [singleQuoted.concat(NULL), singleQuoted.concat(NULL, DQ, GR)]
- ],
- double: [
- [doubleQuoted, doubleQuoted.concat(SQ, GR)],
- [doubleQuoted.concat(NULL), doubleQuoted.concat(NULL, SQ, GR)]
- ]
- }
|