feat(ssg): add SSG pre-rendering support with render loop#11
Closed
lemyskaman wants to merge 39 commits into
Closed
feat(ssg): add SSG pre-rendering support with render loop#11lemyskaman wants to merge 39 commits into
lemyskaman wants to merge 39 commits into
Conversation
…flow Implement the Vite plugin for Markdown-driven i18n React static sites, including content scanning, parsing, validation, virtual content APIs, React hooks, SEO metadata helpers, route manifest output, sitemap generation, and robots.txt generation. Add the basic React example app, Docker development/build/static infrastructure, end-to-end coverage, npm package metadata, package README and license files, and the GitHub Actions npm release workflow. Configure the workflow to publish with provenance, support trusted publishing or NPM_TOKEN fallback, and bump only the patch version on merged PRs to main while preserving major and minor versions from the PR.
Initial state
Replace the patch-bump + token workflow with Conventional-Commits versioning and tokenless OIDC trusted publishing on merge to main. Local one-time/rare publishes and the dry-run run on the host via a momentary nvm Node switch; routine releases run natively in CI. Co-Authored-By: Oz <oz-agent@warp.dev>
feat(automation)!: basic scaffolding for linting formating and pipelines
…components--vite-plugin-flatwave-react-workspace chore(main): release 1.0.0
…#4) * adding release please (verify why another github wrk actions) * fix: Resolve publishing pipeline conflicts and CI issues - Remove OIDC from release.yml, add NODE_AUTH_TOKEN for NPM_TOKEN auth - Delete conflicting release-please.yml and .release-please-manifest.json - Move test-matrix to PR-only, add HUSKY=0 to npm ci steps - Remove Node 20 from matrix (unsupported by engine>=22) - Add AI tool directories to .gitignore * style: Fix CHANGELOG.md formatting for Prettier * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> * Potential fix for pull request finding Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com> --------- Co-authored-by: Copilot Autofix powered by AI <175728472+Copilot@users.noreply.github.com>
…emantic-release prepare (#5) * Initial plan * fix: Avoid npm registry lookup during semantic-release prepare --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
* Initial plan * fix(release): Enable OIDC trusted publishing in release workflow --------- Co-authored-by: copilot-swe-agent[bot] <198982749+Copilot@users.noreply.github.com>
Scope package to @kamansoft npm org, fix all CI/CD pipeline issues, first npm publish done.
…al commit pipeline Remove NPM_TOKEN from release workflow; authenticate via npm OIDC trusted publishing. Complete docs rewrite and merge strategy enforcement.
…dure Documents enforce_admins: true branch protection and the stale-tag cleanup procedure. Updates status banner to reflect fully locked pipeline.
… details - Accurate current state: OIDC trusted publishing is active, NPM_TOKEN removed - Complete npmjs.com settings: trusted publisher form values, publishing access - Complete GitHub settings: branch protection rules with correct check names, secrets status (NPM_TOKEN can be deleted) - All commands executed during setup with explanations - Orphaned tag cleanup procedure documented - Expanded troubleshooting: stale pending checks, orphaned tags, self-hosted runner limitation, manual workflow trigger
- Add PrerenderOptions type with routes, exclude, stream, template options - Create prerender module (renderer, template, component registry) - Add SSR entry template (templates/entry-server.tsx) - Implement createPrerenderer() for external pre-rendering pipeline - Update plugin to support prerender option and skip HTML generation during build - Add example app SSR entry with markdown-it rendering - Add build + prerender scripts to example package.json - Add comprehensive test suite: - Unit tests for prerender module (renderer, template) - Integration tests for full plugin behavior with Vite - E2E tests validating pre-rendered HTML output - Test fixtures with multi-locale content Closes: #SSG-pre-rendering
… to ARCHITECTURE.md - Add comprehensive SSG pre-rendering documentation to README.md - Two-step build process explanation - SSR entry template example - Pre-render script setup - Configuration options - Pre-rendered output structure - Updated project structure diagram - Update design document to reflect actual implemented state - Rename from Flatwave-Content-Plugin-Requirements-Proposal-Design-Report.md to ARCHITECTURE.md - Convert from proposal to implemented architecture documentation - Add mermaid diagrams for plugin pipeline - Document actual module structure and data models - Include SSR build + pre-render step details - Add testing strategy and deployment sections
aea6a9c to
20ca641
Compare
Root cause: examples/basic-react-site/package.json still referenced unscoped 'vite-plugin-flatwave-react@0.1.0' instead of the scoped '@kamansoft/vite-plugin-flatwave-react' workspace package. npm ci tried to fetch the unscoped package from the npm registry (404). Changes: - Fix unscoped package reference in example package.json - Add build output dirs to eslint ignore list - Remove unused imports and fix lint errors across source/test files - Add eslint-disable comments for intentional React.ComponentType<any> usage - Fix example files to use @kamansoft/vite-plugin-flatwave-react scoped name - Update e2e test to run prerender step before serving - Fix virtual-content-ssr.ts to exclude from example tsconfig (SSR-only) - Add @types/markdown-it and vite/client types to example tsconfig
d06432d to
7f5fdd4
Compare
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
This PR adds build-time pre-rendering (SSG) support to the vite-plugin-flatwave-react plugin, along with a client-side render loop for SPA-like navigation.
Changes
SSG Pre-rendering Support
Render Loop (Client-side)
Plugin Exports (package.json)
Example App Updates
Documentation
Breaking Changes
Testing
Conventional Commit
feat: add SSG pre-rendering support with render loop