Skip to content

feat: add blog to domstack website - #336

Merged
bcomnes merged 12 commits into
masterfrom
feat/blog-support
Sep 19, 2026
Merged

bcomnes merged 12 commits into
masterfrom
feat/blog-support

Conversation

@bcomnes

@bcomnes bcomnes commented Sep 19, 2026

Copy link
Copy Markdown
Owner

Summary

Adds a first-class DOMStack blog modeled on the Oro website implementation, with generated indexes and yearly archives, Atom and JSON feeds, feed icons and discovery links, post helpers, edit links, and metadata-backed author support.

Changes

  • Add /blog/ and generated yearly archive pages.
  • Add /feed.xml and /feed.json feed endpoints with ordered per-post author metadata and absolute avatar URLs.
  • Add the Atom and JSON Feed SVG icons at /blog/atom.svg and /blog/jsonfeed.svg.
  • Add accessible icon links with correct feed MIME types and rel="alternate" relations.
  • Add document-head feed discovery links using rel="alternate", feed MIME types, titles, and canonical feed URLs.
  • Require explicit title and a nonempty authors array in blog frontmatter.
  • Move post titles into the blog layout and place avatar-backed author/date metadata below titles on posts and index entries.
  • Port the metadata-backed author registry under authors/bcomnes/, including schema-validated metadata and a checked-in avatar.
  • Add lazy filesystem loading with shared in-flight reads, successful-read caching, retryable failures, explicit cache clearing, frozen author records, input-order preservation, and duplicate/legacy-alias rejection.
  • Add npm run import-author, a bounded GitHub importer that validates public profile/social/avatar/key data and atomically stages updates with rollback protection.
  • Update npm run new-blogpost to support repeated --author flags, default to bcomnes, and emit authors frontmatter without a duplicate Markdown H1.
  • Use https://domstack.net as the canonical site URL.
  • Add importer, registry, feed, title-validation, and multi-author regression coverage.

Configuration

The canonical site URL is configured as https://domstack.net in site/globals/global.vars.ts.

Validation

  • npm run build:domstack
  • npm run test:neostandard
  • npx tsc --noEmit
  • Focused blog/author tests: 10 passing
  • Temporary Playwright author-layout jig: passed avatar rendering, single post h1, and title-before-byline assertions.
  • Generated output checked for both SVG assets, feed discovery links, and domstack.net feed URLs.
  • git diff --check on the committed changes.

The PR remains draft as requested.

@coveralls

coveralls commented Sep 19, 2026

Copy link
Copy Markdown

Coverage Report for CI Build 35460837272

Warning

No base build found for commit 8d9f6d2 on master.
Coverage changes can't be calculated without a base build.
If a base build is processing, this comment will update automatically when it completes.

Coverage: 96.532%

Details

  • Patch coverage: 60 uncovered changes across 5 files (554 of 614 lines covered, 90.23%).

Uncovered Changes

File Changed Covered %
site/lib/blog-feeds.ts 99 74 74.75%
tools/authors/import.ts 135 118 87.41%
site/lib/blog-index.ts 69 60 86.96%
site/lib/blog.ts 144 136 94.44%
site/lib/authors.ts 129 128 99.22%
Total (7 files) 614 554 90.23%

Coverage Regressions

Requires a base build to compare against. How to fix this →


Coverage Stats

Coverage Status
Relevant Lines: 12061
Covered Lines: 11801
Line Coverage: 97.84%
Relevant Branches: 4203
Covered Branches: 3899
Branch Coverage: 92.77%
Branches in Coverage %: Yes
Coverage Strength: 895.57 hits per line

💛 - Coveralls

@bcomnes
bcomnes marked this pull request as ready for review September 19, 2026 18:05
@bcomnes
bcomnes merged commit 4ca6d96 into master Sep 19, 2026
10 checks passed
@bcomnes
bcomnes deleted the feat/blog-support branch September 19, 2026 18:24
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.

2 participants