]>
luflow.net public git repositories - flow-web.git/blob - static/highlight/es/languages/xml.js
1 /*! `xml` grammar compiled for Highlight.js 11.11.1 */
2 var hljsGrammar
= (function () {
7 Website: https://www.w3.org/XML/
12 /** @type LanguageFn */
14 const regex
= hljs
.regex
;
15 // XML names can have the following additional letters: https://www.w3.org/TR/xml/#NT-NameChar
16 // OTHER_NAME_CHARS = /[:\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]/;
17 // Element names start with NAME_START_CHAR followed by optional other Unicode letters, ASCII digits, hyphens, underscores, and periods
18 // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, regex.optional(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*:/), /[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*/);;
19 // const XML_IDENT_RE = /[A-Z_a-z:\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]+/;
20 // const TAG_NAME_RE = regex.concat(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD]/, regex.optional(/[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*:/), /[A-Z_a-z\u00C0-\u00D6\u00D8-\u00F6\u00F8-\u02FF\u0370-\u037D\u037F-\u1FFF\u200C-\u200D\u2070-\u218F\u2C00-\u2FEF\u3001-\uD7FF\uF900-\uFDCF\uFDF0-\uFFFD\-.0-9\u00B7\u0300-\u036F\u203F-\u2040]*/);
21 // however, to cater for performance and more Unicode support rely simply on the Unicode letter class
22 const TAG_NAME_RE
= regex
.concat(/[\p{L}_]/u, regex
.optional(/[\p{L}0-9_.-]*:/u), /[\p{L}0-9_.-]*/u);
23 const XML_IDENT_RE
= /[\p{L}0-9._:-]+/u;
24 const XML_ENTITIES
= {
26 begin: /&[a-z]+;|&#[0-9]+;|&#x[a-f0-9]+;/
28 const XML_META_KEYWORDS
= {
33 begin: /#?[a-z_][a-z1-9_-]+/,
38 const XML_META_PAR_KEYWORDS
= hljs
.inherit(XML_META_KEYWORDS
, {
42 const APOS_META_STRING_MODE
= hljs
.inherit(hljs
.APOS_STRING_MODE
, { className: 'string' });
43 const QUOTE_META_STRING_MODE
= hljs
.inherit(hljs
.QUOTE_STRING_MODE
, { className: 'string' });
44 const TAG_INTERNALS
= {
65 contains: [ XML_ENTITIES
]
70 contains: [ XML_ENTITIES
]
72 { begin: /[^\s"'=<>`]+/ }
93 case_insensitive: true,
103 QUOTE_META_STRING_MODE
,
104 APOS_META_STRING_MODE
,
105 XML_META_PAR_KEYWORDS
,
116 XML_META_PAR_KEYWORDS
,
117 QUOTE_META_STRING_MODE
,
118 APOS_META_STRING_MODE
131 begin: /<!\[CDATA\[/,
136 // xml processing instructions
145 QUOTE_META_STRING_MODE
149 begin: /<\?[a-z][a-z0-9]+/,
157 The lookahead pattern (?=...) ensures that 'begin' only matches
158 '<style' as a single word, followed by a whitespace or an
161 begin: /<style(?=\s|>)/,
163 keywords: { name: 'style' },
164 contains: [ TAG_INTERNALS
],
176 // See the comment in the <style tag about the lookahead pattern
177 begin: /<script(?=\s|>)/,
179 keywords: { name: 'script' },
180 contains: [ TAG_INTERNALS
],
191 // we need this for now for jSX
201 regex
.lookahead(regex
.concat(
206 regex
.either(/\/>/, />/, /\s
/)
215 starts: TAG_INTERNALS
224 regex
.lookahead(regex
.concat(
249 export default hljsGrammar
;