-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy path_config.ts
More file actions
64 lines (61 loc) · 1.93 KB
/
_config.ts
File metadata and controls
64 lines (61 loc) · 1.93 KB
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
import lume from "lume/mod.ts";
import { domain } from "./src/_data.ts";
import { Data, Page } from "lume/core/file.ts";
import jsx from "lume/plugins/jsx.ts";
import nav from "lume/plugins/nav.ts";
import metas from "lume/plugins/metas.ts";
import robots from "lume/plugins/robots.ts";
import jsonLd from "lume/plugins/json_ld.ts";
import sitemap from "lume/plugins/sitemap.ts";
import postcss from "lume/plugins/postcss.ts";
import favicon from "lume/plugins/favicon.ts";
import ogImages from "lume/plugins/og_images.ts";
import checkUrls from "lume/plugins/check_urls.ts";
import modifyUrls from "lume/plugins/modify_urls.ts";
import tailwindcss from "lume/plugins/tailwindcss.ts";
import lightningCss from "lume/plugins/lightningcss.ts";
const site = lume({ src: "./src", location: new URL(domain) })
.use(jsx())
.use(nav())
.use(robots())
.use(favicon({
input: "/public/favicon.png",
}))
.use(sitemap({
query: "type=page isRedirect!=true",
}))
.use(ogImages())
.use(metas()) // Note: The Metas plugin needs to be added after the OG Images plugin.
.use(jsonLd())
.use(tailwindcss({
options: {
theme: {
extend: {
animation: {
"gradient": "gradient 8s linear infinite",
},
keyframes: {
"gradient": {
to: { "background-position": "200% center" },
},
},
},
},
},
}))
.use(postcss()) // Note: The PostCSS plugin needs to be added after the Tailwind CSS plugin.
.use(modifyUrls({
extensions: [".html"],
fn: (url: string, page: Page<Data>) => {
if (url.startsWith("http")) {
const link = page.document?.querySelector(`a[href="${url}"]`);
if (link) link.setAttribute("target", "_blank");
}
return url;
},
}))
.use(lightningCss())
.use(checkUrls())
// TODO: Remove once `satori.tsx` is updated.
.copy("public/og-image.png", "index.png");
export default site;