From 7ab5640191ecf9e16e975d909a7cb7aa3468700b Mon Sep 17 00:00:00 2001 From: Volpeon Date: Wed, 22 Jul 2026 22:28:12 +0200 Subject: Update --- src/pages/index.mdx | 2 +- src/pages/index.tsx | 50 ++++++++++++++++++++++++++------------- src/pages/pkg/corvos.ts | 35 +++++++++++++++++++++++++++ src/pages/pkg/corvos@[version].ts | 35 --------------------------- src/pages/releases/[version].tsx | 13 +++++----- 5 files changed, 76 insertions(+), 59 deletions(-) create mode 100644 src/pages/pkg/corvos.ts delete mode 100644 src/pages/pkg/corvos@[version].ts (limited to 'src/pages') diff --git a/src/pages/index.mdx b/src/pages/index.mdx index 1d35a1d..7d73a54 100644 --- a/src/pages/index.mdx +++ b/src/pages/index.mdx @@ -7,4 +7,4 @@ description: "Project website of Corvos, a static site generator for Deno." import { template } from "./index.tsx"; export { template }; -Corvos is a Static Site Generator with the goal to provide a customizeable, type-safe experience. +It provides an easy-to-customize experience, designed to take full advantage of TypeScript's capabilities. diff --git a/src/pages/index.tsx b/src/pages/index.tsx index b1581b7..0cbc3f8 100644 --- a/src/pages/index.tsx +++ b/src/pages/index.tsx @@ -3,6 +3,7 @@ import { ReleaseCard } from "$/ui/components/ReleaseCard.tsx"; import { SiteHeader } from "$/ui/components/SiteHeader.tsx"; import { CardList } from "$/ui/layouts/CardList.tsx"; import { Container } from "$/ui/layouts/Container.tsx"; +import { HList } from "$/ui/layouts/HList.tsx"; import { Button } from "$/ui/objects/Button.tsx"; import { Divider } from "$/ui/objects/Divider.tsx"; import { Heading } from "$/ui/objects/Heading.tsx"; @@ -37,27 +38,42 @@ export const template = site.$.template({ type: "home" }, (page, pages) => {
{{ __html: page.content }}
-
- -
+ +
  • + +
  • + +
  • + +
  • +
    - - - {releases.map((page) => ( - - ))} - + + + + {releases.map((page) => ( + + ))} + + ); diff --git a/src/pages/pkg/corvos.ts b/src/pages/pkg/corvos.ts new file mode 100644 index 0000000..6dcb65a --- /dev/null +++ b/src/pages/pkg/corvos.ts @@ -0,0 +1,35 @@ +import * as zip from "@zip-js/zip-js"; +import { Page, PipelineStageError } from "corvos"; +import { binaryLoader } from "corvos/core/loaders/binary.ts"; + +import { strapiLoader } from "$/deps/strapi.tsx"; +import { releaseStrapiSchema } from "$/schemas/releases.ts"; +import site from "@/corvos.config.ts"; + +export const pages = site.$.pageGenerator(async function* () { + for await (const item of strapiLoader.loadCollection("corvos-releases", releaseStrapiSchema, { + "populate[0]": "files", + "sort[0]": "date:desc", + })) { + if (item instanceof PipelineStageError) { + yield item; + continue; + } + + const res = await binaryLoader(new URL(item.files.url)); + const reader = new zip.ZipReader(new zip.Uint8ArrayReader(res.content)); + + for await (const entry of reader.getEntriesGenerator()) { + if (entry.directory) { + continue; + } + + yield new Page( + ".", + new Uint8Array(await entry.arrayBuffer()), + { version: item.version }, + `/pkg/corvos@${item.version}/${entry.filename}`, + ); + } + } +}); diff --git a/src/pages/pkg/corvos@[version].ts b/src/pages/pkg/corvos@[version].ts deleted file mode 100644 index 6dcb65a..0000000 --- a/src/pages/pkg/corvos@[version].ts +++ /dev/null @@ -1,35 +0,0 @@ -import * as zip from "@zip-js/zip-js"; -import { Page, PipelineStageError } from "corvos"; -import { binaryLoader } from "corvos/core/loaders/binary.ts"; - -import { strapiLoader } from "$/deps/strapi.tsx"; -import { releaseStrapiSchema } from "$/schemas/releases.ts"; -import site from "@/corvos.config.ts"; - -export const pages = site.$.pageGenerator(async function* () { - for await (const item of strapiLoader.loadCollection("corvos-releases", releaseStrapiSchema, { - "populate[0]": "files", - "sort[0]": "date:desc", - })) { - if (item instanceof PipelineStageError) { - yield item; - continue; - } - - const res = await binaryLoader(new URL(item.files.url)); - const reader = new zip.ZipReader(new zip.Uint8ArrayReader(res.content)); - - for await (const entry of reader.getEntriesGenerator()) { - if (entry.directory) { - continue; - } - - yield new Page( - ".", - new Uint8Array(await entry.arrayBuffer()), - { version: item.version }, - `/pkg/corvos@${item.version}/${entry.filename}`, - ); - } - } -}); diff --git a/src/pages/releases/[version].tsx b/src/pages/releases/[version].tsx index 84d807a..262dac1 100644 --- a/src/pages/releases/[version].tsx +++ b/src/pages/releases/[version].tsx @@ -23,13 +23,14 @@ export const pages = site.$.pageGenerator(async function* () { })) { if (item instanceof PipelineStageError) { yield item; - } else { - yield new Page(".strapi", item.notes ?? [], { - ...item, - title: `Corvos ${item.version}`, - type: "release" as const, - }); + continue; } + + yield new Page(".strapi", item.notes ?? [], { + ...item, + title: `Corvos ${item.version}`, + type: "release" as const, + }); } }); -- cgit v1.3.1