import prism from 'prismjs' import loadLanguages from 'prismjs/components/index' function transformAlias(lang: string) { const map = { python3: 'python' } as { [key: string]: string } return map[lang] || lang } export default function highlight(str: string, lang: string) { if (lang) { const langCode = transformAlias(lang) if (!prism.languages[langCode]) { try { loadLanguages([langCode]) } catch (e) { // eslint-disable-next-line no-console console.error(`lang ${langCode} is not supported by prism`) } } if (prism.languages[langCode]) { const code = prism.highlight(str, prism.languages[langCode], langCode) return `
${code}`
}
}
return `${str}` // use external default escaping
}