prism-code-editor
Version:
Lightweight, extensible code editor component for the web using Prism
34 lines (33 loc) • 1.31 kB
JavaScript
import { a as languages } from "../../core-8vQkh0Rd.js";
import { r as insertBefore, t as clone } from "../../language-D-vtM55V.js";
import "./xml.js";
//#region src/prism/languages/markup.js
var addLang = (grammar, lang) => {
grammar["language-" + lang] = {
pattern: /[^]+/,
inside: lang
};
return grammar;
};
var addInlined = (tagName, lang) => ({
pattern: RegExp(`(<${tagName}[^>]*>)(?!</${tagName}>)(?:<!\\[CDATA\\[(?:[^\\]]|\\](?!\\]>))*\\]\\]>|(?!<!\\[CDATA\\[)[^])+?(?=</${tagName}>)`, "gi"),
lookbehind: true,
inside: addLang({ "included-cdata": {
pattern: /<!\[CDATA\[[^]*?\]\]>/i,
inside: addLang({ "cdata": /^<!\[CDATA\[|\]\]>$/i }, lang)
} }, lang)
});
var addAttribute = (attrName, lang, alias = attrName) => ({
pattern: RegExp(`([\\s"']${attrName}\\s*=\\s*)(?:"[^"]*"|'[^']*'|[^\\s>]+)`, "gi"),
lookbehind: true,
alias,
inside: addLang({ "punctuation": /^["']|["']$/g }, lang)
});
var markup = languages.svg = languages.mathml = languages.html = languages.markup = clone(languages.xml);
markup.tag.inside["attr-value"].unshift(addAttribute("style", "css"), addAttribute("on[a-z]+", "javascript", "script"));
insertBefore(markup, "cdata", {
"style": addInlined("style", "css"),
"script": addInlined("script", "javascript")
});
//#endregion
//# sourceMappingURL=markup.js.map