Skip to content

Commit e380de3

Browse files
committed
feat($core): plugin option - chainMarkdown
1 parent 9a7f0cb commit e380de3

File tree

4 files changed

+7
-4
lines changed

4 files changed

+7
-4
lines changed

packages/@vuepress/core/lib/markdown/index.js

Lines changed: 3 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -24,9 +24,7 @@ const { parseHeaders } = require('@vuepress/shared-utils')
2424
* Create markdown by config.
2525
*/
2626

27-
module.exports = ({
28-
markdown = {}
29-
} = {}) => {
27+
module.exports = (markdown = {}, pluginAPI) => {
3028
// allow user config slugify
3129
const slugify = markdown.slugify || _slugify
3230
// using chainedAPI
@@ -96,6 +94,8 @@ module.exports = ({
9694
.use(lineNumbers)
9795
}
9896

97+
pluginAPI.options.chainMarkdown.syncApply(config)
98+
9999
if (markdown.chainMarkdown) {
100100
markdown.chainMarkdown(config)
101101
}

packages/@vuepress/core/lib/plugin-api/constants.js

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@ const PLUGIN_OPTION_META_MAP = {
1313
OUT_FILES: { name: 'outFiles', types: [Object] },
1414
EXTEND_PAGE_DATA: { name: 'extendPageData', types: [Function] },
1515
EXTEND_MARKDOWN: { name: 'extendMarkdown', types: [Function] },
16+
CHAIN_MARKDOWN: { name: 'chainMarkdown', types: [Function] },
1617
CLIENT_DYNAMIC_MODULES: { name: 'clientDynamicModules', types: [Function] },
1718
CLIENT_ROOT_MIXIN: { name: 'clientRootMixin', types: [String] },
1819
ADDITIONAL_PAGES: { name: 'additionalPages', types: [Function, Array] },

packages/@vuepress/core/lib/plugin-api/index.js

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -165,6 +165,7 @@ module.exports = class PluginAPI {
165165
chainWebpack,
166166
enhanceDevServer,
167167
extendMarkdown,
168+
chainMarkdown,
168169
enhanceAppFiles,
169170
outFiles,
170171
extendPageData,
@@ -190,6 +191,7 @@ module.exports = class PluginAPI {
190191
.registerOption(PLUGIN_OPTION_MAP.CHAIN_WEBPACK.key, chainWebpack, pluginName)
191192
.registerOption(PLUGIN_OPTION_MAP.ENHANCE_DEV_SERVER.key, enhanceDevServer, pluginName)
192193
.registerOption(PLUGIN_OPTION_MAP.EXTEND_MARKDOWN.key, extendMarkdown, pluginName)
194+
.registerOption(PLUGIN_OPTION_MAP.CHAIN_MARKDOWN.key, chainMarkdown, pluginName)
193195
.registerOption(PLUGIN_OPTION_MAP.EXTEND_PAGE_DATA.key, extendPageData, pluginName)
194196
.registerOption(PLUGIN_OPTION_MAP.ENHANCE_APP_FILES.key, enhanceAppFiles, pluginName)
195197
.registerOption(PLUGIN_OPTION_MAP.OUT_FILES.key, outFiles, pluginName)

packages/@vuepress/core/lib/prepare/AppContext.js

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -66,10 +66,10 @@ module.exports = class AppContext {
6666

6767
async process () {
6868
this.normalizeHeadTagUrls()
69-
this.markdown = createMarkdown(this.siteConfig)
7069
this.resolveTemplates()
7170
await this.resolveTheme()
7271
this.resolvePlugins()
72+
this.markdown = createMarkdown(this.siteConfig.markdown, this.pluginAPI)
7373

7474
await this.resolvePages()
7575
await Promise.all(

0 commit comments

Comments
 (0)