test/node_modules/@vuepress/plugin-prismjs/lib/node/prepareConfigFile.js
2024-08-13 09:27:52 +08:00

38 lines
1.9 KiB
JavaScript

import { getRealPath } from '@vuepress/helper';
import { getTheme } from './getTheme.js';
const { url } = import.meta;
export const prepareConfigFile = (app, { theme, themes, lineNumbers = true, notationDiff, notationErrorLevel, notationFocus, notationHighlight, notationWordHighlight, whitespace, }) => {
const { light, dark } = getTheme({ theme, themes });
const imports = [
`import "${getRealPath('@vuepress/highlighter-helper/styles/base.css', url)}"`,
];
if (light === dark) {
imports.push(`import "${getRealPath(`@vuepress/plugin-prismjs/styles/${light}.css`, url)}"`);
}
else {
imports.push(`import "${getRealPath(`@vuepress/plugin-prismjs/styles/${light}.light.css`, url)}"`, `import "${getRealPath(`@vuepress/plugin-prismjs/styles/${dark}.dark.css`, url)}"`);
}
if (lineNumbers) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/line-numbers.css', url)}"`);
}
if (notationDiff) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/notation-diff.css', url)}"`);
}
if (notationErrorLevel) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/notation-error-level.css', url)}"`);
}
if (notationFocus) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/notation-focus.css', url)}"`);
}
if (notationHighlight) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/notation-highlight.css', url)}"`);
}
if (notationWordHighlight) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/notation-word-highlight.css', url)}"`);
}
if (whitespace) {
imports.push(`import "${getRealPath('@vuepress/highlighter-helper/styles/whitespace.css', url)}"`);
}
return app.writeTemp('prismjs/config.js', imports.join('\n'));
};