尚未偵測到更新。GitHub 發布版本後會顯示在這裡。
個人 GitHub 帳號下公開儲存庫的擁有者可以登入並驗證所有權,自行管理介紹,無需管理員核准。
登入並產生驗證檔案,在 30 分鐘內將其提交至此儲存庫的預設分支。其他分支或分叉儲存庫中的檔案無效。然後在下方檢查檔案,即可無需管理員核准直接管理專案。請保留檔案以維持管理權限。
如需登入,將前往登入頁面。登入後請回到此處,再次點擊所選的驗證按鈕。
在專案資料夾中執行 /nomorevibe verify,即可驗證所有權並自行管理介紹。
一分鐘完成驗證Open, self-hosted Linktree alternative.
翻譯準備中
取自儲存庫 README
正在載入完整 README。 以下為已儲存的摘錄。
Personal site and blog built with Astro + TypeScript + CSS. Includes a blog with tags, full-text search, and OG image generation. Fast, minimal, easy to tweak.
Prerequisite: Node 22+ and pnpm.檢視完整 README ↗Personal site and blog built with Astro + TypeScript + CSS. Includes a blog with tags, full-text search, and OG image generation. Fast, minimal, easy to tweak.
Prerequisite: Node 22+ and pnpm.
git clone <your-fork-url> fieldnotes
cd fieldnotes
pnpm install
pnpm dev
Dev server runs at: http://localhost:4321
| Script | Purpose |
|---|---|
pnpm dev | Start local development server |
pnpm build | Type check then production build |
pnpm lint | Lint and auto-fix all file types |
pnpm lint:check | Same lint, no auto-fix — what CI runs |
pnpm preview | Build, then run it locally with wrangler dev (real Cloudflare bindings) |
pnpm deploy | Build, then wrangler deploy to Cloudflare Workers |
pnpm format | Prettier + import sorting |
pnpm test | Run Vitest unit tests |
pnpm lighthouse | Run Lighthouse CI against the built site |
src/
pages/
index.astro # Home page (imports 4 section .md files, blog list rendered inline)
now.astro # /now page
uses.astro # /uses page
colophon.astro # /colophon page
404.astro
robots.txt.ts
llms.txt.ts
rss.xml.ts
atom.xml.ts
feed.json.ts
api/
guestbook.ts # On-demand route (D1 + Rate Limiting binding) for the /1999 guestbook
blog/
index.astro # Blog index (includes pagefind search)
[slug].astro # Blog post page
tags/
index.astro # All tags
[tag].astro # Posts for a tag
og/
[slug].png.ts # OG image generation (satori + sharp)
sections/
intro.md # Home page: introduction
personal.md # Home page: personal links
opensource.md # Home page: open source
support.md # Home page: support
now.md # /now page content
uses.md # /uses page content
colophon.md # /colophon page content
components/
PostListItem.astro # Single post row in blog listings
CarbonBadge.astro # Page carbon footprint badge
content/
blog/ # Blog posts (.md)
layouts/
Layout.astro # Base layout wrapper
lib/
blog.ts # Blog helpers (fetch, sort, slug, constants)
blog.test.ts
feed.ts # Shared feed item builder (used by rss/atom/json endpoints)
feed.test.ts
markdown-config.ts # Shared remark/rehype plugin options
xml.ts # XML character escaping (atom feed)
xml.test.ts
guestbook.ts # Guestbook input validation (normalizeGuestbookInput)
guestbook.test.ts
guestbook-database.ts # D1 queries for the guestbook (structurally typed, testable with a fake)
guestbook-database.test.ts
__mocks__/
astro-content.ts # Vitest stub for astro:content virtual module
styles/
tokens.css # CSS custom properties
base.css # Resets and base element styles
typography.css # Type scale
code.css # Code block styles
print.css # @media print rules
public/ # Static assets (images, favicons, etc.)
src/sections/intro.md, src/sections/personal.md, src/sections/opensource.md, and src/sections/support.md — rendered in that order by src/pages/index.astro, with the blog listing rendered inline between the intro and open-source sections./now, /uses, and /colophon content in src/sections/now.md, src/sections/uses.md, and src/sections/colophon.md.src/content/blog/ — frontmatter supports title, description, pubDate, updatedDate, draft, and tags (array). draft: true excludes a post from the blog index, all three feeds, the sitemap, and llms.txt.pnpm lint, pnpm test, and pnpm build before pushing changes.Small changes: adjust CSS variables in src/styles/tokens.css or element rules in src/styles/base.css.
Layout changes: edit src/layouts/Layout.astro (semantic HTML + scoped styles).
Fonts are loaded via Astro's font API (fontProviders.fontsource()) — declarations are injected automatically at build time.
tsconfig.json)pnpm test)lint, format, and test on every commit (run pnpm exec lefthook install after cloning to activate it)fontProviders.fontsource() (Geist + Geist Mono)@astrojs/sitemap (sitemap) + astro-pagefind (full-text search) integrationssatori + sharp/1999/guestbook) backed by Cloudflare D1, with Cloudflare's native Rate Limiting binding capping submissions@astrojs/cloudflare adapter) — public/_headers sets a strict CSP and cache rules specific to that host; adding a new external resource (script, font, image, API call) needs a matching entry there tooYour personal content (links, descriptions) is yours — consider adding a note if you want to explicitly release it (e.g., CC0) or keep all-rights-reserved.
Run before pushing major changes:
pnpm lint
pnpm test
pnpm build
That's it — customise your content files, tweak styles, deploy. The build output can run on most Astro-compatible hosts, but this repo is configured for Cloudflare Workers specifically (wrangler.jsonc declares the D1 and Rate Limiting bindings the guestbook needs; public/_headers sets Cloudflare-specific CSP and cache headers).
Enjoy your lean, fast link hub.