All notable changes to this project will be documented in this file.
The format is based on Keep a Changelog and this project adheres to Semantic Versioning.
- Syntax highlighting for code blocks using Shiki, with configurable theme via
syntax_highlight_themeinlaughing-man.yaml(default:material-theme-lighter) - Prefix email subjects with
Issue #Nwhen not already present
- Rename built-in theme from
defaulttolaughing-man - Use
maxresdefaultfor YouTube thumbnails in email HTML
- Add
margin-bottomtoimgandiframein email template - Add
margin-block-endto iframes in issue body - Allow
laughing-man.yamlthrough preview watcher
- Generate
llms.txtduring build with newsletter name, description, issue links (to raw.mdfiles), and author section - Raw Markdown files written at
/issues/N.mdfor LLM consumption Content-Typeheaders forllms.txt(text/plain) and.mdfiles (text/markdown) via_headers- 301 redirect from
/issues/N.htmlto/issues/N/via_redirects - Optional
authorconfig field (name,url,x_handle) inlaughing-man.yaml - Author metadata across all outputs:
<meta name="author">, JSON-LDPerson,article:author(OG),twitter:creator, RSS<managingEditor>, andllms.txtauthor section version/--versionandhelpsubcommands to CLI
- RSS feed generation with per-issue entries
- PNG feed icon and apple-touch-icon for Feedly compatibility
favicon.icowith link tags ordered per Evil Martians guide- Pretty-print generated HTML output for build and preview
- Reorganize output directory structure: CSS, JS, and OG image under
/assets/; per-issue images under/issues/{N}/assets/ - Rename
laughing-man.pngtocover.pngandicon-512.pngtoicon.png - Use relative paths for favicon link tags
- Harden RSS feed generation and reuse
escapeHtml/stripMarkdownhelpers - Publish cacheable site assets and externalize subscribe script
- Suppress wrangler banner during deploy
- Stop preview watch rebuild loops and tighten watcher path filters
- Fix hero spacing: reduce h1 bottom margin on index page, reduce top padding above issue hero logo, increase issue page logo size
- Generate
sitemap.xmlduring build with index page and all published issue URLs, including<lastmod>dates - Generate
robots.txtwithAllow: /andSitemap:directive - Embed JSON-LD structured data in HTML pages:
WebSiteschema on the index page,Articleschema on issue pages - Generate
_routes.jsonand_headersduring build for Cloudflare Pages best practices - Bundle wrangler as a runtime dependency (no longer a separate peer dependency)
- Wrangler is now included in the package instead of requiring separate installation
- Require 2+ character TLD in email regex to reject single-char TLDs
- Add structured error logging to subscribe endpoint
- Open Graph, Twitter Card, and canonical URL meta tags on all pages
- OG image (
cover.png) for social sharing previews - Auto-backfill missing
datefield on ready issues instead of erroring
- Declare wrangler as a peer dependency
- Use marked lexer for
og:descriptionto skip H1 tokens
- Initial release