Skip to content

Move replaceable integrations out of ts-ssg into default plugins. - #36

Merged
koculu merged 3 commits into
mainfrom
extract-more-plugins-from-core
Oct 17, 2026
Merged

koculu merged 3 commits into
mainfrom
extract-more-plugins-from-core

Conversation

@koculu

@koculu koculu commented Oct 17, 2026 •

Copy link
Copy Markdown
Member

Summary

Move replaceable integrations out of ts-ssg into default plugins, preserving standard site behavior while allowing custom sites to replace or omit individual features.

Changes

  • Add @purestack/ts-highlight for Shiki/highlight.js, @purestack/ts-pagefind for search, and @purestack/ts-seo for social previews, canonical URLs, and language alternates.
  • Move generated favicons and Markdown table presentation into ts-theme.
  • Separate consent, GA4 analytics, and auth-state hints into independent plugins in ts-page-scripts.
  • Move Tabs and Modal runtime injection from ts-render into ts-page-scripts. Standalone renderer callers can inject scripts through onRendered(document, runtimeEmbeds).
  • Add generic highlighter, search, metadata, and Markdown presentation contributions while preserving existing lifecycle hooks.
  • Add typed extensions settings and synchronous config.resolve / config.finalize contributions. All overrides finish before dependent settings and factories initialize, preventing stale GA4 consent registration.
  • Isolate theme options, collected CSS, and stylesheet revisions per builder, including concurrent and lazy builds. Keep config-hook theme changes consistent across CSS, head colors, and generated favicons.
  • Improve plugin validation and error attribution, preserve Markdown plugin composition semantics, and replace SEO URL trimming with a linear-time scan.
  • Update package exports, dependencies, documentation, and workspace versions to 1.1.15.

Validation

  • 967 tests pass across 104 files, including configuration ordering, consent behavior, concurrent-site isolation, lazy rendering, metadata, and plugin diagnostics.
  • TypeScript builds, frontend and extension type checks, lint, dependency consistency, LF checks, bundling, and packaging pass.
  • Consumer fixtures verify built declaration exports, typed extensions, and browser-safe style/script/SEO imports.
  • Isolated frontend publishes under .tmp, compared against 94167a78, produce 162 pages and 353 files with no unexplained differences. CSS and Pagefind assets are byte-identical; JavaScript differences are local identifier renaming and removal of unused initialization.
  • Consent-managed, direct, manually configured, and disabled GA4 fixtures preserve generated HTML after stylesheet-key normalization.

Comment thread packages/ts-seo/src/preview.ts Fixed
@koculu koculu changed the title Extract ts-highlight, ts-pagefind plugins. Move replaceable integrations out of ts-ssg into default plugins. Oct 17, 2026
@koculu
koculu merged commit 19b6869 into main Oct 17, 2026
5 checks passed
@koculu
koculu deleted the extract-more-plugins-from-core branch October 17, 2026 08:00
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