Personal website and blog, built with Astro and Tailwind CSS v4. Deployed on Cloudflare Pages.
- Home (
/) — personal introduction, article timeline, skill/device panels, seasonal gallery, and music showcase - Blog (
/posts) — markdown articles with category filtering, RSS feed, and Disqus comments - Friends (
/friends) — curated links to friends' websites - About (
/about) — site milestones, tech stack, and color palette - OpenGraph — auto-generated OG images for every page at build time via satori + sharp
src/
├── assets/fonts/ # Overpass font files (woff2 + ttf)
├── components/ # Astro components
├── content/blog/ # Markdown blog posts
├── data/ # Static data (friends, gallery, music, social links)
├── layouts/
│ └── BaseLayout.astro # Shared layout with nav, drawer, and meta tags
├── pages/
│ ├── index.astro
│ ├── about.astro
│ ├── friends.astro
│ ├── 404.astro
│ ├── rss.xml.ts
│ ├── posts/
│ │ ├── index.astro
│ │ ├── [slug].astro
│ │ └── category/[category].astro
│ └── og/ # OG image endpoints (generated at build time)
│ ├── [slug].png.ts
│ ├── page/[page].png.ts
│ └── category/[category].png.ts
├── styles/ # CSS (global tokens, components, navigation)
└── utils/ # Helpers (date, categories, OG image generation)
public/
├── img/ # Static images and avatars
├── font/ # Font license (OFL.txt)
└── js/ # Client-side scripts
Requires Node.js 18+ and pnpm.
git clone git@github.com:auroursa/about-page.git
cd about-page
pnpm install
pnpm dev # http://localhost:4321Other scripts: pnpm build (production build), pnpm preview (preview build locally).
Create a .md file in src/content/blog/ with frontmatter:
---
title: Post Title
pubDate: 2024-01-22 09:41:00
description: Brief description
category: 日常
slug: post-slug
---Categories in use: 日常, 杂谈, 技术.
Deployed to Cloudflare Pages. Build command: pnpm build, output directory: dist.
The legacy feed path /posts/feeds/all.atom.xml is redirected to /rss.xml via public/_redirects.
Source code is licensed under the MIT License.
The Overpass font is licensed under the SIL Open Font License.