summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorVolpeon <git@volpeon.ink>2026-07-23 18:04:38 +0200
committerVolpeon <git@volpeon.ink>2026-07-23 18:04:38 +0200
commit25ba731173314e3dee48a0b4671f38ba4018564d (patch)
tree6d7b9d4eec8e4727031032795f7dec733c4609ff
parentRemove uses of removed component helper (diff)
downloadcorvos-website-25ba731173314e3dee48a0b4671f38ba4018564d.tar.gz
corvos-website-25ba731173314e3dee48a0b4671f38ba4018564d.tar.bz2
corvos-website-25ba731173314e3dee48a0b4671f38ba4018564d.zip
Use Corvos 0.1.3
-rw-r--r--corvos.config.ts4
-rw-r--r--deno.json6
-rw-r--r--src/pages/index.tsx7
-rw-r--r--src/pages/releases/[version].tsx6
-rw-r--r--src/pages/releases/feed.ts7
-rw-r--r--src/pages/releases/index.tsx7
-rw-r--r--src/pages/sitemap.ts4
-rw-r--r--src/ui/base/BaseLayout.tsx23
-rw-r--r--src/ui/components/SiteFooter.tsx2
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";
15import { markdown } from "corvos/plugins/markdown.ts"; 15import { markdown } from "corvos/plugins/markdown.ts";
16import { mdx } from "corvos/plugins/mdx.ts"; 16import { mdx } from "corvos/plugins/mdx.ts";
17import { modules } from "corvos/plugins/modules.ts"; 17import { modules } from "corvos/plugins/modules.ts";
18import { queryBuilder } from "corvos/plugins/query_builder.ts";
19import { sass } from "corvos/plugins/sass.ts"; 18import { sass } from "corvos/plugins/sass.ts";
20import { sitemap } from "corvos/plugins/sitemap.ts"; 19import { sitemap } from "corvos/plugins/sitemap.ts";
21import { templates } from "corvos/plugins/templates.ts"; 20import { templates } from "corvos/plugins/templates.ts";
@@ -50,9 +49,6 @@ const assetPipeline = Pipeline.create()
50 .use(gzip()); 49 .use(gzip());
51 50
52const pagePipeline = Pipeline.create() 51const pagePipeline = Pipeline.create()
53 // Helpers
54 .use(queryBuilder())
55
56 // Content 52 // Content
57 .use(modules<Page<".strapi", Node[], PageData> | Page<".", Uint8Array<ArrayBuffer>>>()) 53 .use(modules<Page<".strapi", Node[], PageData> | Page<".", Uint8Array<ArrayBuffer>>>())
58 .use(markdown({ frontmatterSchema: pageDataSchema })) 54 .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 @@
5 "@/corvos.config.ts": "./corvos.config.ts", 5 "@/corvos.config.ts": "./corvos.config.ts",
6 "@zip-js/zip-js": "jsr:@zip-js/zip-js@^2.8.26", 6 "@zip-js/zip-js": "jsr:@zip-js/zip-js@^2.8.26",
7 "arktype": "npm:arktype@2.2.3", 7 "arktype": "npm:arktype@2.2.3",
8 "corvos": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/mod.ts", 8 "corvos": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/mod.ts",
9 "corvos/": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/", 9 "corvos/": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/",
10 "corvos/jsx-runtime": "https://corvos.wyvern.rip/pkg/corvos@0.1.2/jsx-runtime.ts", 10 "corvos/jsx-runtime": "https://corvos.wyvern.rip/pkg/corvos@0.1.3/jsx-runtime.ts",
11 "include-media/": "https://raw.githubusercontent.com/eduardoboucas/include-media/refs/heads/master/", 11 "include-media/": "https://raw.githubusercontent.com/eduardoboucas/include-media/refs/heads/master/",
12 "iro-sass/": "https://git.wyvern.rip/iro-sass/plain/src/", 12 "iro-sass/": "https://git.wyvern.rip/iro-sass/plain/src/",
13 "iro-design/": "https://git.wyvern.rip/iro-design/plain/src/", 13 "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";
10import { Icon } from "$/ui/objects/Icon.tsx"; 10import { Icon } from "$/ui/objects/Icon.tsx";
11import site from "@/corvos.config.ts"; 11import site from "@/corvos.config.ts";
12 12
13export const template = site.$.template({ type: "home" }, (page, pages) => { 13export const template = site.$.template({ type: "home" }, async (page, pages) => {
14 const query = site.$.query(pages); 14 const releasesIndex = await pages.type(".html").match({ type: "releases-index" }).one();
15 const releasesIndex = query.type(".html").match({ type: "releases-index" }).one(); 15 const releases = await pages.type(".html").match({ type: "release" }).array();
16 const releases = query.type(".html").match({ type: "release" }).many().toArray();
17 16
18 return ( 17 return (
19 <BaseLayout page={page} pages={pages}> 18 <BaseLayout page={page} pages={pages}>
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* () {
31 } 31 }
32}); 32});
33 33
34export const template = site.$.template({ type: "release" }, (page, pages) => { 34export const template = site.$.template({ type: "release" }, async (page, pages) => {
35 const query = site.$.query(pages); 35 const feed = await pages.type(".rss").match({ type: "releases" }).one();
36
37 const feed = query.type(".rss").match({ type: "releases" }).one();
38 36
39 return ( 37 return (
40 <SplitLayout 38 <SplitLayout
diff --git a/src/pages/releases/feed.ts b/src/pages/releases/feed.ts
index b430ca5..46070b1 100644
--- a/src/pages/releases/feed.ts
+++ b/src/pages/releases/feed.ts
@@ -2,12 +2,11 @@ import type { FeedItem } from "corvos/plugins/feeds.ts";
2 2
3import site from "@/corvos.config.ts"; 3import site from "@/corvos.config.ts";
4 4
5export const feeds = site.$.feedGenerator(function* (pages) { 5export const feeds = site.$.feedGenerator(async function* (pages) {
6 const items = site.$.query(pages) 6 const items = await pages
7 .match({ type: "release" }) 7 .match({ type: "release" })
8 .many()
9 .take(20) 8 .take(20)
10 .map( 9 .array(
11 (page): FeedItem => ({ 10 (page): FeedItem => ({
12 title: page.data.title, 11 title: page.data.title,
13 url: page.url, 12 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";
9import { PlaceholderBox } from "$/ui/objects/PlaceholderBox.tsx"; 9import { PlaceholderBox } from "$/ui/objects/PlaceholderBox.tsx";
10import site from "@/corvos.config.ts"; 10import site from "@/corvos.config.ts";
11 11
12export const template = site.$.template({ type: "releases-index" }, (page, pages) => { 12export const template = site.$.template({ type: "releases-index" }, async (page, pages) => {
13 const query = site.$.query(pages); 13 const items = await pages.type(".html").match({ type: "release" }).array();
14 const items = query.type(".html").match({ type: "release" }).many().toArray(); 14 const feed = await pages.type(".rss").match({ type: "releases" }).one();
15 const feed = query.type(".rss").match({ type: "releases" }).one();
16 15
17 return ( 16 return (
18 <BaseLayout page={page} pages={pages}> 17 <BaseLayout page={page} pages={pages}>
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 @@
1import site from "@/corvos.config.ts"; 1import site from "@/corvos.config.ts";
2 2
3export const sitemap = site.$.sitemap((pages) => ({ 3export const sitemap = site.$.sitemap(async (pages) => ({
4 items: pages.map((page) => ({ 4 items: await pages.array((page) => ({
5 loc: page.url, 5 loc: page.url,
6 lastmod: page.data.modifiedAt, 6 lastmod: page.data.modifiedAt,
7 })), 7 })),
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 @@
1// @ts-types="corvos/mod.ts" 1import type { Query } from "corvos/mod.ts";
2
2import { getGenerator, type Select } from "corvos/mod.ts"; 3import { getGenerator, type Select } from "corvos/mod.ts";
3 4
4import site from "@/corvos.config.ts"; 5import site from "@/corvos.config.ts";
@@ -9,7 +10,7 @@ import { Lightbox } from "../objects/Lightbox.tsx";
9 10
10export interface Props { 11export interface Props {
11 page: Select<typeof site, ".html">; 12 page: Select<typeof site, ".html">;
12 pages: readonly Select<typeof site>[]; 13 pages: Query<Select<typeof site>>;
13 image?: string; 14 image?: string;
14 theme?: "l1" | "l2" | null; 15 theme?: "l1" | "l2" | null;
15 children?: JSX.Element; 16 children?: JSX.Element;
@@ -24,17 +25,15 @@ export const BaseLayout = async ({
24 children, 25 children,
25 class: cls, 26 class: cls,
26}: Props) => { 27}: Props) => {
27 const query = site.$.query(pages); 28 const stylesheet = await site.load("styles/style.scss").one();
28 29 const script = await site.load("scripts/script.ts").one();
29 const stylesheet = await site.load("styles/style.scss"); 30 const fonts = await site.glob("assets/**.woff2").array();
30 const script = await site.load("scripts/script.ts"); 31 const favicon = await site.load("assets/favicon.svg").one();
31 const fonts = await site.glob("assets/**.woff2"); 32 const image = await site
32 const favicon = await site.load("assets/favicon.svg"); 33 .load(imageUrl ?? "https://strapi.volpeon.ink/uploads/icon_7999cf625e.png")
33 const image = await site.load( 34 .one();
34 imageUrl ?? "https://strapi.volpeon.ink/uploads/icon_7999cf625e.png",
35 );
36 35
37 const feeds = query.type(".rss").many(); 36 const feeds = await pages.type(".rss").array();
38 37
39 return ( 38 return (
40 <> 39 <>
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";
5import { Logo } from "./Logo.tsx"; 5import { Logo } from "./Logo.tsx";
6 6
7export const SiteFooter = async () => { 7export const SiteFooter = async () => {
8 const symbols = await site.load("assets/symbols.svg"); 8 const symbols = await site.load("assets/symbols.svg").one();
9 9
10 return ( 10 return (
11 <footer class="c-site-footer"> 11 <footer class="c-site-footer">