-
-
Notifications
You must be signed in to change notification settings - Fork 3
/
Copy pathnext.config.mjs
50 lines (45 loc) · 1.49 KB
/
next.config.mjs
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
40
41
42
43
44
45
46
47
48
49
50
import createMDX from '@next/mdx';
import createNextIntlPlugin from 'next-intl/plugin';
import available from "./lib/locales/available.js";
import remarkGfm from 'remark-gfm';
import rehypePrettyCode from "rehype-pretty-code";
import rehypeSlug from "rehype-slug";
import { withContentlayer } from "next-contentlayer";
const withNextIntl = createNextIntlPlugin(
'./components/i18n/request.tsx'
);
const intlMatcher = available.getLanguagePaths().join('|');
/** @type {import('next').NextConfig} */
const nextConfig = {
pageExtensions: ['js', 'jsx', 'md', 'mdx', 'ts', 'tsx'],
images: {
remotePatterns: [{ hostname: 'media.forgecdn.net' }, { hostname: 'cdn.modrinth.com' }]
},
async headers() {
return [
{
source: `/((?:${intlMatcher})/)?(mod|project|about)/:path*`,
headers: [
{
key: 'Cache-Control',
value: 's-maxage=604800, stale-while-revalidate=86400',
},
{
key: 'CDN-Cache-Control',
value: 's-maxage=31536000, stale-while-revalidate=86400',
}
]
}
]
}
};
const withMDX = createMDX({
options: {
remarkPlugins: [remarkGfm],
rehypePlugins: [
[rehypePrettyCode, { theme: 'plastic' }],
rehypeSlug
]
}
})
export default withContentlayer(withNextIntl(withMDX(nextConfig)));