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 +++++---- src/styles/components/_home-banner.scss | 4 +-- src/ui/components/ReleaseCard.tsx | 28 ++++++++++-------- 7 files changed, 95 insertions(+), 72 deletions(-) create mode 100644 src/pages/pkg/corvos.ts delete mode 100644 src/pages/pkg/corvos@[version].ts (limited to 'src') 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, + }); } }); diff --git a/src/styles/components/_home-banner.scss b/src/styles/components/_home-banner.scss index 660cd9b..59dd255 100644 --- a/src/styles/components/_home-banner.scss +++ b/src/styles/components/_home-banner.scss @@ -12,7 +12,7 @@ @include bem.component("home-banner") { @include bem.elem("intro") { margin-block-start: 0; - font-size: clamp(props.get(iro.$core--font-size--500), 5.3vw, 5rem); + font-size: clamp(props.get(iro.$core--font-size--800), 4.4vw, 4.2rem); font-weight: 300; color: props.get(iro.$core--theme, --text); line-height: 1.2; @@ -28,7 +28,7 @@ @include iro.media--media("<=md") { @include bem.elem("intro") { - font-size: props.get(iro.$core--font-size--500); + font-size: props.get(iro.$core--font-size--800); } @include bem.elem("buttons") { diff --git a/src/ui/components/ReleaseCard.tsx b/src/ui/components/ReleaseCard.tsx index bffe256..5b7b346 100644 --- a/src/ui/components/ReleaseCard.tsx +++ b/src/ui/components/ReleaseCard.tsx @@ -13,6 +13,18 @@ export type Props = CardProps<"a"> & { }; export const ReleaseCard = ({ "heading-level": headingLevel, page, ...props }: Props) => { + const time = ( +
  • + +
  • + ); + return ( {page.data.title} + + +
      {time}
    +
    -
      -
    • - -
    • -
    +
      {time}
    ); -- cgit v1.3.1