UNPKG

1.33 kBJavaScriptView Raw
1const { existsSync } = require('fs')
2const { resolve } = require('path')
3
4const { getRoutes, interceptRoutes } = require('./routes.js')
5const reqPlugin = resolve(__dirname, './plugin.js')
6
7function getModuleOptions (nuxtOpts) {
8 const contentVars = {
9 srcPath: nuxtOpts.srcDir,
10 srcDir: 'content',
11 routeName: '', // no route
12 dirs: ['/'], // all files
13 permalink: ':slug',
14 isPost: true,
15 data: {}
16 }
17
18 const rootConfig = resolve(nuxtOpts.srcDir, 'nuxt.content.js')
19 const userOpts = existsSync(rootConfig) ? require(rootConfig) : nuxtOpts.content
20 return Object.assign({}, contentVars, userOpts)
21}
22
23module.exports = function contentModule() {
24 const options = getModuleOptions(this.options)
25
26 // parse content and request it via plugin helper methods
27 const content = require('./content.js').default(options)
28 this.addPlugin({ src: reqPlugin })
29
30 // convert page route paths to content permalink paths
31 this.extendRoutes(routes => interceptRoutes(routes, content, options))
32
33 // generate routes for dynamic content
34 if (!('generate' in this.options)) this.options.generate = {}
35 const gen = this.options.generate
36 gen.routes = gen.routes && Array.isArray(gen.routes)
37 ? Array.concat(routes, getRoutes(content))
38 : getRoutes(content)
39}
40
41module.exports.meta = require('../package.json')