UNPKG

prism-code-editor

Version:

Lightweight, extensible code editor component for the web using Prism

34 lines (33 loc) 1.31 kB
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