Skip to content

feat: add llms.txt, author config, and version command#14

Merged
vinta merged 21 commits intomainfrom
feature/add-stuff
Apr 7, 2026
Merged

feat: add llms.txt, author config, and version command#14
vinta merged 21 commits intomainfrom
feature/add-stuff

Conversation

@vinta
Copy link
Copy Markdown
Collaborator

@vinta vinta commented Apr 7, 2026

Summary

  • Generate llms.txt during build with newsletter name, description, and issue links to raw Markdown files
  • Add optional author config field (name, url, x_handle) to laughing-man.yaml
  • Emit author metadata across all outputs: <meta name="author">, JSON-LD Person, article:author (OG, uses URL per spec), twitter:creator, RSS <managingEditor>, and llms.txt author section
  • Write raw index.md alongside each issue's HTML for LLM consumption
  • Set Content-Type headers for llms.txt and .md files via _headers
  • Add version/--version and help subcommands to CLI
  • Add PostToolUse hook to auto-run bun run build on source edits
  • Bump to v0.4.0

Test plan

  • 205 tests passing (19 files, 470 assertions)
  • Typecheck clean
  • Build clean
  • Deployed and verified on production (https://thenetisvastandinfinite.com)
  • Verified author metadata in browser: meta tags, JSON-LD, OG tags, RSS, llms.txt
  • Verified backwards compatibility (no author in config = no author metadata)
  • Verified llms.txt and .md Content-Type headers on Cloudflare Pages
  • Verified version command works from both source and compiled

🤖 Generated with Claude Code

vinta and others added 18 commits April 7, 2026 10:30
Co-Authored-By: Claude <noreply@anthropic.com>
Adds an optional author field (name + url) to laughing-man.yaml that
propagates to: meta author tag, OG article:author, JSON-LD Person on
index and issue pages, RSS managingEditor, and an Author section in
llms.txt.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…e:author to use URL

- Add optional x_handle field to author config schema and SiteConfig type
- Emit twitter:creator meta tag when x_handle is present (normalizes leading @)
- Fix article:author content to use author URL instead of name, per OG spec
- Update init.ts template to include the new x_handle field
- Update tests to cover twitter:creator and the corrected article:author value

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Registers a PostToolUse hook in .claude/settings.json that runs
ensure-build.sh after any Edit or Write tool call touching src/,
themes/, package.json, or tsconfig.build.json.

Co-Authored-By: Claude <noreply@anthropic.com>
Prevents YAML from parsing @your_handle as a tag literal.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
…andle

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
- llms.txt generation during build
- raw .md files alongside each issue's HTML
- Content-Type headers for llms.txt and .md via _headers
- optional author config field with metadata across all outputs
- --version / version command in CLI

Co-Authored-By: Claude <noreply@anthropic.com>
@vinta vinta self-assigned this Apr 7, 2026
vinta and others added 3 commits April 7, 2026 13:00
Move issue markdown output from issues/N/index.md to issues/N.md so
the llms.txt URL (issues/N.md) resolves as a static file, and add a
Cloudflare _redirects rule to 301 any .html requests to the canonical
directory URL.

Co-Authored-By: Claude <noreply@anthropic.com>
Co-Authored-By: Claude <noreply@anthropic.com>
@vinta vinta merged commit 4306e16 into main Apr 7, 2026
4 checks passed
@vinta vinta deleted the feature/add-stuff branch April 7, 2026 05:11
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant