summaryrefslogtreecommitdiff
path: root/website/src/content.config.ts
blob: 9514c9c16e35763fa65a0c91a6dedb6b8c37bb4f (plain)
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
import { defineCollection } from "astro:content";
import { z } from "astro/zod";

import { extendedGlob } from "./loaders/extended-glob";

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()),
  }),
});

export const collections = { blog };