-
Notifications
You must be signed in to change notification settings - Fork 0
/
nuxt.config.js
112 lines (103 loc) · 2.27 KB
/
nuxt.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
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
const createFeedItems = async function (feed, args) {
const [file] = args;
feed.options = {
title: `Boka's Solutions`,
link: `https://blog.bokasolutions.com/${file}`,
description: process.env.npm_package_description || "",
};
const { $content } = require("@nuxt/content");
const posts = await $content("blog-posts")
.where({ draft: false })
.sortBy("date", "desc")
.fetch();
posts.forEach(async (post) => {
feed.addItem({
title: post.title,
date: new Date(post.updatedAt),
id: post.slug,
link: `https://blog.bokasolutions.com/posts/${post.slug}`,
});
});
feed.addCategory("Web Development");
feed.addContributor({
name: "Wayne Boka",
email: "wayne+blog@bokasolutions.com",
link: "https://www.bokasolutions.com",
});
}
export default {
target: "static",
head: {
titleTemplate: (titleChunk) =>
titleChunk ? `${titleChunk} - Boka's Solutions` : `Boka's Solutions`,
},
meta: [
{ charset: "utf-8" },
{ name: "viewport", content: "width=device-width, initial-scale=1" },
{
hid: "description",
name: "description",
content: process.env.npm_package_description || "",
},
],
link: [{ rel: "icon", type: "image/png", href: "/images/wb.png" }],
modules: ["@nuxt/content", "@nuxtjs/sitemap", "@nuxtjs/feed"],
buildModules: [
"@nuxtjs/tailwindcss",
[
"@nuxtjs/google-fonts",
{
display: "swap",
families: {
Boogaloo: true,
Nunito: true,
},
},
],
"@nuxtjs/pwa",
],
css: [],
components: true,
sitemap: {
hostname: "https://blog.bokasolutions.com",
gzip: true,
routes: async () => {
const { $content } = require("@nuxt/content");
const posts = await $content("blog-posts")
.where({ draft: false })
.only(["slug"])
.sortBy("date", "desc")
.fetch();
return posts.map((p) => `/posts/${p.slug}`);
},
xslUrl: "sitemap.xsl",
},
feed: [
{
path: "atom.xml",
create: createFeedItems,
cacheTime: 1000 * 60 * 15,
type: "atom1",
data: ['atom.xml']
},
{
path: "feed.json",
create: createFeedItems,
cacheTime: 1000 * 60 * 15,
type: "json1",
data: ['feed.json']
},
{
path: "rss.xml",
create: createFeedItems,
cacheTime: 1000 * 60 * 15,
type: "rss2",
data: ['rss.xml']
},
],
pwa: {
meta: {
theme_color: "#2c7a7b",
},
},
};