You now have a fully automated GitHub Pages website that:
✅ Auto-generates when you push to main or open PRs
✅ Displays all components with search capability
✅ Requires no maintenance - just add components and they appear
✅ Works offline - search is client-side JavaScript
scripts/generate_site.py- Scans hub, generates HTML site.github/workflows/build-docs.yml- GitHub Actions automation
_config.yml- GitHub Pages settingsdocs/.nojekyll- Tells GitHub Pages to use static content
index.html- Main hub page with 16 componentsstyle.css- All stylingsearch.js- Real-time search enginedata.json- Component metadata for search- Individual component pages (one per component)
HUB_GITHUB_PAGES.md- Complete technical guidedocs/DEPLOYMENT.md- Deployment details
cd cellmap_flow_hub
git add -A
git commit -m "Add GitHub Pages automated site generation"
git push origin mainIn GitHub:
- Go to repo Settings → Pages
- Set source to
gh-pagesbranch - Leave folder as
/ (root) - Wait for GitHub Actions to complete
- Live: https://cellmap.github.io/cellmap_flow_hub/
- Local test:
python scripts/generate_site.py . docs && open docs/index.html
You push/PR to main
↓
GitHub Actions triggers
↓
Python runs: python scripts/generate_site.py . docs
↓
Scans normalizers/, postprocessors/, models/, pipelines/
↓
Reads config.yaml & README.md from each component
↓
Generates HTML site + search index
↓
Deploys to gh-pages branch (or uploads artifact for PR)
↓
Live at https://cellmap.github.io/cellmap_flow_hub/
- Search component name, description, author, tags
- Real-time results as you type
- Works entirely in browser (no server needed)
- Browse by type: Normalizers, Postprocessors, Models, Pipelines
- See 16 total components at a glance
- Statistics dashboard
- Full metadata (version, author, dependencies)
- Complete documentation from README
- Installation instructions
- Use cases and examples
- Works on desktop, tablet, mobile
- Modern styling with no framework dependencies
- Lightweight and fast
Before:
normalizers/
├── existing_component/
After:
normalizers/
├── existing_component/
├── my_new_component/
├── config.yaml
├── README.md
├── requirements.txt
└── normalizer.py
Result:
- Next PR/push automatically regenerates site
- Your component appears in grid AND search
- Individual detail page created
- Statistics updated
No HTML editing needed!
# Generate site
python scripts/generate_site.py . docs
# View in browser (choose one)
open docs/index.html # macOS
xdg-open docs/index.html # Linux
start docs/index.html # WindowsThen test:
- Browse components
- Try searching ("dilate", "normalizer", "CellMapFlow", etc.)
- Click component cards to see detail pages
Edit generate_site.py in generate_index_html():
<h1>Your Title Here</h1>
<p>Your description here</p>Edit generate_css() in :root section:
--primary: #0066cc; /* Blue */
--secondary: #00aa44; /* Green */Edit components-grid in CSS section:
grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));- Check GitHub Actions tab for errors
- Verify
.github/workflows/build-docs.ymlexists - Make sure you have at least one valid component
- Open browser DevTools (F12)
- Check Console for JavaScript errors
- Verify
data.jsonexists and is valid JSON
- Verify
config.yamlexists in component folder - Ensure YAML is valid (no tabs, proper indentation)
- Run locally:
python scripts/generate_site.py . docs
cellmap_flow_hub/
├── .github/
│ └── workflows/
│ └── build-docs.yml ← GitHub Actions
├── scripts/
│ └── generate_site.py ← Build script
├── docs/ ← Generated site
│ ├── index.html
│ ├── style.css
│ ├── search.js
│ ├── data.json
│ ├── .nojekyll
│ └── *.html ← Component pages
├── normalizers/
├── postprocessors/
├── models/
├── pipelines/
├── _config.yml ← GitHub Pages config
└── HUB_GITHUB_PAGES.md ← Full documentation
| Feature | Benefit |
|---|---|
| Auto-generation | Push component, site updates automatically |
| No registry file | Folder structure is the manifest |
| Client-side search | Fast, works offline, no backend needed |
| Static HTML | Works on any platform, ultra-fast |
| PR preview | See changes before merging |
| No maintenance | Just add components, everything else automatic |
- ✅ Push to main
- ✅ Wait for GitHub Actions (check Actions tab)
- ✅ Enable GitHub Pages in settings
- ✅ Share the link: https://cellmap.github.io/cellmap_flow_hub/
- ✅ Invite contributors to add components
You now have:
- 16 components discoverable via web interface
- Real-time search functionality
- Automated deployment on every push/PR
- No server required (static HTML site)
- Scalable architecture for unlimited components
The hub is ready to share with the community! 🚀