update lume config

pyrox.dev 4f34bffd 9110836b

verified
Changed files
+141 -94
+141 -94
_config.ts
···
import lume from "lume/mod.ts";
import brotli from "lume/plugins/brotli.ts";
+
import date from "lume/plugins/date.ts";
import feed from "lume/plugins/feed.ts";
-
import lightningcss from "lume/plugins/lightningcss.ts";
import metas from "lume/plugins/metas.ts";
-
import nav from "lume/plugins/nav.ts";
import picture from "lume/plugins/picture.ts";
-
import postcss from "lume/plugins/postcss.ts";
-
import purgecss from "lume/plugins/purgecss.ts";
import relations from "lume/plugins/relations.ts";
import robots from "lume/plugins/robots.ts";
import sitemap from "lume/plugins/sitemap.ts";
import slugify_urls from "lume/plugins/slugify_urls.ts";
import source_maps from "lume/plugins/source_maps.ts";
import svgo from "lume/plugins/svgo.ts";
-
import tailwindcss from "lume/plugins/tailwindcss.ts";
import toml from "lume/plugins/toml.ts";
import transform_images from "lume/plugins/transform_images.ts";
+
// Markdown-it plugins
+
import md_linenums from "npm:markdown-it-inject-linenumbers@0.3.0";
+
+
// CSS
+
// // Base dependencies
+
import tailwindcss from "lume/plugins/tailwindcss.ts";
+
import postcss from "lume/plugins/postcss.ts";
import catppuccin from "npm:@catppuccin/tailwindcss";
+
// // Fonts
+
import googleFonts from "lume/plugins/google_fonts.ts";
+
// // Optimization
+
import lightningcss from "lume/plugins/lightningcss.ts";
+
import purgecss from "lume/plugins/purgecss.ts";
// Disabled Plugins:
// import minify_html from "lume/plugins/minify_html.ts";
// import og_images from "lume/plugins/og_images.ts";
// import pagefind from "lume/plugins/pagefind.ts";
// import sri from "lume/plugins/sri.ts";
+
// import nav from "lume/plugins/nav.ts";
// To Add:
// https://deno.land/x/lume_markdown_plugins@v0.8.0 (toc and footnotes plugins)
// https://deno.land/x/lume_shiki@0.0.16
-
const site = lume({
-
src: "./src",
-
location: new URL("https://blog.pyrox.dev"),
-
});
+
const mdConfig = {
+
plugins: [md_linenums],
+
};
+
+
const site = lume(
+
{
+
src: "./src",
+
location: new URL("https://blog.pyrox.dev"),
+
},
+
{ mdConfig },
+
);
site.loadAssets([".css"]);
site.copy([".woff2"]);
···
// keep_spaces_between_attributes: true
// }
// }));
-
site.use(nav());
site.use(picture());
site.use(transform_images());
site.use(relations());
···
site.use(slugify_urls());
site.use(svgo());
site.use(toml());
+
site.use(
+
date({
+
formats: {
+
SHORT_DATE: "yyyy-MM-dd",
+
POST_DATE: "dd MMM, yyyy",
+
},
+
}),
+
);
// Tailwind CSS
-
site.use(tailwindcss({
-
extensions: [".html", ".vto"],
-
options: {
-
plugins: [catppuccin],
-
safelist: ['latte']
-
}
-
}))
-
site.use(postcss())
+
site.use(
+
tailwindcss({
+
options: {
+
plugins: [catppuccin],
+
theme: {
+
fontFamily: {
+
sans: ["Inter", "ui-sans-serif", "system-ui", "sans-serif"],
+
serif: ["IBM Plex Serif", "ui-serif", "serif"],
+
},
+
},
+
},
+
}),
+
);
+
site.use(postcss());
+
+
// Fonts
+
site.use(
+
googleFonts({
+
subsets: ["latin", "latin-ext"],
+
folder: "/static/fonts/",
+
cssFile: "/static/fonts.css",
+
fonts:
+
"https://fonts.googleapis.com/css2?family=IBM+Plex+Serif:ital,wght@0,100;0,200;0,300;0,400;0,500;0,600;0,700;1,100;1,200;1,300;1,400;1,500;1,600;1,700&family=Inter:ital,opsz,wght@0,14..32,100..900;1,14..32,100..900",
+
}),
+
);
// RSS/JSON Feed Generation
-
site.use(feed({
-
output: ["/blog.rss", "/blog.json"],
-
query: "type=blog",
-
sort: "date=desc",
-
info: {
-
title: "dish blog",
-
description: "dish's thoughts on many things",
-
published: new Date(),
-
lang: "en",
-
generator: true,
-
authorName: "dish",
-
authorUrl: "https://blog.pyrox.dev",
-
},
-
items: {
-
title: "=title",
-
description: "=summary",
-
published: "=published",
-
updated: "=updated || undefined",
-
content: "=children",
-
lang: "=lang",
-
image: "=banner",
-
authorName: "=author.name",
-
authorUrl: "=author.url",
-
},
-
}));
+
site.use(
+
feed({
+
output: ["/blog.rss", "/blog.json"],
+
query: "category=blog",
+
info: {
+
title: "dish blog",
+
description: "dish's thoughts on many things",
+
published: new Date(),
+
lang: "en",
+
generator: true,
+
authorName: "dish",
+
authorUrl: "https://blog.pyrox.dev",
+
},
+
items: {
+
title: "=title",
+
description: "=summary",
+
published: "=published",
+
updated: "=updated",
+
content: "$.e-content",
+
lang: "=lang",
+
image: "=banner",
+
authorName: "=author.name",
+
authorUrl: "=author.url",
+
},
+
}),
+
);
// CSS postprocessing
-
site.use(purgecss())
-
site.use(lightningcss({
-
options: {
-
minify: true,
-
bundle: false,
-
}
-
}));
+
site.use(purgecss());
+
site.use(
+
lightningcss({
+
options: {
+
minify: true,
+
bundle: false,
+
},
+
}),
+
);
// Source Map Generation
site.use(source_maps());
// Compress everything with Brotli
-
site.use(brotli({
-
extensions: [
-
".html",
-
".css",
-
".js",
-
".mjs",
-
".svg",
-
".json",
-
".xml",
-
".txt",
-
".rss",
-
".map"
-
]
-
}));
+
site.use(
+
brotli({
+
extensions: [
+
".html",
+
".css",
+
".js",
+
".mjs",
+
".svg",
+
".json",
+
".xml",
+
".txt",
+
".rss",
+
".map",
+
],
+
}),
+
);
// robots.txt generation
-
site.use(robots({
-
disallow: [
-
"AI2Bot",
-
"Amazonbot",
-
"Applebot-Extended",
-
"Bytespider",
-
"ChatGPT-User",
-
"ClaudeBot",
-
"Diffbot",
-
"DuckAssistBot",
-
"FacebookBot",
-
"GPTBot",
-
"Google-Extended",
-
"Meta-ExternalAgent",
-
"Meta-ExternalFetcher",
-
"OAI-SearchBot",
-
"Operator",
-
"PanguBot",
-
"PerplexityBot",
-
"SemrushBot",
-
"SemrushBot-OCOB",
-
"Timpibot",
-
"Webzio-Extended",
-
"YouBot",
-
"cohere-training-data-crawler",
-
"omgili",
-
"t3versions",
-
]
-
}));
+
site.use(
+
robots({
+
disallow: [
+
"AI2Bot",
+
"Amazonbot",
+
"Applebot-Extended",
+
"Bytespider",
+
"ChatGPT-User",
+
"ClaudeBot",
+
"Diffbot",
+
"DuckAssistBot",
+
"FacebookBot",
+
"GPTBot",
+
"Google-Extended",
+
"Meta-ExternalAgent",
+
"Meta-ExternalFetcher",
+
"OAI-SearchBot",
+
"Operator",
+
"PanguBot",
+
"PerplexityBot",
+
"SemrushBot",
+
"SemrushBot-OCOB",
+
"Timpibot",
+
"Webzio-Extended",
+
"YouBot",
+
"cohere-training-data-crawler",
+
"omgili",
+
"t3versions",
+
],
+
}),
+
);
// Copy .well-known to site root
-
site.copy("static/.well-known", ".well-known")
+
site.copy("static/.well-known", ".well-known");
// Get current commit as a version number
// Taken from https://github.com/pixeldesu/pixelde.su/blob/main/_config.ts