nextein / config
withNextein
A wrapper configuration function to be declared into the next.config.js file.
const { withNextein } = require('nextein/config')
module.exports = withNextein({
// Your own next.js config here
})
Note
The withNextein wrapper is required to get Nextein working.
Nextein Configuration
Nextein is mostly based in plugins and it comes with batteries included. In case you need to add or change something, configuration can be passed as:
const { withNextein } = require('nextein/config')
module.exports = withNextein({
nextein: {
/* nextein configuration */
},
// Your own next.js config here
})
The nextein
configuration can be either an object, or a function that returns an object:
module.exports = withNextein({
// Using a function
nextein: function(config) {
// add or modify the default config here.
return config
},
// Your own next.js config here
})
Plugin Configuration
The plugin configuration allows to:
- Configure multiple instances of a plugin.
- Override a defined configuration.
- Resolve fullname plugin with configured name as:
- simplified:
source-fs
. - fullname:
nextein-plugin-source-fs
.
- simplified:
Plugin Configuration Resolution
Configuration resolves to an Object with the form:
{
name: {String},
id?: {String},
options: {Object}
}
Accepted forms:
- Object:
{ name, id?, options }
The id is optional. - String:
name-of-plugin
results in:{ name: 'name-of-plugin' }
, - Array:
[name, options]
results in{ name, options }
A plugin configuration is identified by an internal id
. This id will be set by default to the plugin name if no id
property is provided. This allows to generate multiple instances of the same plugin if anid
is provided or it can override a pre-configured plugin if not id provided.
{
name: 'nextein-plugin-x',
options: {
position: true,
raw: false
}
},
// override previous definition
['nextein-plugin-x', { position: true, raw: true }],
// Multiple instances
{
name: 'source-fs',
id: 'posts',
options: {
path: 'posts',
includes: '**/*.md'
}
},
{
name: 'source-fs', // resolve to nextein-plugin-source-fs
id: 'images',
options: {
path: 'images'
}
}
Default Plugins
The following plugins are configured by default:
['nextein-plugin-source-fs', { path: 'posts' }],
'nextein-plugin-markdown',
'nextein-plugin-filter-unpublished'
nextien-plugin-source-fs
The filesystem source plugin is configured to read entries from ./posts
folder.
nextein-plugin-markdown
The markdown plugin is configured to read .md
files (based in markdown mime-type) and build the post entries. It runs a cleanup stage to remove position
and raw
from each entry.
nextein-plugin-filter-unpublished
This plugin allows to set a publish: false
in front-matter configuration to unpublish the post.
Overriding Defaults
In order to override any of the default plugins configuration you can just set the values to adapt your needs. For instance, in case you want to modify the posts directory, you could override the nextein-plugin-source-fs configuration as follows:
module.exports = withNextein({
nextein: {
plugins: [
['nextein-plugin-source-fs', { path: 'entries' }]
]
},
// more config here....
})
If no id is defined in the plugin configuration, it will override a previous definition.