A static wiki built with node.js
-
Architecture
site/source/_postsis thewikip-co/contentsubmodule that supplies markdown.publicis thewikip-co/publicsubmodule that stores generated HTML assets.- This repo owns Hexo config, themes, workflow glue, and the reusable workflow reference used for deploys.
-
URLs
-
Docker
- https://hub.docker.com/r/anthonyrussano/wikip.co
docker run -p 4000:4000 anthonyrussano/wikip.co
-
Local setup
git submodule update --init --recursivenpm ci --prefix siteNODE_OPTIONS=--max-old-space-size=5168 npm --prefix site run build
-
Workflow
- Site-only changes under
site/**trigger.github/workflows/generator.ymlon push tomain. - Markdown changes in
wikip-co/contenttriggercontent/.github/workflows/trigger-sites.yml, which sends arepository_dispatchtowikip.co. generator.ymlcalls the reusablewikip-co/content/.github/workflows/hexo-deploy.yml@mainworkflow and passes the exactcontent_refandcontent_shafrom that dispatch payload.- The reusable workflow checks out the
contentsubmodule at that exact SHA, builds Hexo, writes the output into thepublicsubmodule, and pushes the generated site towikip-co/public. - Cloudflare Pages deploys from
wikip-co/public, sowikip.coitself is the build orchestrator, not the final hosting repo.
- Site-only changes under
- An agent or human edits markdown in
wikip-co/content. - Those changes land on
content/mainthrough a normal commit or merged PR. contentdispatches a rebuild event towikip.cowith the exact markdown commit SHA.wikip.cobuilds against that SHA and pushes generated HTML towikip-co/public.- Cloudflare Pages publishes from
wikip-co/public.
The operator runbook for this flow lives at docs/content-publishing-runbook.md.
wikip.co intentionally tracks wikip-co/content@main for the reusable deploy workflow so site deploy behavior stays aligned with the current content-pipeline logic. If deploy behavior changes unexpectedly, check the uses: line in .github/workflows/generator.yml and then inspect the latest version of content/.github/workflows/hexo-deploy.yml.