Add Astro blog subproject with local writing admin#1
Open
musepy wants to merge 15 commits into
Open
Conversation
The blog (blog.pengxu.work) lives as an Astro subproject under blog/,
deployed separately to Cloudflare Pages. This is its first commit.
Includes a dev-only writing backend at /admin:
- Routes injected only under `astro dev` (never reach the build/dist),
so there is zero exposure surface in production.
- Milkdown Crepe WYSIWYG editor themed to the blog's design tokens.
- Frontmatter edited via form fields; saves write back to
src/content/posts/ with byte-format matching existing posts.
Root scaffolding to host the subproject: .gitignore excludes for
blog/{node_modules,dist,.astro} and throwaway QA screenshots;
tsconfig.json excludes blog/ from the root Next.js typecheck.
.mcp.json declares the genable MCP server.
Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
Point genable cover at cover.png and add anycast cover.png. Co-Authored-By: Claude Fable 5 <noreply@anthropic.com>
This file contains hidden or bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment
Add this suggestion to a batch that can be applied as a single commit.This suggestion is invalid because no changes were made to the code.Suggestions cannot be applied while the pull request is closed.Suggestions cannot be applied while viewing a subset of changes.Only one suggestion per line can be applied in a batch.Add this suggestion to a batch that can be applied as a single commit.Applying suggestions on deleted lines is not supported.You must change the existing code in this line in order to create a valid suggestion.Outdated suggestions cannot be applied.This suggestion has been applied or marked resolved.Suggestions cannot be applied from pending reviews.Suggestions cannot be applied on multi-line comments.Suggestions cannot be applied while the pull request is queued to merge.Suggestion cannot be applied right now. Please check back later.
Summary
First commit of the blog subproject (
blog.pengxu.work) — an Astro site that has lived uncommitted underblog/and deploys separately to Cloudflare Pages. Split into two commits:/adminwriting backend + root scaffolding to host the subproject.src/lib/projects.ts(genable/anycast cover images), kept as its own commit.The
/adminwriting toolA local-first WYSIWYG backend so posts can be edited in the blog's own render environment instead of raw Markdown:
command === 'dev'(integration.mjs), so they never reachdist/. Verified: production build emits 49 pages with zero admin files or API references.src/content/posts/with byte-format matching existing posts (verified round-trip on the most HTML/symbol-heavy post).⌘Sto save; content-watcher full-reload suppressed so the cursor survives saves.Root scaffolding
.gitignore: excludeblog/{node_modules,dist,.astro}and throwaway QA screenshots.tsconfig.json: excludeblog/from the root Next.js typecheck..mcp.json: declare the genable MCP server (no secrets).Verification
<>&"and Chinese quotes all escape correctly).npx astro buildclean;dist/contains no admin surface.Note found during testing
llm-capability-wasted.mdhas an accidental GFM strikethrough live in production (two~form a<del>span). Opening it in the new editor surfaces it immediately — fix can ride a later content edit.🤖 Generated with Claude Code