62 lines
1.7 KiB
TypeScript
62 lines
1.7 KiB
TypeScript
import { defineCollection } from "astro:content";
|
|
import { z } from "astro/zod";
|
|
|
|
import { extendedGlob } from "./loaders/extended-glob";
|
|
import { glob } from "astro/loaders";
|
|
|
|
const blog = defineCollection({
|
|
loader: extendedGlob({
|
|
pattern: "**/*.(md|mdx|gmi|html)",
|
|
base: "./src/content/blog",
|
|
postprocessSlug: (slug: string) => slug.replaceAll(/^capsule-longlog\//g, ""),
|
|
ignore: [
|
|
"capsule-longlog/index.gmi",
|
|
/* Some blog posts were ported to gemtext. Don't port them back again:
|
|
* that would lead to duplicates! The originals are likely to be better
|
|
* anyway, as MD/MDX are richer languages. */
|
|
"**/2024-01-14.gmi",
|
|
"**/2024-01-29.gmi",
|
|
"**/2024-03-30.gmi",
|
|
"**/2024-04-10.gmi",
|
|
"**/2024-04-11.gmi",
|
|
"**/2024-04-14.gmi",
|
|
"**/2024-05-02.gmi",
|
|
"**/2024-06-13.gmi",
|
|
"**/2024-07-08.gmi",
|
|
"**/2024-07-16.gmi",
|
|
"**/2024-12-17.gmi",
|
|
"**/2025-01-19.gmi",
|
|
"**/2025-01-24.gmi",
|
|
"**/2025-01-28.gmi",
|
|
"**/2025-05-02.gmi",
|
|
"**/2025-05-04.gmi",
|
|
"**/2025-06-23.gmi",
|
|
"**/2025-07-03.gmi",
|
|
"**/2025-09-18.gmi",
|
|
"**/2025-09-24.gmi",
|
|
"**/2025-10-05.gmi",
|
|
"**/2025-10-09.gmi",
|
|
"**/2025-12-11.gmi",
|
|
"**/2026-02-16.gmi",
|
|
"**/2026-03-04.gmi",
|
|
],
|
|
}),
|
|
schema: z.object({
|
|
title: z.string(),
|
|
hidden: z.optional(z.boolean()),
|
|
description: z.optional(z.string()),
|
|
pubDate: z.optional(z.date()),
|
|
updatedDate: z.optional(z.date()),
|
|
}),
|
|
});
|
|
|
|
const microlog = defineCollection({
|
|
loader: glob({
|
|
pattern: "**/*.gmi",
|
|
base: "./src/content/microlog",
|
|
generateId: ({ entry }) => entry.replace(/\.gmi$/, ""),
|
|
}),
|
|
});
|
|
|
|
export const collections = { blog, microlog };
|