/
next.config.js
39 lines (37 loc) · 1.08 KB
/
next.config.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
/* eslint-disable global-require */
/* eslint-disable @typescript-eslint/no-var-requires */
const withPlugins = require('next-compose-plugins');
// const rehypePrism = require('@mapbox/rehype-prism');
const images = require('remark-images');
const emoji = require('remark-emoji');
const readingTime = require('reading-time');
const mdxPrism = require('mdx-prism');
const withMdxEnhanced = require('next-mdx-enhanced');
// const withMDX = require('@zeit/next-mdx')({
// // parse mdx files
// extension: /\.mdx?$/,
// options: {
// remarkPlugins: [images, emoji],
// rehypePlugins: [rehypePrism],
// },
// });
module.exports = withPlugins([
withMdxEnhanced({
layoutPath: 'layouts',
defaultLayout: true,
remarkPlugins: [
require('remark-autolink-headings'),
require('remark-slug'),
require('remark-code-titles'),
images,
emoji,
],
rehypePlugins: [mdxPrism],
extendFrontMatter: {
process: (mdxContent) => ({
wordCount: mdxContent.split(/\s+/gu).length,
readingTime: readingTime(mdxContent),
}),
},
}),
]);