From 25ba731173314e3dee48a0b4671f38ba4018564d Mon Sep 17 00:00:00 2001 From: Volpeon Date: Thu, 23 Jul 2026 18:04:38 +0200 Subject: Use Corvos 0.1.3 --- src/pages/index.tsx | 7 +++---- src/pages/releases/[version].tsx | 6 ++---- src/pages/releases/feed.ts | 7 +++---- src/pages/releases/index.tsx | 7 +++---- src/pages/sitemap.ts | 4 ++-- src/ui/base/BaseLayout.tsx | 23 +++++++++++------------ src/ui/components/SiteFooter.tsx | 2 +- 7 files changed, 25 insertions(+), 31 deletions(-) (limited to 'src') diff --git a/src/pages/index.tsx b/src/pages/index.tsx index 0ade408..52d54e2 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -10,10 +10,9 @@ import { Heading } from "$/ui/objects/Heading.tsx"; import { Icon } from "$/ui/objects/Icon.tsx"; import site from "@/corvos.config.ts"; -export const template = site.$.template({ type: "home" }, (page, pages) => { - const query = site.$.query(pages); - const releasesIndex = query.type(".html").match({ type: "releases-index" }).one(); - const releases = query.type(".html").match({ type: "release" }).many().toArray(); +export const template = site.$.template({ type: "home" }, async (page, pages) => { + const releasesIndex = await pages.type(".html").match({ type: "releases-index" }).one(); + const releases = await pages.type(".html").match({ type: "release" }).array(); return ( diff --git a/src/pages/releases/[version].tsx b/src/pages/releases/[version].tsx index 16f1ba5..35a9834 100644 --- a/src/pages/releases/[version].tsx +++ b/src/pages/releases/[version].tsx @@ -31,10 +31,8 @@ export const pages = site.$.pageGenerator(async function* () { } }); -export const template = site.$.template({ type: "release" }, (page, pages) => { - const query = site.$.query(pages); - - const feed = query.type(".rss").match({ type: "releases" }).one(); +export const template = site.$.template({ type: "release" }, async (page, pages) => { + const feed = await pages.type(".rss").match({ type: "releases" }).one(); return ( ({ title: page.data.title, url: page.url, diff --git a/src/pages/releases/index.tsx b/src/pages/releases/index.tsx index 9e5a3db..30e4f5d 100644 --- a/src/pages/releases/index.tsx +++ b/src/pages/releases/index.tsx @@ -9,10 +9,9 @@ import { Icon } from "$/ui/objects/Icon.tsx"; import { PlaceholderBox } from "$/ui/objects/PlaceholderBox.tsx"; import site from "@/corvos.config.ts"; -export const template = site.$.template({ type: "releases-index" }, (page, pages) => { - const query = site.$.query(pages); - const items = query.type(".html").match({ type: "release" }).many().toArray(); - const feed = query.type(".rss").match({ type: "releases" }).one(); +export const template = site.$.template({ type: "releases-index" }, async (page, pages) => { + const items = await pages.type(".html").match({ type: "release" }).array(); + const feed = await pages.type(".rss").match({ type: "releases" }).one(); return ( diff --git a/src/pages/sitemap.ts b/src/pages/sitemap.ts index 378a9ed..7aadf5e 100644 --- a/src/pages/sitemap.ts +++ b/src/pages/sitemap.ts @@ -1,7 +1,7 @@ import site from "@/corvos.config.ts"; -export const sitemap = site.$.sitemap((pages) => ({ - items: pages.map((page) => ({ +export const sitemap = site.$.sitemap(async (pages) => ({ + items: await pages.array((page) => ({ loc: page.url, lastmod: page.data.modifiedAt, })), diff --git a/src/ui/base/BaseLayout.tsx b/src/ui/base/BaseLayout.tsx index 2fb999d..617bb99 100644 --- a/src/ui/base/BaseLayout.tsx +++ b/src/ui/base/BaseLayout.tsx @@ -1,4 +1,5 @@ -// @ts-types="corvos/mod.ts" +import type { Query } from "corvos/mod.ts"; + import { getGenerator, type Select } from "corvos/mod.ts"; import site from "@/corvos.config.ts"; @@ -9,7 +10,7 @@ import { Lightbox } from "../objects/Lightbox.tsx"; export interface Props { page: Select; - pages: readonly Select[]; + pages: Query>; image?: string; theme?: "l1" | "l2" | null; children?: JSX.Element; @@ -24,17 +25,15 @@ export const BaseLayout = async ({ children, class: cls, }: Props) => { - const query = site.$.query(pages); - - const stylesheet = await site.load("styles/style.scss"); - const script = await site.load("scripts/script.ts"); - const fonts = await site.glob("assets/**.woff2"); - const favicon = await site.load("assets/favicon.svg"); - const image = await site.load( - imageUrl ?? "https://strapi.volpeon.ink/uploads/icon_7999cf625e.png", - ); + const stylesheet = await site.load("styles/style.scss").one(); + const script = await site.load("scripts/script.ts").one(); + const fonts = await site.glob("assets/**.woff2").array(); + const favicon = await site.load("assets/favicon.svg").one(); + const image = await site + .load(imageUrl ?? "https://strapi.volpeon.ink/uploads/icon_7999cf625e.png") + .one(); - const feeds = query.type(".rss").many(); + const feeds = await pages.type(".rss").array(); return ( <> diff --git a/src/ui/components/SiteFooter.tsx b/src/ui/components/SiteFooter.tsx index 8bada2e..9accfbe 100644 --- a/src/ui/components/SiteFooter.tsx +++ b/src/ui/components/SiteFooter.tsx @@ -5,7 +5,7 @@ import { Divider } from "../objects/Divider.tsx"; import { Logo } from "./Logo.tsx"; export const SiteFooter = async () => { - const symbols = await site.load("assets/symbols.svg"); + const symbols = await site.load("assets/symbols.svg").one(); return (