This document summarizes the implementation of issue #86: "Migrate documentation from GitHub Pages to Netlify".
- ✅ Removed
.github/workflows/deploy-pages.yml(GitHub Pages workflow) - ✅ Added
.github/workflows/deploy-netlify.ymlwith:- Uses
nwtgck/actions-netlify@v3.0action - Configured for pull request comments and commit status updates
- Set publish directory to
./site(MkDocs output) - Requires
NETLIFY_AUTH_TOKENandNETLIFY_SITE_IDsecrets
- Uses
- ✅ Created
netlify.tomlwith:- Build command:
mkdocs build - Publish directory:
site - Python version: 3.11
- Redirects from old GitHub Pages URL to new Netlify URL
- Development server configuration
- Build command:
- ✅ Updated
mkdocs.yml:- Changed
site_urlfromhttps://httpdss.github.io/struct/tohttps://structio.netlify.app/ - Fixed
site_dirfromsite/docstosite
- Changed
- ✅ Rebuilt documentation to generate files with new URLs
- ✅ Verified all generated files now reference the new Netlify URL
- ✅ Regenerated entire site structure with new Material theme
- ✅ Updated all HTML files to reference the new base URL
- ✅ Updated sitemap.xml with new URLs
- ✅ Cleaned old generated files and assets
.github/workflows/deploy-netlify.yml- Netlify deployment workflownetlify.toml- Netlify build configuration- Completely regenerated
site/directory with Material theme
mkdocs.yml- Updated site URL and fixed output directory
.github/workflows/deploy-pages.yml- Old GitHub Pages workflow- Old site assets (CSS, JS, etc.) replaced with Material theme assets
- Enhanced Deployment: Pull request previews with Netlify
- Better Performance: Optimized build and deployment process
- Improved SEO: Proper redirects from old URLs
- Modern Tooling: Latest Material theme with enhanced features
- Flexibility: More deployment options and configurations
The following secrets need to be added to the GitHub repository:
-
NETLIFY_AUTH_TOKEN- Generate from Netlify: Settings → User settings → Personal access tokens → Generate new token
- Scope: Full API access
-
NETLIFY_SITE_ID- Found in Netlify site settings: Site settings → General → Site information → Site ID
- Create a new Netlify site (if not already done)
- Configure the custom domain:
structio.netlify.app - Enable branch deploys for pull request previews
- The redirects in
netlify.tomlwill handle traffic from the old GitHub Pages URL - No immediate DNS changes required
- ✅ Documentation builds successfully with
mkdocs build - ✅ All URLs updated to new Netlify domain
- ✅ No broken internal links detected
- ✅ Site structure properly generated
- Secrets Required: The workflow will fail until
NETLIFY_AUTH_TOKENandNETLIFY_SITE_IDare configured - First Deployment: The first deployment should be tested on this feature branch
- SEO Impact: Redirects are configured to minimize SEO impact
- Backward Compatibility: Old GitHub Pages URLs will redirect to new Netlify URLs
- All generated documentation now references the new URL
- Internal documentation links remain relative (no changes needed)
- External references in README.md are relative (no changes needed)
This implementation fully addresses all requirements from issue #86 and provides a modern, flexible documentation hosting solution.