| 123456789101112131415161718192021222324252627282930313233343536373839404142434445464748 |
- "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 `<pre v-pre><code>${code}</code></pre>`;
- }
- 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
|