@vuepress/core 2.0.0-beta.4 → 2.0.0-beta.42
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.
- package/lib/app/appInit.js +6 -16
- package/lib/app/appPrepare.js +12 -15
- package/lib/app/appUse.d.ts +2 -2
- package/lib/app/appUse.js +17 -15
- package/lib/app/createBaseApp.d.ts +5 -0
- package/lib/app/createBaseApp.js +46 -0
- package/lib/app/createBuildApp.d.ts +5 -0
- package/lib/app/createBuildApp.js +13 -0
- package/lib/app/createDevApp.d.ts +5 -0
- package/lib/app/createDevApp.js +13 -0
- package/lib/app/index.d.ts +13 -12
- package/lib/app/index.js +18 -13
- package/lib/app/prepare/index.d.ts +1 -3
- package/lib/app/prepare/index.js +6 -4
- package/lib/app/prepare/prepareLayoutComponents.js +2 -2
- package/lib/app/prepare/preparePageComponent.js +6 -1
- package/lib/app/prepare/preparePageData.js +7 -11
- package/lib/app/prepare/{preparePagesComponent.d.ts → preparePagesComponents.d.ts} +1 -1
- package/lib/app/prepare/preparePagesComponents.js +24 -0
- package/lib/app/prepare/preparePagesData.js +5 -4
- package/lib/app/prepare/preparePagesRoutes.js +61 -11
- package/lib/app/prepare/prepareSiteData.js +19 -1
- package/lib/app/{createAppDir.d.ts → resolveAppDir.d.ts} +2 -2
- package/lib/app/resolveAppDir.js +32 -0
- package/lib/app/resolveAppEnv.d.ts +5 -0
- package/lib/app/resolveAppEnv.js +12 -0
- package/lib/app/resolveAppMarkdown.d.ts +6 -0
- package/lib/app/resolveAppMarkdown.js +16 -0
- package/lib/app/resolveAppOptions.d.ts +5 -0
- package/lib/app/{createAppOptions.js → resolveAppOptions.js} +16 -20
- package/lib/app/resolveAppPages.d.ts +5 -0
- package/lib/app/resolveAppPages.js +31 -0
- package/lib/app/resolveAppSiteData.d.ts +7 -0
- package/lib/app/resolveAppSiteData.js +17 -0
- package/lib/app/resolveAppVersion.d.ts +4 -0
- package/lib/app/resolveAppVersion.js +10 -0
- package/lib/app/resolveAppWriteTemp.d.ts +5 -0
- package/lib/app/{createAppWriteTemp.js → resolveAppWriteTemp.js} +5 -5
- package/lib/app/resolvePluginObject.d.ts +5 -0
- package/lib/app/resolvePluginObject.js +9 -0
- package/lib/app/resolveThemeInfo.d.ts +5 -0
- package/lib/app/resolveThemeInfo.js +31 -0
- package/lib/app/resolveThemeLayouts.d.ts +5 -0
- package/lib/app/resolveThemeLayouts.js +25 -0
- package/lib/app/setupAppThemeAndPlugins.d.ts +5 -0
- package/lib/app/setupAppThemeAndPlugins.js +21 -0
- package/lib/index.d.ts +0 -1
- package/lib/index.js +5 -2
- package/lib/page/createPage.js +75 -39
- package/lib/page/index.d.ts +4 -3
- package/lib/page/index.js +9 -4
- package/lib/page/inferPagePath.js +2 -2
- package/lib/page/renderPageContent.d.ts +19 -0
- package/lib/page/renderPageContent.js +26 -0
- package/lib/page/renderPageExcerpt.d.ts +11 -0
- package/lib/page/renderPageExcerpt.js +17 -0
- package/lib/page/resolvePageComponentInfo.d.ts +2 -9
- package/lib/page/resolvePageComponentInfo.js +2 -24
- package/lib/page/resolvePageContent.js +1 -2
- package/lib/page/resolvePageDataInfo.d.ts +2 -1
- package/lib/page/resolvePageDataInfo.js +2 -2
- package/lib/page/resolvePageDate.d.ts +1 -1
- package/lib/page/resolvePageDate.js +6 -7
- package/lib/page/resolvePageFileContent.js +3 -4
- package/lib/page/resolvePageFilePath.d.ts +1 -1
- package/lib/page/resolvePageFilePath.js +6 -11
- package/lib/page/resolvePageHtmlInfo.d.ts +11 -0
- package/lib/page/resolvePageHtmlInfo.js +18 -0
- package/lib/page/resolvePageKey.js +1 -1
- package/lib/page/resolvePageLang.js +2 -3
- package/lib/page/resolvePagePath.js +12 -1
- package/lib/page/resolvePagePermalink.js +4 -5
- package/lib/page/resolvePageRouteMeta.d.ts +7 -0
- package/lib/page/resolvePageRouteMeta.js +8 -0
- package/lib/pluginApi/createHookQueue.d.ts +1 -1
- package/lib/pluginApi/createHookQueue.js +7 -46
- package/lib/pluginApi/createPluginApi.js +2 -2
- package/lib/pluginApi/createPluginApiHooks.js +15 -14
- package/lib/pluginApi/createPluginApiRegisterHooks.js +6 -6
- package/lib/pluginApi/index.js +5 -1
- package/lib/pluginApi/normalizeClientFilesHook.js +5 -2
- package/lib/pluginApi/normalizeReturnObjectHook.js +1 -1
- package/lib/types/app/app.d.ts +82 -14
- package/lib/types/app/index.js +5 -1
- package/lib/types/app/options.d.ts +78 -27
- package/lib/types/app/utils.d.ts +10 -3
- package/lib/types/bundler.d.ts +3 -24
- package/lib/types/index.d.ts +2 -3
- package/lib/types/index.js +6 -3
- package/lib/types/page.d.ts +78 -32
- package/lib/types/plugin.d.ts +5 -24
- package/lib/types/{plugin-api → pluginApi}/hooks.d.ts +8 -9
- package/lib/types/{plugin-api → pluginApi}/hooks.js +0 -0
- package/lib/types/{plugin-api → pluginApi}/index.d.ts +0 -0
- package/lib/types/{plugin-api → pluginApi}/index.js +5 -1
- package/lib/types/{plugin-api → pluginApi}/pluginApi.d.ts +0 -0
- package/lib/types/{plugin-api → pluginApi}/pluginApi.js +0 -0
- package/lib/types/theme.d.ts +42 -14
- package/package.json +14 -14
- package/CHANGELOG.md +0 -260
- package/lib/app/appUseByConfig.d.ts +0 -2
- package/lib/app/appUseByConfig.js +0 -14
- package/lib/app/createApp.d.ts +0 -5
- package/lib/app/createApp.js +0 -44
- package/lib/app/createAppDir.js +0 -32
- package/lib/app/createAppEnv.d.ts +0 -5
- package/lib/app/createAppEnv.js +0 -14
- package/lib/app/createAppOptions.d.ts +0 -5
- package/lib/app/createAppPages.d.ts +0 -5
- package/lib/app/createAppPages.js +0 -33
- package/lib/app/createAppSiteData.d.ts +0 -7
- package/lib/app/createAppSiteData.js +0 -19
- package/lib/app/createAppVersion.d.ts +0 -4
- package/lib/app/createAppVersion.js +0 -11
- package/lib/app/createAppWriteTemp.d.ts +0 -5
- package/lib/app/normalizePlugin.d.ts +0 -2
- package/lib/app/normalizePlugin.js +0 -19
- package/lib/app/normalizePluginConfig.d.ts +0 -2
- package/lib/app/normalizePluginConfig.js +0 -18
- package/lib/app/prepare/preparePageRoutes.d.ts +0 -5
- package/lib/app/prepare/preparePageRoutes.js +0 -57
- package/lib/app/prepare/preparePagesComponent.js +0 -23
- package/lib/app/prepare/resolvePageData.d.ts +0 -5
- package/lib/app/prepare/resolvePageData.js +0 -18
- package/lib/app/resolveBundler.d.ts +0 -2
- package/lib/app/resolveBundler.js +0 -10
- package/lib/app/resolvePlugin.d.ts +0 -5
- package/lib/app/resolvePlugin.js +0 -20
- package/lib/page/resolvePageExcerpt.d.ts +0 -9
- package/lib/page/resolvePageExcerpt.js +0 -15
- package/lib/page/resolvePageRoutesInfo.d.ts +0 -11
- package/lib/page/resolvePageRoutesInfo.js +0 -16
- package/lib/page/resolvePageTitle.d.ts +0 -9
- package/lib/page/resolvePageTitle.js +0 -26
- package/lib/themeApi/createThemeApi.d.ts +0 -7
- package/lib/themeApi/createThemeApi.js +0 -30
- package/lib/themeApi/index.d.ts +0 -1
- package/lib/themeApi/index.js +0 -13
- package/lib/themeApi/resolveThemeInfo.d.ts +0 -2
- package/lib/themeApi/resolveThemeInfo.js +0 -34
- package/lib/themeApi/resolveThemeLayouts.d.ts +0 -5
- package/lib/themeApi/resolveThemeLayouts.js +0 -33
- package/lib/types/theme-api/index.d.ts +0 -1
- package/lib/types/theme-api/index.js +0 -13
- package/lib/types/theme-api/themeApi.d.ts +0 -44
- package/lib/types/theme-api/themeApi.js +0 -2
|
@@ -0,0 +1,16 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAppMarkdown = void 0;
|
|
4
|
+
const markdown_1 = require("@vuepress/markdown");
|
|
5
|
+
/**
|
|
6
|
+
* Resolve markdown-it instance for vuepress app
|
|
7
|
+
*/
|
|
8
|
+
const resolveAppMarkdown = async (app) => {
|
|
9
|
+
// plugin hook: extendsMarkdownOptions
|
|
10
|
+
await app.pluginApi.hooks.extendsMarkdownOptions.process(app.options.markdown, app);
|
|
11
|
+
const markdown = (0, markdown_1.createMarkdown)(app.options.markdown);
|
|
12
|
+
// plugin hook: extendsMarkdown
|
|
13
|
+
await app.pluginApi.hooks.extendsMarkdown.process(markdown, app);
|
|
14
|
+
return markdown;
|
|
15
|
+
};
|
|
16
|
+
exports.resolveAppMarkdown = resolveAppMarkdown;
|
|
@@ -0,0 +1,5 @@
|
|
|
1
|
+
import type { AppConfig, AppOptions } from '../types';
|
|
2
|
+
/**
|
|
3
|
+
* Create app options with default values
|
|
4
|
+
*/
|
|
5
|
+
export declare const resolveAppOptions: ({ base, lang, title, description, head, locales, source, dest, temp, cache, public: publicDir, host, port, open, templateDev, shouldPreload, shouldPrefetch, templateBuild, bundler, debug, markdown, pagePatterns, plugins, theme, }: AppConfig) => AppOptions;
|
|
@@ -1,48 +1,44 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.resolveAppOptions = void 0;
|
|
4
4
|
const utils_1 = require("@vuepress/utils");
|
|
5
5
|
/**
|
|
6
6
|
* Create app options with default values
|
|
7
7
|
*/
|
|
8
|
-
const
|
|
8
|
+
const resolveAppOptions = ({
|
|
9
9
|
// site config
|
|
10
10
|
base = '/', lang = 'en-US', title = '', description = '', head = [], locales = {},
|
|
11
|
-
// theme config
|
|
12
|
-
theme = '@vuepress/default', themeConfig = {},
|
|
13
|
-
// bundler config
|
|
14
|
-
bundler = '@vuepress/webpack', bundlerConfig = {},
|
|
15
11
|
// directory config
|
|
16
12
|
source, dest = utils_1.path.resolve(source, '.vuepress/dist'), temp = utils_1.path.resolve(source, '.vuepress/.temp'), cache = utils_1.path.resolve(source, '.vuepress/.cache'), public: publicDir = utils_1.path.resolve(source, '.vuepress/public'),
|
|
17
|
-
//
|
|
18
|
-
|
|
19
|
-
//
|
|
20
|
-
|
|
13
|
+
// dev config
|
|
14
|
+
host = '0.0.0.0', port = 8080, open = false, templateDev = utils_1.path.normalize(require.resolve('@vuepress/client/templates/dev.html')),
|
|
15
|
+
// build config
|
|
16
|
+
shouldPreload = true, shouldPrefetch = true, templateBuild = utils_1.path.normalize(require.resolve('@vuepress/client/templates/build.html')),
|
|
17
|
+
// common config
|
|
18
|
+
bundler, debug = false, markdown = {}, pagePatterns = ['**/*.md', '!.vuepress', '!node_modules'], plugins = [], theme, }) => ({
|
|
21
19
|
base,
|
|
22
20
|
lang,
|
|
23
21
|
title,
|
|
24
22
|
description,
|
|
25
23
|
head,
|
|
26
24
|
locales,
|
|
27
|
-
theme,
|
|
28
|
-
themeConfig,
|
|
29
|
-
bundler,
|
|
30
|
-
bundlerConfig,
|
|
31
25
|
source,
|
|
32
26
|
dest,
|
|
33
27
|
temp,
|
|
34
28
|
cache,
|
|
35
29
|
public: publicDir,
|
|
36
|
-
markdown,
|
|
37
|
-
debug,
|
|
38
30
|
host,
|
|
39
31
|
port,
|
|
40
32
|
open,
|
|
41
|
-
evergreen,
|
|
42
|
-
pagePatterns,
|
|
43
33
|
templateDev,
|
|
44
|
-
templateSSR,
|
|
45
34
|
shouldPreload,
|
|
46
35
|
shouldPrefetch,
|
|
36
|
+
templateBuild,
|
|
37
|
+
bundler,
|
|
38
|
+
debug,
|
|
39
|
+
markdown,
|
|
40
|
+
pagePatterns,
|
|
41
|
+
plugins,
|
|
42
|
+
theme,
|
|
47
43
|
});
|
|
48
|
-
exports.
|
|
44
|
+
exports.resolveAppOptions = resolveAppOptions;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAppPages = void 0;
|
|
4
|
+
const utils_1 = require("@vuepress/utils");
|
|
5
|
+
const page_1 = require("../page");
|
|
6
|
+
const log = (0, utils_1.debug)('vuepress:core/app');
|
|
7
|
+
/**
|
|
8
|
+
* Resolve pages for vuepress app
|
|
9
|
+
*/
|
|
10
|
+
const resolveAppPages = async (app) => {
|
|
11
|
+
log('resolveAppPages start');
|
|
12
|
+
// resolve page absolute file paths according to the page patterns
|
|
13
|
+
const pageFilePaths = await (0, utils_1.globby)(app.options.pagePatterns, {
|
|
14
|
+
absolute: true,
|
|
15
|
+
cwd: app.dir.source(),
|
|
16
|
+
});
|
|
17
|
+
// create pages from files
|
|
18
|
+
const pages = await Promise.all(pageFilePaths.map((filePath) => (0, page_1.createPage)(app, { filePath })));
|
|
19
|
+
// if there is no 404 page, add one
|
|
20
|
+
if (!pages.some((page) => page.path === '/404.html')) {
|
|
21
|
+
pages.push(await (0, page_1.createPage)(app, {
|
|
22
|
+
path: '/404.html',
|
|
23
|
+
frontmatter: {
|
|
24
|
+
layout: '404',
|
|
25
|
+
},
|
|
26
|
+
}));
|
|
27
|
+
}
|
|
28
|
+
log('resolveAppPages finish');
|
|
29
|
+
return pages;
|
|
30
|
+
};
|
|
31
|
+
exports.resolveAppPages = resolveAppPages;
|
|
@@ -0,0 +1,17 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAppSiteData = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve site data for vuepress app
|
|
6
|
+
*
|
|
7
|
+
* Site data will also be used in client
|
|
8
|
+
*/
|
|
9
|
+
const resolveAppSiteData = (options) => ({
|
|
10
|
+
base: options.base,
|
|
11
|
+
lang: options.lang,
|
|
12
|
+
title: options.title,
|
|
13
|
+
description: options.description,
|
|
14
|
+
head: options.head,
|
|
15
|
+
locales: options.locales,
|
|
16
|
+
});
|
|
17
|
+
exports.resolveAppSiteData = resolveAppSiteData;
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveAppVersion = void 0;
|
|
4
|
+
/**
|
|
5
|
+
* Resolve version of vuepress app
|
|
6
|
+
*/
|
|
7
|
+
const resolveAppVersion = () => {
|
|
8
|
+
return require('../../package.json').version;
|
|
9
|
+
};
|
|
10
|
+
exports.resolveAppVersion = resolveAppVersion;
|
|
@@ -1,14 +1,14 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.
|
|
3
|
+
exports.resolveAppWriteTemp = void 0;
|
|
4
4
|
const utils_1 = require("@vuepress/utils");
|
|
5
5
|
/**
|
|
6
|
-
*
|
|
6
|
+
* Resolve write temp file util for vuepress app
|
|
7
7
|
*/
|
|
8
|
-
const
|
|
8
|
+
const resolveAppWriteTemp = (dir) => {
|
|
9
9
|
const tempCache = new Map();
|
|
10
10
|
const writeTemp = async (file, content) => {
|
|
11
|
-
const filePath =
|
|
11
|
+
const filePath = dir.temp(file);
|
|
12
12
|
const contentCached = tempCache.get(filePath);
|
|
13
13
|
if (contentCached !== content) {
|
|
14
14
|
await utils_1.fs.outputFile(filePath, content);
|
|
@@ -18,4 +18,4 @@ const createAppWriteTemp = async (app) => {
|
|
|
18
18
|
};
|
|
19
19
|
return writeTemp;
|
|
20
20
|
};
|
|
21
|
-
exports.
|
|
21
|
+
exports.resolveAppWriteTemp = resolveAppWriteTemp;
|
|
@@ -0,0 +1,9 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolvePluginObject = void 0;
|
|
4
|
+
const shared_1 = require("@vuepress/shared");
|
|
5
|
+
/**
|
|
6
|
+
* Resolve a plugin object according to name / path / module and config
|
|
7
|
+
*/
|
|
8
|
+
const resolvePluginObject = (app, plugin) => ((0, shared_1.isFunction)(plugin) ? plugin(app) : plugin);
|
|
9
|
+
exports.resolvePluginObject = resolvePluginObject;
|
|
@@ -0,0 +1,31 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveThemeInfo = void 0;
|
|
4
|
+
const resolvePluginObject_1 = require("./resolvePluginObject");
|
|
5
|
+
const resolveThemeLayouts_1 = require("./resolveThemeLayouts");
|
|
6
|
+
/**
|
|
7
|
+
* Resolve theme info and its parent theme info
|
|
8
|
+
*/
|
|
9
|
+
const resolveThemeInfo = (app, theme) => {
|
|
10
|
+
// resolve current theme info
|
|
11
|
+
const themeObject = (0, resolvePluginObject_1.resolvePluginObject)(app, theme);
|
|
12
|
+
const themeInfo = {
|
|
13
|
+
layouts: (0, resolveThemeLayouts_1.resolveThemeLayouts)(themeObject.layouts),
|
|
14
|
+
plugins: [...(themeObject.plugins ?? []), themeObject],
|
|
15
|
+
templateBuild: themeObject.templateBuild,
|
|
16
|
+
templateDev: themeObject.templateDev,
|
|
17
|
+
};
|
|
18
|
+
// return if current theme does not have a parent theme
|
|
19
|
+
if (!themeObject.extends) {
|
|
20
|
+
return themeInfo;
|
|
21
|
+
}
|
|
22
|
+
// resolve parent theme info recursively
|
|
23
|
+
const parentThemeInfo = (0, exports.resolveThemeInfo)(app, themeObject.extends);
|
|
24
|
+
return {
|
|
25
|
+
layouts: { ...parentThemeInfo.layouts, ...themeInfo.layouts },
|
|
26
|
+
plugins: [...parentThemeInfo.plugins, ...themeInfo.plugins],
|
|
27
|
+
templateBuild: themeObject.templateBuild ?? parentThemeInfo.templateBuild,
|
|
28
|
+
templateDev: themeObject.templateDev ?? parentThemeInfo.templateDev,
|
|
29
|
+
};
|
|
30
|
+
};
|
|
31
|
+
exports.resolveThemeInfo = resolveThemeInfo;
|
|
@@ -0,0 +1,25 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.resolveThemeLayouts = void 0;
|
|
4
|
+
const shared_1 = require("@vuepress/shared");
|
|
5
|
+
const utils_1 = require("@vuepress/utils");
|
|
6
|
+
/**
|
|
7
|
+
* Resolve layouts from `layouts` option
|
|
8
|
+
*/
|
|
9
|
+
const resolveThemeLayouts = (layouts = {}) => {
|
|
10
|
+
// use the layouts component map directly
|
|
11
|
+
if ((0, shared_1.isPlainObject)(layouts)) {
|
|
12
|
+
return layouts;
|
|
13
|
+
}
|
|
14
|
+
// resolve the layouts directory
|
|
15
|
+
if (!utils_1.fs.pathExistsSync(layouts)) {
|
|
16
|
+
throw utils_1.logger.createError(`layouts directory does not exist: ${utils_1.chalk.magenta(layouts)}`);
|
|
17
|
+
}
|
|
18
|
+
// load all files in layouts directory, then take matched files
|
|
19
|
+
// as theme layouts
|
|
20
|
+
return Object.fromEntries(utils_1.fs
|
|
21
|
+
.readdirSync(layouts)
|
|
22
|
+
.filter((file) => /\.(vue|ts|js)$/.test(file))
|
|
23
|
+
.map((file) => [utils_1.path.trimExt(file), utils_1.path.resolve(layouts, file)]));
|
|
24
|
+
};
|
|
25
|
+
exports.resolveThemeLayouts = resolveThemeLayouts;
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.setupAppThemeAndPlugins = void 0;
|
|
4
|
+
const resolveThemeInfo_1 = require("./resolveThemeInfo");
|
|
5
|
+
/**
|
|
6
|
+
* Setup theme and plugins for vuepress app
|
|
7
|
+
*/
|
|
8
|
+
const setupAppThemeAndPlugins = (app, config) => {
|
|
9
|
+
// recursively resolve theme info
|
|
10
|
+
const themeInfo = (0, resolveThemeInfo_1.resolveThemeInfo)(app, app.options.theme);
|
|
11
|
+
// set up app layouts and templates
|
|
12
|
+
app.layouts = themeInfo.layouts;
|
|
13
|
+
app.options.templateDev =
|
|
14
|
+
config.templateDev ?? themeInfo.templateDev ?? app.options.templateDev;
|
|
15
|
+
app.options.templateBuild =
|
|
16
|
+
config.templateBuild ?? themeInfo.templateBuild ?? app.options.templateBuild;
|
|
17
|
+
[...themeInfo.plugins, ...app.options.plugins]
|
|
18
|
+
.flat()
|
|
19
|
+
.forEach((plugin) => app.use(plugin));
|
|
20
|
+
};
|
|
21
|
+
exports.setupAppThemeAndPlugins = setupAppThemeAndPlugins;
|
package/lib/index.d.ts
CHANGED
package/lib/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -13,5 +17,4 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
13
17
|
__exportStar(require("./app"), exports);
|
|
14
18
|
__exportStar(require("./page"), exports);
|
|
15
19
|
__exportStar(require("./pluginApi"), exports);
|
|
16
|
-
__exportStar(require("./themeApi"), exports);
|
|
17
20
|
__exportStar(require("./types"), exports);
|
package/lib/page/createPage.js
CHANGED
|
@@ -2,47 +2,66 @@
|
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.createPage = void 0;
|
|
4
4
|
const inferPagePath_1 = require("./inferPagePath");
|
|
5
|
+
const renderPageContent_1 = require("./renderPageContent");
|
|
6
|
+
const renderPageExcerpt_1 = require("./renderPageExcerpt");
|
|
5
7
|
const resolvePageComponentInfo_1 = require("./resolvePageComponentInfo");
|
|
6
8
|
const resolvePageContent_1 = require("./resolvePageContent");
|
|
7
9
|
const resolvePageDataInfo_1 = require("./resolvePageDataInfo");
|
|
8
10
|
const resolvePageDate_1 = require("./resolvePageDate");
|
|
9
|
-
const resolvePageExcerpt_1 = require("./resolvePageExcerpt");
|
|
10
11
|
const resolvePageFileContent_1 = require("./resolvePageFileContent");
|
|
11
12
|
const resolvePageFilePath_1 = require("./resolvePageFilePath");
|
|
12
13
|
const resolvePageFrontmatter_1 = require("./resolvePageFrontmatter");
|
|
14
|
+
const resolvePageHtmlInfo_1 = require("./resolvePageHtmlInfo");
|
|
13
15
|
const resolvePageKey_1 = require("./resolvePageKey");
|
|
14
16
|
const resolvePageLang_1 = require("./resolvePageLang");
|
|
15
17
|
const resolvePagePath_1 = require("./resolvePagePath");
|
|
16
18
|
const resolvePagePermalink_1 = require("./resolvePagePermalink");
|
|
17
|
-
const
|
|
19
|
+
const resolvePageRouteMeta_1 = require("./resolvePageRouteMeta");
|
|
18
20
|
const resolvePageSlug_1 = require("./resolvePageSlug");
|
|
19
|
-
const resolvePageTitle_1 = require("./resolvePageTitle");
|
|
20
21
|
const createPage = async (app, options) => {
|
|
22
|
+
// plugin hook: extendsPageOptions
|
|
23
|
+
await app.pluginApi.hooks.extendsPageOptions.process(options, app);
|
|
21
24
|
// resolve page file absolute path and relative path
|
|
22
|
-
const { filePath, filePathRelative } = resolvePageFilePath_1.resolvePageFilePath({
|
|
25
|
+
const { filePath, filePathRelative } = (0, resolvePageFilePath_1.resolvePageFilePath)({
|
|
23
26
|
app,
|
|
24
27
|
options,
|
|
25
28
|
});
|
|
26
29
|
// read the raw file content according to the absolute file path
|
|
27
|
-
const contentRaw = await resolvePageFileContent_1.resolvePageFileContent({ filePath, options });
|
|
30
|
+
const contentRaw = await (0, resolvePageFileContent_1.resolvePageFileContent)({ filePath, options });
|
|
28
31
|
// resolve content & frontmatter & raw excerpt from raw content
|
|
29
|
-
const { content, frontmatterRaw, excerptRaw } = resolvePageContent_1.resolvePageContent({
|
|
32
|
+
const { content, frontmatterRaw, excerptRaw } = (0, resolvePageContent_1.resolvePageContent)({
|
|
30
33
|
contentRaw,
|
|
31
34
|
});
|
|
32
35
|
// resolve frontmatter from raw frontmatter and page options
|
|
33
|
-
const frontmatter = resolvePageFrontmatter_1.resolvePageFrontmatter({ frontmatterRaw, options });
|
|
34
|
-
//
|
|
35
|
-
const excerpt =
|
|
36
|
+
const frontmatter = (0, resolvePageFrontmatter_1.resolvePageFrontmatter)({ frontmatterRaw, options });
|
|
37
|
+
// render excerpt
|
|
38
|
+
const excerpt = (0, renderPageExcerpt_1.renderPageExcerpt)({
|
|
39
|
+
app,
|
|
40
|
+
excerptRaw,
|
|
41
|
+
filePath,
|
|
42
|
+
filePathRelative,
|
|
43
|
+
frontmatter,
|
|
44
|
+
});
|
|
45
|
+
// render page content and extract information
|
|
46
|
+
const { contentRendered, deps, headers, hoistedTags, links, title } = await (0, renderPageContent_1.renderPageContent)({
|
|
47
|
+
app,
|
|
48
|
+
content,
|
|
49
|
+
filePath,
|
|
50
|
+
filePathRelative,
|
|
51
|
+
frontmatter,
|
|
52
|
+
});
|
|
53
|
+
// resolve route meta from frontmatter
|
|
54
|
+
const routeMeta = (0, resolvePageRouteMeta_1.resolvePageRouteMeta)({ frontmatter });
|
|
36
55
|
// resolve slug from file path
|
|
37
|
-
const slug = resolvePageSlug_1.resolvePageSlug({ filePathRelative });
|
|
56
|
+
const slug = (0, resolvePageSlug_1.resolvePageSlug)({ filePathRelative });
|
|
38
57
|
// resolve date from file path
|
|
39
|
-
const date = resolvePageDate_1.resolvePageDate({ frontmatter, filePathRelative });
|
|
58
|
+
const date = (0, resolvePageDate_1.resolvePageDate)({ frontmatter, filePathRelative });
|
|
40
59
|
// infer page path according to file path
|
|
41
|
-
const { pathInferred, pathLocale } = inferPagePath_1.inferPagePath({ app, filePathRelative });
|
|
60
|
+
const { pathInferred, pathLocale } = (0, inferPagePath_1.inferPagePath)({ app, filePathRelative });
|
|
42
61
|
// resolve language from frontmatter and site options
|
|
43
|
-
const lang = resolvePageLang_1.resolvePageLang({ app, frontmatter, pathLocale });
|
|
62
|
+
const lang = (0, resolvePageLang_1.resolvePageLang)({ app, frontmatter, pathLocale });
|
|
44
63
|
// resolve page permalink
|
|
45
|
-
const permalink = resolvePagePermalink_1.resolvePagePermalink({
|
|
64
|
+
const permalink = (0, resolvePagePermalink_1.resolvePagePermalink)({
|
|
46
65
|
frontmatter,
|
|
47
66
|
slug,
|
|
48
67
|
date,
|
|
@@ -50,49 +69,66 @@ const createPage = async (app, options) => {
|
|
|
50
69
|
pathLocale,
|
|
51
70
|
});
|
|
52
71
|
// resolve page path
|
|
53
|
-
const path = resolvePagePath_1.resolvePagePath({ permalink, pathInferred, options });
|
|
54
|
-
// resolve
|
|
55
|
-
const key = resolvePageKey_1.resolvePageKey({ path });
|
|
56
|
-
// resolve page
|
|
57
|
-
const {
|
|
72
|
+
const path = (0, resolvePagePath_1.resolvePagePath)({ permalink, pathInferred, options });
|
|
73
|
+
// resolve page key
|
|
74
|
+
const key = (0, resolvePageKey_1.resolvePageKey)({ path });
|
|
75
|
+
// resolve page rendered html file path
|
|
76
|
+
const { htmlFilePath, htmlFilePathRelative } = (0, resolvePageHtmlInfo_1.resolvePageHtmlInfo)({
|
|
58
77
|
app,
|
|
59
|
-
content,
|
|
60
|
-
filePathRelative,
|
|
61
78
|
path,
|
|
62
|
-
key,
|
|
63
79
|
});
|
|
64
|
-
|
|
65
|
-
const {
|
|
80
|
+
// resolve page component and extract headers & links
|
|
81
|
+
const { componentFilePath, componentFilePathRelative, componentFileChunkName, } = await (0, resolvePageComponentInfo_1.resolvePageComponentInfo)({
|
|
66
82
|
app,
|
|
83
|
+
htmlFilePathRelative,
|
|
67
84
|
key,
|
|
68
85
|
});
|
|
69
|
-
|
|
70
|
-
const
|
|
71
|
-
|
|
86
|
+
const { dataFilePath, dataFilePathRelative, dataFileChunkName } = (0, resolvePageDataInfo_1.resolvePageDataInfo)({ app, htmlFilePathRelative, key });
|
|
87
|
+
const page = {
|
|
88
|
+
// page data
|
|
89
|
+
data: {
|
|
90
|
+
key,
|
|
91
|
+
path,
|
|
92
|
+
title,
|
|
93
|
+
lang,
|
|
94
|
+
frontmatter,
|
|
95
|
+
excerpt,
|
|
96
|
+
headers,
|
|
97
|
+
},
|
|
98
|
+
// base fields
|
|
72
99
|
key,
|
|
73
100
|
path,
|
|
101
|
+
title,
|
|
102
|
+
lang,
|
|
103
|
+
frontmatter,
|
|
104
|
+
excerpt,
|
|
105
|
+
headers,
|
|
106
|
+
// extra fields
|
|
107
|
+
content,
|
|
108
|
+
contentRendered,
|
|
109
|
+
date,
|
|
110
|
+
deps,
|
|
111
|
+
hoistedTags,
|
|
112
|
+
links,
|
|
74
113
|
pathInferred,
|
|
75
114
|
pathLocale,
|
|
115
|
+
permalink,
|
|
116
|
+
routeMeta,
|
|
117
|
+
slug,
|
|
118
|
+
// file info
|
|
76
119
|
filePath,
|
|
77
120
|
filePathRelative,
|
|
78
121
|
componentFilePath,
|
|
79
122
|
componentFilePathRelative,
|
|
80
|
-
componentFileContent,
|
|
81
123
|
componentFileChunkName,
|
|
82
124
|
dataFilePath,
|
|
83
125
|
dataFilePathRelative,
|
|
84
126
|
dataFileChunkName,
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
title,
|
|
88
|
-
content,
|
|
89
|
-
frontmatter,
|
|
90
|
-
excerpt,
|
|
91
|
-
headers,
|
|
92
|
-
links,
|
|
93
|
-
slug,
|
|
94
|
-
date,
|
|
95
|
-
lang,
|
|
127
|
+
htmlFilePath,
|
|
128
|
+
htmlFilePathRelative,
|
|
96
129
|
};
|
|
130
|
+
// plugin hook: extendsPage
|
|
131
|
+
await app.pluginApi.hooks.extendsPage.process(page, app);
|
|
132
|
+
return page;
|
|
97
133
|
};
|
|
98
134
|
exports.createPage = createPage;
|
package/lib/page/index.d.ts
CHANGED
|
@@ -1,17 +1,18 @@
|
|
|
1
1
|
export * from './createPage';
|
|
2
2
|
export * from './inferPagePath';
|
|
3
|
+
export * from './renderPageContent';
|
|
4
|
+
export * from './renderPageExcerpt';
|
|
3
5
|
export * from './resolvePageComponentInfo';
|
|
4
6
|
export * from './resolvePageContent';
|
|
5
7
|
export * from './resolvePageDataInfo';
|
|
6
8
|
export * from './resolvePageDate';
|
|
7
|
-
export * from './resolvePageExcerpt';
|
|
8
9
|
export * from './resolvePageFileContent';
|
|
9
10
|
export * from './resolvePageFilePath';
|
|
10
11
|
export * from './resolvePageFrontmatter';
|
|
12
|
+
export * from './resolvePageHtmlInfo';
|
|
11
13
|
export * from './resolvePageKey';
|
|
12
14
|
export * from './resolvePageLang';
|
|
13
15
|
export * from './resolvePagePath';
|
|
14
16
|
export * from './resolvePagePermalink';
|
|
15
|
-
export * from './
|
|
17
|
+
export * from './resolvePageRouteMeta';
|
|
16
18
|
export * from './resolvePageSlug';
|
|
17
|
-
export * from './resolvePageTitle';
|
package/lib/page/index.js
CHANGED
|
@@ -1,7 +1,11 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
var __createBinding = (this && this.__createBinding) || (Object.create ? (function(o, m, k, k2) {
|
|
3
3
|
if (k2 === undefined) k2 = k;
|
|
4
|
-
Object.
|
|
4
|
+
var desc = Object.getOwnPropertyDescriptor(m, k);
|
|
5
|
+
if (!desc || ("get" in desc ? !m.__esModule : desc.writable || desc.configurable)) {
|
|
6
|
+
desc = { enumerable: true, get: function() { return m[k]; } };
|
|
7
|
+
}
|
|
8
|
+
Object.defineProperty(o, k2, desc);
|
|
5
9
|
}) : (function(o, m, k, k2) {
|
|
6
10
|
if (k2 === undefined) k2 = k;
|
|
7
11
|
o[k2] = m[k];
|
|
@@ -12,18 +16,19 @@ var __exportStar = (this && this.__exportStar) || function(m, exports) {
|
|
|
12
16
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
13
17
|
__exportStar(require("./createPage"), exports);
|
|
14
18
|
__exportStar(require("./inferPagePath"), exports);
|
|
19
|
+
__exportStar(require("./renderPageContent"), exports);
|
|
20
|
+
__exportStar(require("./renderPageExcerpt"), exports);
|
|
15
21
|
__exportStar(require("./resolvePageComponentInfo"), exports);
|
|
16
22
|
__exportStar(require("./resolvePageContent"), exports);
|
|
17
23
|
__exportStar(require("./resolvePageDataInfo"), exports);
|
|
18
24
|
__exportStar(require("./resolvePageDate"), exports);
|
|
19
|
-
__exportStar(require("./resolvePageExcerpt"), exports);
|
|
20
25
|
__exportStar(require("./resolvePageFileContent"), exports);
|
|
21
26
|
__exportStar(require("./resolvePageFilePath"), exports);
|
|
22
27
|
__exportStar(require("./resolvePageFrontmatter"), exports);
|
|
28
|
+
__exportStar(require("./resolvePageHtmlInfo"), exports);
|
|
23
29
|
__exportStar(require("./resolvePageKey"), exports);
|
|
24
30
|
__exportStar(require("./resolvePageLang"), exports);
|
|
25
31
|
__exportStar(require("./resolvePagePath"), exports);
|
|
26
32
|
__exportStar(require("./resolvePagePermalink"), exports);
|
|
27
|
-
__exportStar(require("./
|
|
33
|
+
__exportStar(require("./resolvePageRouteMeta"), exports);
|
|
28
34
|
__exportStar(require("./resolvePageSlug"), exports);
|
|
29
|
-
__exportStar(require("./resolvePageTitle"), exports);
|
|
@@ -14,11 +14,11 @@ const inferPagePath = ({ app, filePathRelative, }) => {
|
|
|
14
14
|
}
|
|
15
15
|
// infer page route path from file path
|
|
16
16
|
// foo/bar.md -> /foo/bar.html
|
|
17
|
-
const pathInferred = shared_1.ensureLeadingSlash(filePathRelative)
|
|
17
|
+
const pathInferred = (0, shared_1.ensureLeadingSlash)(filePathRelative)
|
|
18
18
|
.replace(/\.md$/, '.html')
|
|
19
19
|
.replace(/\/(README|index).html$/i, '/');
|
|
20
20
|
// resolve page locale path
|
|
21
|
-
const pathLocale = shared_1.resolveLocalePath(app.siteData.locales, pathInferred);
|
|
21
|
+
const pathLocale = (0, shared_1.resolveLocalePath)(app.siteData.locales, pathInferred);
|
|
22
22
|
return {
|
|
23
23
|
pathInferred,
|
|
24
24
|
pathLocale,
|
|
@@ -0,0 +1,19 @@
|
|
|
1
|
+
import type { MarkdownHeader, MarkdownLink } from '@vuepress/markdown';
|
|
2
|
+
import type { App, PageFrontmatter } from '../types';
|
|
3
|
+
/**
|
|
4
|
+
* Render page content and extract related info
|
|
5
|
+
*/
|
|
6
|
+
export declare const renderPageContent: ({ app, content, frontmatter, filePath, filePathRelative, }: {
|
|
7
|
+
app: App;
|
|
8
|
+
content: string;
|
|
9
|
+
frontmatter: PageFrontmatter;
|
|
10
|
+
filePath: string | null;
|
|
11
|
+
filePathRelative: string | null;
|
|
12
|
+
}) => Promise<{
|
|
13
|
+
contentRendered: string;
|
|
14
|
+
deps: string[];
|
|
15
|
+
headers: MarkdownHeader[];
|
|
16
|
+
hoistedTags: string[];
|
|
17
|
+
links: MarkdownLink[];
|
|
18
|
+
title: string;
|
|
19
|
+
}>;
|