MyGo 云音乐
用 Go 与 MyGo 写成的第三方网易云音乐桌面客户端。原生界面,没有 WebView;边下边播,无损与 Hi-Res,逐字歌词与「律动」,刘海播放器。
Translation pending
Timothy Brits — software developer in Pretoria, South Africa. Writing on software and open source.
MediaAstro · TypeScriptGitHub @mooshipOnlineOwner unconfirmed
Have you tried it? One tap is enough. No sign-in needed.
No updates detected yet. GitHub releases will appear here.
Owners of public repositories under a personal GitHub account can sign in to verify ownership and manage the introduction themselves. No administrator approval is needed.
Sign in, generate a verification file, and commit it to this repository’s default branch within 30 minutes. Files on other branches or forks do not count. Then check the file below to manage the project without administrator approval. Keep the file to retain your access.
If needed, you will go to sign-in. After signing in, return here and press your chosen verification button again.
Run /nomorevibe verify in your project folder to verify ownership and manage the introduction yourself.
Verify in one minuteAsk about other verification options
Open, self-hosted Linktree alternative.
Translation pending
Taken from the repository README
Loading the full README. The saved excerpt is shown below.
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.Read the full 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.