From 3fbef0d614943fbf0c1e8881fb291b707b4a6fc1 Mon Sep 17 00:00:00 2001 From: ULIVZ <472590061@qq.com> Date: Fri, 5 Oct 2018 23:24:24 +0800 Subject: [PATCH] feat($core): theme entry file as plugin. --- packages/@vuepress/core/lib/prepare/AppContext.js | 5 +++-- packages/@vuepress/core/lib/prepare/loadTheme.js | 10 +++++----- 2 files changed, 8 insertions(+), 7 deletions(-) diff --git a/packages/@vuepress/core/lib/prepare/AppContext.js b/packages/@vuepress/core/lib/prepare/AppContext.js index fa79d43d5d..15d201bfbd 100644 --- a/packages/@vuepress/core/lib/prepare/AppContext.js +++ b/packages/@vuepress/core/lib/prepare/AppContext.js @@ -106,6 +106,7 @@ module.exports = class AppContext { this.pluginAPI // internl core plugins .use(Object.assign({}, siteConfig, { name: '@vuepress/internal-site-config' })) + .use(Object.assign({}, this.themeEntryFile, { name: '@vuepress/internal-theme-entry-file' })) .use(require('../internal-plugins/siteData')) .use(require('../internal-plugins/routes')) .use(require('../internal-plugins/rootMixins')) @@ -161,7 +162,7 @@ module.exports = class AppContext { * * 1. siteConfig.devTemplate * 2. `dev.html` located at .vuepress/templates - * 3. themeIndexFile.devTemplate + * 3. themeEntryFile.devTemplate * 4. default devTemplate * * @api private @@ -174,7 +175,7 @@ module.exports = class AppContext { const siteSsrTemplate2 = path.resolve(templateDir, 'dev.html') const siteDevTemplate2 = path.resolve(templateDir, 'ssr.html') - const { themeSsrTemplate, themeDevTemplate } = this.themeIndexFile + const { themeSsrTemplate, themeDevTemplate } = this.themeEntryFile const defaultSsrTemplate = path.resolve(__dirname, '../app/index.ssr.html') const defaultDevTemplate = path.resolve(__dirname, '../app/index.dev.html') diff --git a/packages/@vuepress/core/lib/prepare/loadTheme.js b/packages/@vuepress/core/lib/prepare/loadTheme.js index 5261bb22b2..28c5014ff6 100644 --- a/packages/@vuepress/core/lib/prepare/loadTheme.js +++ b/packages/@vuepress/core/lib/prepare/loadTheme.js @@ -36,7 +36,7 @@ module.exports = async function loadTheme (theme, sourceDir, vuepressDir) { (fs.readdirSync(localThemePath)).length > 0 let themePath = null // Mandatory - let themeIndexFile = null // Optional + let themeEntryFile = null // Optional let themeName let themeShortcut @@ -58,16 +58,16 @@ module.exports = async function loadTheme (theme, sourceDir, vuepressDir) { } try { - themeIndexFile = require(themePath) + themeEntryFile = require(themePath) } catch (error) { - themeIndexFile = {} + themeEntryFile = {} } // handle theme api const { plugins: themePlugins, palette: themePalette - } = themeIndexFile + } = themeEntryFile const layoutDirs = [ path.resolve(themePath, 'layouts'), @@ -132,7 +132,7 @@ module.exports = async function loadTheme (theme, sourceDir, vuepressDir) { return { themePath, layoutComponentMap, - themeIndexFile, + themeEntryFile, themePlugins, themePalette, themeName,