"use strict"; Object.defineProperty(exports, "__esModule", { value: true }); exports.highlight = void 0; const chalk = require('chalk'); const prism = require('prismjs'); const loadLanguages = require('prismjs/components/index'); const escapeHtml = require('escape-html'); // required to make embedded highlighting work... loadLanguages(['markup', 'css', 'javascript']); function wrap(code, lang) { if (lang === 'text') { code = escapeHtml(code); } return `
${code}
`; } exports.highlight = (str, lang) => { if (!lang) { return wrap(str, 'text'); } lang = lang.toLowerCase(); const rawLang = lang; if (lang === 'vue' || lang === 'html') { lang = 'markup'; } if (lang === 'md') { lang = 'markdown'; } if (lang === 'ts') { lang = 'typescript'; } if (lang === 'py') { lang = 'python'; } if (!prism.languages[lang]) { try { loadLanguages([lang]); } catch (e) { console.warn(chalk.yellow(`[vuepress] Syntax highlight for language "${lang}" is not supported.`)); } } if (prism.languages[lang]) { const code = prism.highlight(str, prism.languages[lang], lang); return wrap(code, rawLang); } return wrap(str, 'text'); }; //# sourceMappingURL=highlight.js.map