Docs Portal
Docs Portal — Context
What Is This Project?
The SONAN DIGITAL Documentation Portal — a flat HTML site serving as the central knowledge base and AI continuity hub for all SONAN projects. Hosted at docs.sonandigital.com.
Repo & Folder
| Item | Value |
|---|---|
| Local folder | E:\Claude_Projects\SONAN DIGITAL\sonan-docs\ |
| GitHub remote | https://github.com/sonantechai/sonan-digital-docs.git |
| Hosting | Cloudflare Pages → auto-builds on every push to main |
| Live URL | docs.sonandigital.com |
Tech Stack
| Layer | Technology |
|---|---|
| Pages | Plain HTML files — NO framework, NO markdown, NO MkDocs, NO build step |
| Styles | style.css — single shared stylesheet |
| Nav & theme | nav.js — active link detection, dark/light toggle, copy buttons |
| Hosting | Cloudflare Pages (static, no serverless) |
File Structure
All files are flat in the root — no subdirectories. Naming convention:
- Section pages:
admin.html,clients.html,engineering.html, etc. - Sub-pages:
admin-leads.html,engineering-api.html,operations-maintenance.html - Project pages:
proj-docs-context.html,proj-launchpad-current.html, etc. - Shared assets:
style.css,nav.js
How to Deploy
cd "E:\Claude_Projects\SONAN DIGITAL\sonan-docs"
git add <files>
git commit -m "..."
git push origin main
Cloudflare Pages detects the push and rebuilds automatically. No build command — static files are served directly. Changes are live within ~1 minute.
Updating the Navigation
The sidebar nav is inline HTML inside every single page — there is no shared template or include system. To add a new nav item, you must update all HTML files. Use a Python bulk find/replace:
import glob
for path in glob.glob("*.html"):
content = open(path).read()
content = content.replace(OLD_STRING, NEW_STRING)
open(path, "w").write(content)
Common Mistakes to Avoid
Critical: Two folders, one remote
There are TWO folders in E:\Claude_Projects\SONAN DIGITAL\:
sonan-docs\— the live HTML portal. This is what deploys to docs.sonandigital.com.sonan-digital-docs\— an old MkDocs experiment. It points to the same GitHub remote but is NOT what Cloudflare Pages builds. Never push from this folder expecting the live site to update.
Always work from sonan-docs\.
| Mistake | Prevention |
|---|---|
| Editing HTML then forgetting to update the nav in other files | If adding a new nav section, always use the Python bulk replace |
Pushing from sonan-digital-docs\ | Check git remote -v — both folders point to the same remote. Always verify you're in sonan-docs\ |
| Remote has diverged (push rejected) | Use git push -f origin main — you own this repo, force push is safe |
| Writing markdown syntax in HTML files | MkDocs admonitions, tabs, etc. don't work here. Write plain HTML with .alert divs, <table>, <pre> |