vitepress 0.17.2 → 0.19.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (107) hide show
  1. package/CHANGELOG.md +26 -0
  2. package/README.md +2 -6
  3. package/dist/client/app/router.js +2 -0
  4. package/dist/client/index.d.ts +127 -9
  5. package/dist/node/cli.js +289 -34
  6. package/dist/node/index.d.ts +138 -4
  7. package/dist/node/index.js +33 -17
  8. package/dist/node/serve-dbc4b971.js +47774 -0
  9. package/package.json +39 -28
  10. package/types/shared.d.ts +1 -1
  11. package/dist/client/app/components/ClientOnly.d.ts +0 -3
  12. package/dist/client/app/components/Content.d.ts +0 -3
  13. package/dist/client/app/composables/head.d.ts +0 -4
  14. package/dist/client/app/composables/preFetch.d.ts +0 -1
  15. package/dist/client/app/data.d.ts +0 -18
  16. package/dist/client/app/index.d.ts +0 -6
  17. package/dist/client/app/router.d.ts +0 -20
  18. package/dist/client/app/theme.d.ts +0 -13
  19. package/dist/client/app/utils.d.ts +0 -11
  20. package/dist/client/shared.d.ts +0 -12
  21. package/dist/client/theme-default/components/SideBarLink.d.ts +0 -6
  22. package/dist/client/theme-default/composables/activeSidebarLink.d.ts +0 -1
  23. package/dist/client/theme-default/composables/editLink.d.ts +0 -4
  24. package/dist/client/theme-default/composables/nav.d.ts +0 -2
  25. package/dist/client/theme-default/composables/navLink.d.ts +0 -15
  26. package/dist/client/theme-default/composables/nextAndPrevLinks.d.ts +0 -5
  27. package/dist/client/theme-default/composables/repo.d.ts +0 -5
  28. package/dist/client/theme-default/composables/sideBar.d.ts +0 -2
  29. package/dist/client/theme-default/config.d.ts +0 -112
  30. package/dist/client/theme-default/index.d.ts +0 -8
  31. package/dist/client/theme-default/support/sideBar.d.ts +0 -18
  32. package/dist/client/theme-default/utils.d.ts +0 -25
  33. package/dist/node/alias.d.ts +0 -8
  34. package/dist/node/alias.js +0 -50
  35. package/dist/node/alias.js.map +0 -1
  36. package/dist/node/build/build.d.ts +0 -2
  37. package/dist/node/build/build.js +0 -48
  38. package/dist/node/build/build.js.map +0 -1
  39. package/dist/node/build/bundle.d.ts +0 -6
  40. package/dist/node/build/bundle.js +0 -97
  41. package/dist/node/build/bundle.js.map +0 -1
  42. package/dist/node/build/render.d.ts +0 -4
  43. package/dist/node/build/render.js +0 -128
  44. package/dist/node/build/render.js.map +0 -1
  45. package/dist/node/cli.d.ts +0 -1
  46. package/dist/node/cli.js.map +0 -1
  47. package/dist/node/config.d.ts +0 -52
  48. package/dist/node/config.js +0 -119
  49. package/dist/node/config.js.map +0 -1
  50. package/dist/node/index.js.map +0 -1
  51. package/dist/node/markdown/markdown.d.ts +0 -25
  52. package/dist/node/markdown/markdown.js +0 -78
  53. package/dist/node/markdown/markdown.js.map +0 -1
  54. package/dist/node/markdown/plugins/component.d.ts +0 -2
  55. package/dist/node/markdown/plugins/component.js +0 -83
  56. package/dist/node/markdown/plugins/component.js.map +0 -1
  57. package/dist/node/markdown/plugins/containers.d.ts +0 -2
  58. package/dist/node/markdown/plugins/containers.js +0 -34
  59. package/dist/node/markdown/plugins/containers.js.map +0 -1
  60. package/dist/node/markdown/plugins/header.d.ts +0 -2
  61. package/dist/node/markdown/plugins/header.js +0 -25
  62. package/dist/node/markdown/plugins/header.js.map +0 -1
  63. package/dist/node/markdown/plugins/highlight.d.ts +0 -1
  64. package/dist/node/markdown/plugins/highlight.js +0 -49
  65. package/dist/node/markdown/plugins/highlight.js.map +0 -1
  66. package/dist/node/markdown/plugins/highlightLines.d.ts +0 -2
  67. package/dist/node/markdown/plugins/highlightLines.js +0 -46
  68. package/dist/node/markdown/plugins/highlightLines.js.map +0 -1
  69. package/dist/node/markdown/plugins/hoist.d.ts +0 -2
  70. package/dist/node/markdown/plugins/hoist.js +0 -22
  71. package/dist/node/markdown/plugins/hoist.js.map +0 -1
  72. package/dist/node/markdown/plugins/lineNumbers.d.ts +0 -2
  73. package/dist/node/markdown/plugins/lineNumbers.js +0 -23
  74. package/dist/node/markdown/plugins/lineNumbers.js.map +0 -1
  75. package/dist/node/markdown/plugins/link.d.ts +0 -2
  76. package/dist/node/markdown/plugins/link.js +0 -66
  77. package/dist/node/markdown/plugins/link.js.map +0 -1
  78. package/dist/node/markdown/plugins/preWrapper.d.ts +0 -2
  79. package/dist/node/markdown/plugins/preWrapper.js +0 -22
  80. package/dist/node/markdown/plugins/preWrapper.js.map +0 -1
  81. package/dist/node/markdown/plugins/slugify.d.ts +0 -1
  82. package/dist/node/markdown/plugins/slugify.js +0 -26
  83. package/dist/node/markdown/plugins/slugify.js.map +0 -1
  84. package/dist/node/markdown/plugins/snippet.d.ts +0 -2
  85. package/dist/node/markdown/plugins/snippet.js +0 -146
  86. package/dist/node/markdown/plugins/snippet.js.map +0 -1
  87. package/dist/node/markdownToVue.d.ts +0 -9
  88. package/dist/node/markdownToVue.js +0 -145
  89. package/dist/node/markdownToVue.js.map +0 -1
  90. package/dist/node/plugin.d.ts +0 -3
  91. package/dist/node/plugin.js +0 -199
  92. package/dist/node/plugin.js.map +0 -1
  93. package/dist/node/serve/serve.d.ts +0 -5
  94. package/dist/node/serve/serve.js +0 -36
  95. package/dist/node/serve/serve.js.map +0 -1
  96. package/dist/node/server.d.ts +0 -2
  97. package/dist/node/server.js +0 -18
  98. package/dist/node/server.js.map +0 -1
  99. package/dist/node/shared.d.ts +0 -12
  100. package/dist/node/shared.js +0 -70
  101. package/dist/node/shared.js.map +0 -1
  102. package/dist/node/utils/parseHeader.d.ts +0 -3
  103. package/dist/node/utils/parseHeader.js +0 -53
  104. package/dist/node/utils/parseHeader.js.map +0 -1
  105. package/dist/node/utils/slash.d.ts +0 -1
  106. package/dist/node/utils/slash.js +0 -8
  107. package/dist/node/utils/slash.js.map +0 -1
@@ -1,97 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.bundle = exports.failMark = exports.okMark = void 0;
7
- const ora_1 = __importDefault(require("ora"));
8
- const path_1 = __importDefault(require("path"));
9
- const slash_1 = require("../utils/slash");
10
- const alias_1 = require("../alias");
11
- const vite_1 = require("vite");
12
- const plugin_1 = require("../plugin");
13
- exports.okMark = '\x1b[32m✓\x1b[0m';
14
- exports.failMark = '\x1b[31m✖\x1b[0m';
15
- // bundles the VitePress app for both client AND server.
16
- async function bundle(config, options) {
17
- const { root, srcDir } = config;
18
- const pageToHashMap = Object.create(null);
19
- // define custom rollup input
20
- // this is a multi-entry build - every page is considered an entry chunk
21
- // the loading is done via filename conversion rules so that the
22
- // metadata doesn't need to be included in the main chunk.
23
- const input = {
24
- app: path_1.default.resolve(alias_1.APP_PATH, 'index.js')
25
- };
26
- config.pages.forEach((file) => {
27
- // page filename conversion
28
- // foo/bar.md -> foo_bar.md
29
- input[slash_1.slash(file).replace(/\//g, '_')] = path_1.default.resolve(srcDir, file);
30
- });
31
- // resolve options to pass to vite
32
- const { rollupOptions } = options;
33
- const resolveViteConfig = (ssr) => ({
34
- root: srcDir,
35
- base: config.site.base,
36
- logLevel: 'warn',
37
- plugins: plugin_1.createVitePressPlugin(root, config, ssr, pageToHashMap),
38
- // @ts-ignore
39
- ssr: {
40
- noExternal: ['vitepress']
41
- },
42
- build: {
43
- ...options,
44
- emptyOutDir: true,
45
- ssr,
46
- outDir: ssr ? config.tempDir : config.outDir,
47
- cssCodeSplit: false,
48
- rollupOptions: {
49
- ...rollupOptions,
50
- input,
51
- // important so that each page chunk and the index export things for each
52
- // other
53
- preserveEntrySignatures: 'allow-extension',
54
- output: {
55
- ...rollupOptions === null || rollupOptions === void 0 ? void 0 : rollupOptions.output,
56
- ...(ssr
57
- ? {}
58
- : {
59
- chunkFileNames(chunk) {
60
- if (!chunk.isEntry && /runtime/.test(chunk.name)) {
61
- return `assets/framework.[hash].js`;
62
- }
63
- return adComponentRE.test(chunk.name)
64
- ? `assets/ui-custom.[hash].js`
65
- : `assets/[name].[hash].js`;
66
- }
67
- })
68
- }
69
- },
70
- minify: ssr ? false : !process.env.DEBUG
71
- }
72
- });
73
- let clientResult;
74
- let serverResult;
75
- const spinner = ora_1.default();
76
- spinner.start('building client + server bundles...');
77
- try {
78
- ;
79
- [clientResult, serverResult] = await Promise.all([
80
- vite_1.build(resolveViteConfig(false)),
81
- vite_1.build(resolveViteConfig(true))
82
- ]);
83
- }
84
- catch (e) {
85
- spinner.stopAndPersist({
86
- symbol: exports.failMark
87
- });
88
- throw e;
89
- }
90
- spinner.stopAndPersist({
91
- symbol: exports.okMark
92
- });
93
- return [clientResult, serverResult, pageToHashMap];
94
- }
95
- exports.bundle = bundle;
96
- const adComponentRE = /(?:Carbon|BuySell)Ads/;
97
- //# sourceMappingURL=bundle.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"bundle.js","sourceRoot":"","sources":["../../../src/node/build/bundle.ts"],"names":[],"mappings":"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"}
@@ -1,4 +0,0 @@
1
- import { SiteConfig } from '../config';
2
- import { RollupOutput, OutputChunk, OutputAsset } from 'rollup';
3
- export declare function renderPage(config: SiteConfig, page: string, // foo.md
4
- result: RollupOutput, appChunk: OutputChunk, cssChunk: OutputAsset, pageToHashMap: Record<string, string>, hashMapString: string): Promise<void>;
@@ -1,128 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.renderPage = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const config_1 = require("../config");
10
- const vite_1 = require("vite");
11
- const escape = require('escape-html');
12
- async function renderPage(config, page, // foo.md
13
- result, appChunk, cssChunk, pageToHashMap, hashMapString) {
14
- const { createApp } = require(path_1.default.join(config.tempDir, `app.js`));
15
- const { app, router } = createApp();
16
- const routePath = `/${page.replace(/\.md$/, '')}`;
17
- const siteData = config_1.resolveSiteDataByRoute(config.site, routePath);
18
- router.go(routePath);
19
- // lazy require server-renderer for production build
20
- const content = await require('@vue/server-renderer').renderToString(app);
21
- const pageName = page.replace(/\//g, '_');
22
- // server build doesn't need hash
23
- const pageServerJsFileName = pageName + '.js';
24
- // for any initial page load, we only need the lean version of the page js
25
- // since the static content is already on the page!
26
- const pageHash = pageToHashMap[pageName.toLowerCase()];
27
- const pageClientJsFileName = `assets/${pageName}.${pageHash}.lean.js`;
28
- // resolve page data so we can render head tags
29
- const { __pageData } = require(path_1.default.join(config.tempDir, pageServerJsFileName));
30
- const pageData = JSON.parse(__pageData);
31
- const preloadLinks = [
32
- // resolve imports for index.js + page.md.js and inject script tags for
33
- // them as well so we fetch everything as early as possible without having
34
- // to wait for entry chunks to parse
35
- ...resolvePageImports(config, page, result, appChunk),
36
- pageClientJsFileName,
37
- appChunk.fileName
38
- ]
39
- .map((file) => {
40
- return `<link rel="modulepreload" href="${siteData.base}${file}">`;
41
- })
42
- .join('\n ');
43
- const stylesheetLink = cssChunk
44
- ? `<link rel="stylesheet" href="${siteData.base}${cssChunk.fileName}">`
45
- : '';
46
- const title = pageData.title && pageData.title !== 'Home'
47
- ? `${pageData.title} | ${siteData.title}`
48
- : siteData.title;
49
- const head = addSocialTags(title, ...siteData.head, ...filterOutHeadDescription(pageData.frontmatter.head));
50
- const html = `
51
- <!DOCTYPE html>
52
- <html lang="${siteData.lang}">
53
- <head>
54
- <meta charset="utf-8">
55
- <meta name="viewport" content="width=device-width,initial-scale=1">
56
- <title>${title}</title>
57
- <meta name="description" content="${pageData.description || siteData.description}">
58
- ${stylesheetLink}
59
- ${preloadLinks}
60
- ${renderHead(head)}
61
- </head>
62
- <body>
63
- <div id="app">${content}</div>
64
- <script>__VP_HASH_MAP__ = JSON.parse(${hashMapString})</script>
65
- <script type="module" async src="${siteData.base}${appChunk.fileName}"></script>
66
- </body>
67
- </html>`.trim();
68
- const htmlFileName = path_1.default.join(config.outDir, page.replace(/\.md$/, '.html'));
69
- await fs_extra_1.default.ensureDir(path_1.default.dirname(htmlFileName));
70
- await fs_extra_1.default.writeFile(htmlFileName, html);
71
- }
72
- exports.renderPage = renderPage;
73
- function resolvePageImports(config, page, result, indexChunk) {
74
- // find the page's js chunk and inject script tags for its imports so that
75
- // they are start fetching as early as possible
76
- const srcPath = vite_1.normalizePath(fs_extra_1.default.realpathSync(path_1.default.resolve(config.srcDir, page)));
77
- const pageChunk = result.output.find((chunk) => chunk.type === 'chunk' && chunk.facadeModuleId === srcPath);
78
- return Array.from(new Set([
79
- ...indexChunk.imports,
80
- ...indexChunk.dynamicImports,
81
- ...pageChunk.imports,
82
- ...pageChunk.dynamicImports
83
- ]));
84
- }
85
- function renderHead(head) {
86
- return head
87
- .map(([tag, attrs = {}, innerHTML = '']) => {
88
- const openTag = `<${tag}${renderAttrs(attrs)}>`;
89
- if (tag !== 'link' && tag !== 'meta') {
90
- return `${openTag}${innerHTML}</${tag}>`;
91
- }
92
- else {
93
- return openTag;
94
- }
95
- })
96
- .join('\n ');
97
- }
98
- function renderAttrs(attrs) {
99
- return Object.keys(attrs)
100
- .map((key) => {
101
- return ` ${key}="${escape(attrs[key])}"`;
102
- })
103
- .join('');
104
- }
105
- function isMetaDescription(headConfig) {
106
- const [type, attrs] = headConfig;
107
- return type === 'meta' && (attrs === null || attrs === void 0 ? void 0 : attrs.name) === 'description';
108
- }
109
- function filterOutHeadDescription(head) {
110
- return head ? head.filter((h) => !isMetaDescription(h)) : [];
111
- }
112
- function hasTag(head, tag) {
113
- const [tagType, tagAttrs] = tag;
114
- const [attr, value] = Object.entries(tagAttrs)[0]; // First key
115
- return head.some(([type, attrs]) => type === tagType && attrs[attr] === value);
116
- }
117
- function addSocialTags(title, ...head) {
118
- const tags = [
119
- ['meta', { name: 'twitter:title', content: title }],
120
- ['meta', { property: 'og:title', content: title }]
121
- ];
122
- tags.filter((tagAttrs) => {
123
- if (!hasTag(head, tagAttrs))
124
- head.push(tagAttrs);
125
- });
126
- return head;
127
- }
128
- //# sourceMappingURL=render.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"render.js","sourceRoot":"","sources":["../../../src/node/build/render.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- export {};
@@ -1 +0,0 @@
1
- {"version":3,"file":"cli.js","sourceRoot":"","sources":["../../src/node/cli.ts"],"names":[],"mappings":";;;;;AAAA,kDAAyB;AACzB,wDAA+B;AAC/B,wBAA8C;AAE9C,MAAM,IAAI,GAAQ,kBAAQ,CAAC,OAAO,CAAC,IAAI,CAAC,KAAK,CAAC,CAAC,CAAC,CAAC,CAAA;AAEjD,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,cAAc,OAAO,CAAC,oBAAoB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAC9E,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,IAAI,CAAC,SAAS,OAAO,CAAC,mBAAmB,CAAC,CAAC,OAAO,EAAE,CAAC,CAAC,CAAA;AAExE,MAAM,OAAO,GAAG,IAAI,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACzB,MAAM,IAAI,GAAG,IAAI,CAAC,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAC,CAAA;AACpC,IAAI,IAAI,EAAE;IACR,IAAI,CAAC,IAAI,GAAG,IAAI,CAAA;CACjB;AAED,IAAI,CAAC,OAAO,IAAI,OAAO,KAAK,KAAK,EAAE;IACjC,eAAY,CAAC,IAAI,EAAE,IAAI,CAAC;SACrB,IAAI,CAAC,CAAC,MAAM,EAAE,EAAE,CAAC,MAAM,CAAC,MAAM,EAAE,CAAC;SACjC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACb,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACL;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE;IAC9B,QAAK,CAAC,IAAI,EAAE,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QAC9B,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,gBAAgB,CAAC,EAAE,GAAG,CAAC,CAAA;QAC/C,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACH;KAAM,IAAI,OAAO,KAAK,OAAO,EAAE;IAC9B,QAAK,CAAC,IAAI,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACxB,OAAO,CAAC,KAAK,CAAC,eAAK,CAAC,GAAG,CAAC,kCAAkC,CAAC,EAAE,GAAG,CAAC,CAAA;QACjE,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;IACjB,CAAC,CAAC,CAAA;CACH;KAAM;IACL,OAAO,CAAC,GAAG,CAAC,eAAK,CAAC,GAAG,CAAC,oBAAoB,OAAO,IAAI,CAAC,CAAC,CAAA;IACvD,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAA;CAChB"}
@@ -1,52 +0,0 @@
1
- import { AliasOptions, UserConfig as ViteConfig } from 'vite';
2
- import { Options as VuePluginOptions } from '@vitejs/plugin-vue';
3
- import { SiteData, HeadConfig, LocaleConfig } from './shared';
4
- import { MarkdownOptions } from './markdown/markdown';
5
- export { resolveSiteDataByRoute } from './shared';
6
- export interface UserConfig<ThemeConfig = any> {
7
- lang?: string;
8
- base?: string;
9
- title?: string;
10
- description?: string;
11
- head?: HeadConfig[];
12
- themeConfig?: ThemeConfig;
13
- locales?: Record<string, LocaleConfig>;
14
- markdown?: MarkdownOptions;
15
- /**
16
- * Opitons to pass on to @vitejs/plugin-vue
17
- */
18
- vue?: VuePluginOptions;
19
- /**
20
- * Vite config
21
- */
22
- vite?: ViteConfig;
23
- srcDir?: string;
24
- srcExclude?: string[];
25
- /**
26
- * @deprecated use `srcExclude` instead
27
- */
28
- exclude?: string[];
29
- /**
30
- * @deprecated use `vue` instead
31
- */
32
- vueOptions?: VuePluginOptions;
33
- extends?: RawConfigExports;
34
- }
35
- declare type RawConfigExports = UserConfig | Promise<UserConfig> | (() => UserConfig | Promise<UserConfig>);
36
- export interface SiteConfig<ThemeConfig = any> {
37
- root: string;
38
- srcDir: string;
39
- site: SiteData<ThemeConfig>;
40
- configPath: string;
41
- themeDir: string;
42
- outDir: string;
43
- tempDir: string;
44
- alias: AliasOptions;
45
- pages: string[];
46
- markdown: MarkdownOptions | undefined;
47
- vue: VuePluginOptions | undefined;
48
- vite: ViteConfig | undefined;
49
- }
50
- export declare function resolveConfig(root?: string): Promise<SiteConfig>;
51
- export declare function resolveUserConfig(root: string): Promise<UserConfig>;
52
- export declare function resolveSiteData(root: string, userConfig?: UserConfig): Promise<SiteData>;
@@ -1,119 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.resolveSiteData = exports.resolveUserConfig = exports.resolveConfig = exports.resolveSiteDataByRoute = void 0;
7
- const path_1 = __importDefault(require("path"));
8
- const fs_extra_1 = __importDefault(require("fs-extra"));
9
- const chalk_1 = __importDefault(require("chalk"));
10
- const globby_1 = __importDefault(require("globby"));
11
- const vite_1 = require("vite");
12
- const shared_1 = require("./shared");
13
- const alias_1 = require("./alias");
14
- var shared_2 = require("./shared");
15
- Object.defineProperty(exports, "resolveSiteDataByRoute", { enumerable: true, get: function () { return shared_2.resolveSiteDataByRoute; } });
16
- const debug = require('debug')('vitepress:config');
17
- const resolve = (root, file) => path_1.default.resolve(root, `.vitepress`, file);
18
- async function resolveConfig(root = process.cwd()) {
19
- const userConfig = await resolveUserConfig(root);
20
- if (userConfig.vueOptions) {
21
- console.warn(chalk_1.default.yellow(`[vitepress] "vueOptions" option has been renamed to "vue".`));
22
- }
23
- if (userConfig.exclude) {
24
- console.warn(chalk_1.default.yellow(`[vitepress] "exclude" option has been renamed to "ssrExclude".`));
25
- }
26
- const site = await resolveSiteData(root, userConfig);
27
- const srcDir = path_1.default.resolve(root, userConfig.srcDir || '.');
28
- // resolve theme path
29
- const userThemeDir = resolve(root, 'theme');
30
- const themeDir = (await fs_extra_1.default.pathExists(userThemeDir))
31
- ? userThemeDir
32
- : alias_1.DEFAULT_THEME_PATH;
33
- const config = {
34
- root,
35
- srcDir,
36
- site,
37
- themeDir,
38
- pages: await globby_1.default(['**.md'], {
39
- cwd: srcDir,
40
- ignore: ['**/node_modules', ...(userConfig.srcExclude || [])]
41
- }),
42
- configPath: resolve(root, 'config.js'),
43
- outDir: resolve(root, 'dist'),
44
- tempDir: path_1.default.resolve(alias_1.APP_PATH, 'temp'),
45
- markdown: userConfig.markdown,
46
- alias: alias_1.resolveAliases(themeDir),
47
- vue: userConfig.vue,
48
- vite: userConfig.vite
49
- };
50
- return config;
51
- }
52
- exports.resolveConfig = resolveConfig;
53
- async function resolveUserConfig(root) {
54
- // load user config
55
- const configPath = resolve(root, 'config.js');
56
- const hasUserConfig = await fs_extra_1.default.pathExists(configPath);
57
- // always delete cache first before loading config
58
- delete require.cache[configPath];
59
- const userConfig = hasUserConfig ? require(configPath) : {};
60
- if (hasUserConfig) {
61
- debug(`loaded config at ${chalk_1.default.yellow(configPath)}`);
62
- }
63
- else {
64
- debug(`no config file found.`);
65
- }
66
- return resolveConfigExtends(userConfig);
67
- }
68
- exports.resolveUserConfig = resolveUserConfig;
69
- async function resolveConfigExtends(config) {
70
- const resolved = await (typeof config === 'function' ? config() : config);
71
- if (resolved.extends) {
72
- const base = await resolveConfigExtends(resolved.extends);
73
- return mergeConfig(base, resolved);
74
- }
75
- return resolved;
76
- }
77
- function mergeConfig(a, b, isRoot = true) {
78
- const merged = { ...a };
79
- for (const key in b) {
80
- const value = b[key];
81
- if (value == null) {
82
- continue;
83
- }
84
- const existing = merged[key];
85
- if (Array.isArray(existing) && Array.isArray(value)) {
86
- merged[key] = [...existing, ...value];
87
- continue;
88
- }
89
- if (isObject(existing) && isObject(value)) {
90
- if (isRoot && key === 'vite') {
91
- merged[key] = vite_1.mergeConfig(existing, value);
92
- }
93
- else {
94
- merged[key] = mergeConfig(existing, value, false);
95
- }
96
- continue;
97
- }
98
- merged[key] = value;
99
- }
100
- return merged;
101
- }
102
- function isObject(value) {
103
- return Object.prototype.toString.call(value) === '[object Object]';
104
- }
105
- async function resolveSiteData(root, userConfig) {
106
- userConfig = userConfig || (await resolveUserConfig(root));
107
- return {
108
- lang: userConfig.lang || 'en-US',
109
- title: userConfig.title || 'VitePress',
110
- description: userConfig.description || 'A VitePress site',
111
- base: userConfig.base ? userConfig.base.replace(/([^/])$/, '$1/') : '/',
112
- head: userConfig.head || [],
113
- themeConfig: userConfig.themeConfig || {},
114
- locales: userConfig.locales || {},
115
- langs: shared_1.createLangDictionary(userConfig)
116
- };
117
- }
118
- exports.resolveSiteData = resolveSiteData;
119
- //# sourceMappingURL=config.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"config.js","sourceRoot":"","sources":["../../src/node/config.ts"],"names":[],"mappings":"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"}
@@ -1 +0,0 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/node/index.ts"],"names":[],"mappings":";;;;;;;;;;;;AAAA,2CAAwB;AACxB,gDAA6B;AAC7B,gDAA6B;AAC7B,2CAAwB"}
@@ -1,25 +0,0 @@
1
- import MarkdownIt from 'markdown-it';
2
- import { Header } from '../shared';
3
- import { AnchorOptions } from 'markdown-it-anchor';
4
- export interface MarkdownOptions extends MarkdownIt.Options {
5
- lineNumbers?: boolean;
6
- config?: (md: MarkdownIt) => void;
7
- anchor?: {
8
- permalink?: AnchorOptions['permalink'];
9
- };
10
- toc?: any;
11
- externalLinks?: Record<string, string>;
12
- }
13
- export interface MarkdownParsedData {
14
- hoistedTags?: string[];
15
- links?: string[];
16
- headers?: Header[];
17
- }
18
- export interface MarkdownRenderer {
19
- __data: MarkdownParsedData;
20
- render: (src: string, env?: any) => {
21
- html: string;
22
- data: any;
23
- };
24
- }
25
- export declare const createMarkdownRenderer: (srcDir: string, options?: MarkdownOptions) => MarkdownRenderer;
@@ -1,78 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- exports.createMarkdownRenderer = void 0;
7
- const markdown_it_1 = __importDefault(require("markdown-it"));
8
- const parseHeader_1 = require("../utils/parseHeader");
9
- const highlight_1 = require("./plugins/highlight");
10
- const slugify_1 = require("./plugins/slugify");
11
- const highlightLines_1 = require("./plugins/highlightLines");
12
- const lineNumbers_1 = require("./plugins/lineNumbers");
13
- const component_1 = require("./plugins/component");
14
- const containers_1 = require("./plugins/containers");
15
- const snippet_1 = require("./plugins/snippet");
16
- const hoist_1 = require("./plugins/hoist");
17
- const preWrapper_1 = require("./plugins/preWrapper");
18
- const link_1 = require("./plugins/link");
19
- const header_1 = require("./plugins/header");
20
- const markdown_it_anchor_1 = __importDefault(require("markdown-it-anchor"));
21
- const emoji = require('markdown-it-emoji');
22
- const toc = require('markdown-it-table-of-contents');
23
- const createMarkdownRenderer = (srcDir, options = {}) => {
24
- const md = markdown_it_1.default({
25
- html: true,
26
- linkify: true,
27
- highlight: highlight_1.highlight,
28
- ...options
29
- });
30
- // custom plugins
31
- md.use(component_1.componentPlugin)
32
- .use(highlightLines_1.highlightLinePlugin)
33
- .use(preWrapper_1.preWrapperPlugin)
34
- .use(snippet_1.snippetPlugin, srcDir)
35
- .use(hoist_1.hoistPlugin)
36
- .use(containers_1.containerPlugin)
37
- .use(header_1.extractHeaderPlugin)
38
- .use(link_1.linkPlugin, {
39
- target: '_blank',
40
- rel: 'noopener noreferrer',
41
- ...options.externalLinks
42
- })
43
- // 3rd party plugins
44
- .use(markdown_it_anchor_1.default, {
45
- slugify: slugify_1.slugify,
46
- permalink: markdown_it_anchor_1.default.permalink.ariaHidden({}),
47
- ...options.anchor
48
- })
49
- .use(toc, {
50
- slugify: slugify_1.slugify,
51
- includeLevel: [2, 3],
52
- format: parseHeader_1.parseHeader,
53
- ...options.toc
54
- })
55
- .use(emoji);
56
- // apply user config
57
- if (options.config) {
58
- options.config(md);
59
- }
60
- if (options.lineNumbers) {
61
- md.use(lineNumbers_1.lineNumberPlugin);
62
- }
63
- // wrap render so that we can return both the html and extracted data.
64
- const render = md.render;
65
- const wrappedRender = (src) => {
66
- ;
67
- md.__data = {};
68
- const html = render.call(md, src);
69
- return {
70
- html,
71
- data: md.__data
72
- };
73
- };
74
- md.render = wrappedRender;
75
- return md;
76
- };
77
- exports.createMarkdownRenderer = createMarkdownRenderer;
78
- //# sourceMappingURL=markdown.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../../src/node/markdown/markdown.ts"],"names":[],"mappings":";;;;;;AAAA,8DAAoC;AACpC,sDAAkD;AAClD,mDAA+C;AAC/C,+CAA2C;AAC3C,6DAA8D;AAC9D,uDAAwD;AACxD,mDAAqD;AACrD,qDAAsD;AACtD,+CAAiD;AACjD,2CAA6C;AAC7C,qDAAuD;AACvD,yCAA2C;AAC3C,6CAAsD;AAEtD,4EAA0D;AAE1D,MAAM,KAAK,GAAG,OAAO,CAAC,mBAAmB,CAAC,CAAA;AAC1C,MAAM,GAAG,GAAG,OAAO,CAAC,+BAA+B,CAAC,CAAA;AAwB7C,MAAM,sBAAsB,GAAG,CACpC,MAAc,EACd,UAA2B,EAAE,EACX,EAAE;IACpB,MAAM,EAAE,GAAG,qBAAU,CAAC;QACpB,IAAI,EAAE,IAAI;QACV,OAAO,EAAE,IAAI;QACb,SAAS,EAAT,qBAAS;QACT,GAAG,OAAO;KACX,CAAC,CAAA;IAEF,iBAAiB;IACjB,EAAE,CAAC,GAAG,CAAC,2BAAe,CAAC;SACpB,GAAG,CAAC,oCAAmB,CAAC;SACxB,GAAG,CAAC,6BAAgB,CAAC;SACrB,GAAG,CAAC,uBAAa,EAAE,MAAM,CAAC;SAC1B,GAAG,CAAC,mBAAW,CAAC;SAChB,GAAG,CAAC,4BAAe,CAAC;SACpB,GAAG,CAAC,4BAAmB,CAAC;SACxB,GAAG,CAAC,iBAAU,EAAE;QACf,MAAM,EAAE,QAAQ;QAChB,GAAG,EAAE,qBAAqB;QAC1B,GAAG,OAAO,CAAC,aAAa;KACzB,CAAC;QAEF,oBAAoB;SACnB,GAAG,CAAC,4BAAM,EAAE;QACX,OAAO,EAAP,iBAAO;QACP,SAAS,EAAE,4BAAM,CAAC,SAAS,CAAC,UAAU,CAAC,EAAE,CAAC;QAC1C,GAAG,OAAO,CAAC,MAAM;KAClB,CAAC;SACD,GAAG,CAAC,GAAG,EAAE;QACR,OAAO,EAAP,iBAAO;QACP,YAAY,EAAE,CAAC,CAAC,EAAE,CAAC,CAAC;QACpB,MAAM,EAAE,yBAAW;QACnB,GAAG,OAAO,CAAC,GAAG;KACf,CAAC;SACD,GAAG,CAAC,KAAK,CAAC,CAAA;IAEb,oBAAoB;IACpB,IAAI,OAAO,CAAC,MAAM,EAAE;QAClB,OAAO,CAAC,MAAM,CAAC,EAAE,CAAC,CAAA;KACnB;IAED,IAAI,OAAO,CAAC,WAAW,EAAE;QACvB,EAAE,CAAC,GAAG,CAAC,8BAAgB,CAAC,CAAA;KACzB;IAED,sEAAsE;IACtE,MAAM,MAAM,GAAG,EAAE,CAAC,MAAM,CAAA;IACxB,MAAM,aAAa,GAA+B,CAAC,GAAG,EAAE,EAAE;QACxD,CAAC;QAAC,EAAU,CAAC,MAAM,GAAG,EAAE,CAAA;QACxB,MAAM,IAAI,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,GAAG,CAAC,CAAA;QACjC,OAAO;YACL,IAAI;YACJ,IAAI,EAAG,EAAU,CAAC,MAAM;SACzB,CAAA;IACH,CAAC,CACA;IAAC,EAAU,CAAC,MAAM,GAAG,aAAa,CAAA;IAEnC,OAAO,EAAS,CAAA;AAClB,CAAC,CAAA;AA7DY,QAAA,sBAAsB,0BA6DlC"}
@@ -1,2 +0,0 @@
1
- import MarkdownIt from 'markdown-it';
2
- export declare const componentPlugin: (md: MarkdownIt) => void;
@@ -1,83 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.componentPlugin = void 0;
4
- // Replacing the default htmlBlock rule to allow using custom components at
5
- // root level
6
- const blockNames = require('markdown-it/lib/common/html_blocks');
7
- const HTML_OPEN_CLOSE_TAG_RE = require('markdown-it/lib/common/html_re').HTML_OPEN_CLOSE_TAG_RE;
8
- // An array of opening and corresponding closing sequences for html tags,
9
- // last argument defines whether it can terminate a paragraph or not
10
- const HTML_SEQUENCES = [
11
- [/^<(script|pre|style)(?=(\s|>|$))/i, /<\/(script|pre|style)>/i, true],
12
- [/^<!--/, /-->/, true],
13
- [/^<\?/, /\?>/, true],
14
- [/^<![A-Z]/, />/, true],
15
- [/^<!\[CDATA\[/, /\]\]>/, true],
16
- // PascalCase Components
17
- [/^<[A-Z]/, />/, true],
18
- // custom elements with hyphens
19
- [/^<\w+\-/, />/, true],
20
- [
21
- new RegExp('^</?(' + blockNames.join('|') + ')(?=(\\s|/?>|$))', 'i'),
22
- /^$/,
23
- true
24
- ],
25
- [new RegExp(HTML_OPEN_CLOSE_TAG_RE.source + '\\s*$'), /^$/, false]
26
- ];
27
- const componentPlugin = (md) => {
28
- md.block.ruler.at('html_block', htmlBlock);
29
- };
30
- exports.componentPlugin = componentPlugin;
31
- const htmlBlock = (state, startLine, endLine, silent) => {
32
- let i, nextLine, lineText;
33
- let pos = state.bMarks[startLine] + state.tShift[startLine];
34
- let max = state.eMarks[startLine];
35
- // if it's indented more than 3 spaces, it should be a code block
36
- if (state.sCount[startLine] - state.blkIndent >= 4) {
37
- return false;
38
- }
39
- if (!state.md.options.html) {
40
- return false;
41
- }
42
- if (state.src.charCodeAt(pos) !== 0x3c /* < */) {
43
- return false;
44
- }
45
- lineText = state.src.slice(pos, max);
46
- for (i = 0; i < HTML_SEQUENCES.length; i++) {
47
- if (HTML_SEQUENCES[i][0].test(lineText)) {
48
- break;
49
- }
50
- }
51
- if (i === HTML_SEQUENCES.length) {
52
- return false;
53
- }
54
- if (silent) {
55
- // true if this sequence can be a terminator, false otherwise
56
- return HTML_SEQUENCES[i][2];
57
- }
58
- nextLine = startLine + 1;
59
- // If we are here - we detected HTML block.
60
- // Let's roll down till block end.
61
- if (!HTML_SEQUENCES[i][1].test(lineText)) {
62
- for (; nextLine < endLine; nextLine++) {
63
- if (state.sCount[nextLine] < state.blkIndent) {
64
- break;
65
- }
66
- pos = state.bMarks[nextLine] + state.tShift[nextLine];
67
- max = state.eMarks[nextLine];
68
- lineText = state.src.slice(pos, max);
69
- if (HTML_SEQUENCES[i][1].test(lineText)) {
70
- if (lineText.length !== 0) {
71
- nextLine++;
72
- }
73
- break;
74
- }
75
- }
76
- }
77
- state.line = nextLine;
78
- const token = state.push('html_block', '', 0);
79
- token.map = [startLine, nextLine];
80
- token.content = state.getLines(startLine, nextLine, state.blkIndent, true);
81
- return true;
82
- };
83
- //# sourceMappingURL=component.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"component.js","sourceRoot":"","sources":["../../../../src/node/markdown/plugins/component.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- import MarkdownIt from 'markdown-it';
2
- export declare const containerPlugin: (md: MarkdownIt) => void;