Source for the Ameba website, https://crystal-ameba.github.io.
Built with Astro. Blog search is powered by Pagefind.
npm install
npm run dev # http://localhost:4321Search relies on a build-time index, so it only returns results in
npm run previewand in production — not innpm run dev.
npm run build # outputs to dist/ and generates the Pagefind index
npm run preview # serve the production build locallysrc/
pages/ # routes (index, blog, rss.xml, 404)
layouts/ # BaseLayout, BlogPost
components/ # Nav, Footer, Terminal, SearchModal
content/blog/ # blog posts (Markdown)
styles/global.css # design tokens and shared styles
public/ # static assets served as-isAdd a Markdown file to src/content/blog/. Front matter:
---
title: "Post title"
description: "One-sentence summary used in listings and meta tags."
pubDate: 2024-01-31
category: "Release announcement"
tags:
- releases
---The file name becomes the URL slug, e.g. internals.md → /blog/internals.
Pushing to the master branch triggers
.github/workflows/deploy.yml, which builds the
site and publishes dist/ to the gh-pages branch that GitHub Pages serves.