From 06d90b6413c494741d95ad3f8682718853534570 Mon Sep 17 00:00:00 2001 From: z0x Date: Fri, 17 Jan 2025 20:36:33 -0500 Subject: [PATCH] fix(index): :art: fix TOC, add Nunito font --- bun.lockb | Bin 245116 -> 244748 bytes package.json | 11 +++++---- src/components/Head.astro | 24 +------------------- src/components/TableOfContents.astro | 2 +- src/components/TableOfContentsHeading.astro | 4 ++-- src/layouts/Layout.astro | 6 ++--- src/lib/utils.ts | 8 +++++++ tailwind.config.mjs | 3 +-- 8 files changed, 23 insertions(+), 35 deletions(-) diff --git a/bun.lockb b/bun.lockb index 59899d7d47f8f0e281e36fd8039ca94f90c051bc..efef766a6ea8edd6b59543cd8ab1fd2e0aaad9fa 100755 GIT binary patch delta 36340 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 delta 36836 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 WSN9b%jk&&0wA)( - {title} diff --git a/src/components/TableOfContents.astro b/src/components/TableOfContents.astro index dc89df2..28c3547 100644 --- a/src/components/TableOfContents.astro +++ b/src/components/TableOfContents.astro @@ -6,7 +6,7 @@ const toc = buildToc(headings); export interface Heading { depth: number; - id: string; + slug: string; text: string; } diff --git a/src/components/TableOfContentsHeading.astro b/src/components/TableOfContentsHeading.astro index bb4a591..c21bf63 100644 --- a/src/components/TableOfContentsHeading.astro +++ b/src/components/TableOfContentsHeading.astro @@ -1,12 +1,12 @@ --- -import Link from "./Link.astro"; import type { Heading } from "./TableOfContents.astro"; +import Link from "./Link.astro"; const { heading } = Astro.props; ---
  • - + {heading.text} { diff --git a/src/layouts/Layout.astro b/src/layouts/Layout.astro index a5cdc3e..e0b0bfa 100644 --- a/src/layouts/Layout.astro +++ b/src/layouts/Layout.astro @@ -4,14 +4,14 @@ import Head from "@components/Head.astro"; import { SITE } from "@consts"; type Props = { - title: string; - description: string; + title: string; + description: string; }; const { title, description } = Astro.props; --- - + diff --git a/src/lib/utils.ts b/src/lib/utils.ts index 39246bf..16fabfe 100644 --- a/src/lib/utils.ts +++ b/src/lib/utils.ts @@ -5,6 +5,14 @@ export function cn(...inputs: ClassValue[]) { return twMerge(clsx(inputs)); } +export function formatDate(date: Date) { + return Intl.DateTimeFormat("en-SE", { + year: "numeric", + month: "2-digit", + day: "2-digit", + }).format(date); +} + export function readingTime(html: string) { const textOnly = html.replace(/<[^>]+>/g, ""); const wordCount = textOnly.split(/\s+/).length; diff --git a/tailwind.config.mjs b/tailwind.config.mjs index fd16b4b..a9189e5 100644 --- a/tailwind.config.mjs +++ b/tailwind.config.mjs @@ -6,8 +6,7 @@ export default { theme: { extend: { fontFamily: { - sans: ["Geist Sans", ...defaultTheme.fontFamily.sans], - mono: ["Geist Mono", ...defaultTheme.fontFamily.mono], + sans: ["Nunito", ...defaultTheme.fontFamily.sans], }, }, },