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 --- corvos.config.ts | 4 ---- deno.json | 6 +++--- 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 +- 9 files changed, 28 insertions(+), 38 deletions(-) diff --git a/corvos.config.ts b/corvos.config.ts index b6cb6e7..fd9826c 100644 --- a/corvos.config.ts +++ b/corvos.config.ts @@ -15,7 +15,6 @@ import { jsx } from "corvos/plugins/jsx.ts"; import { markdown } from "corvos/plugins/markdown.ts"; import { mdx } from "corvos/plugins/mdx.ts"; import { modules } from "corvos/plugins/modules.ts"; -import { queryBuilder } from "corvos/plugins/query_builder.ts"; import { sass } from "corvos/plugins/sass.ts"; import { sitemap } from "corvos/plugins/sitemap.ts"; import { templates } from "corvos/plugins/templates.ts"; @@ -50,9 +49,6 @@ const assetPipeline = Pipeline.create() .use(gzip()); const pagePipeline = Pipeline.create() - // Helpers - .use(queryBuilder()) - // Content .use(modules | Page<".", Uint8Array>>()) .use(markdown({ frontmatterSchema: pageDataSchema })) diff --git a/deno.json b/deno.json index 31e46ba..59e5bed 100644 --- a/deno.json +++ b/deno.json @@ -5,9 +5,9 @@ "@/corvos.config.ts": "./corvos.config.ts", "@zip-js/zip-js": "jsr:@zip-js/zip-js@^2.8.26", "arktype": "npm:arktype@2.2.3", - "corvos": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/mod.ts", - "corvos/": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/", - "corvos/jsx-runtime": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/jsx-runtime.ts", + "corvos": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/mod.ts", + "corvos/": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/", + "corvos/jsx-runtime": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/jsx-runtime.ts", "include-media/": "https://raw.githubusercontent.com/eduardoboucas/include-media/refs/heads/master/", "iro-sass/": "https://git.wyvern.rip/iro-sass/plain/src/", "iro-design/": "https://git.wyvern.rip/iro-design/plain/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 (