Publishing the docs to GitHub Pages

The documentation website (https://c-ton618.duckdns.org/) is built with Claide, a Python module for building websites, straight from this file: website/app.py reads DOCUMENTATION.md, turns every ### section of the English and the French half into its own page (with a sidebar, a search box, "on this page" links, a language switch and "Run" buttons that open a snippet in the playground), and exports the whole site as static HTML. The playground (exemples/playground.html + ton618-lite.js), the AI skills page, the logo and exemples/CNAME are published next to it.

Preview it locally:

pip install claide-web
python website/app.py          # http://127.0.0.1:8000, reloads on save
python website/app.py build    # static export into website/_site/ (or: make site)

.github/workflows/pages.yml installs Claide, builds the site and deploys it on every push to main that touches DOCUMENTATION.md, website/, exemples/ or the version number — editing this file is all it takes to update the website. With a custom domain (exemples/CNAME) the site is served from the domain's root; without one, from https://<user>.github.io/ton618/.

One-time setup:

  1. GitHub → this repository → Settings → Pages.
  2. Under Build and deployment, set Source to GitHub Actions (not "Deploy from a branch").

exemples/documentation.html is the older single-page version of this document, still published at /documentation.html and regenerated with make docs.

Using a custom domain (e.g. a free DuckDNS subdomain instead of github.io): this needs no server of your own — GitHub hosts the site, not you.

  1. On DuckDNS, point your subdomain's IP at one of GitHub Pages' fixed addresses instead of any server you run: 185.199.108.153, 185.199.109.153, 185.199.110.153, or 185.199.111.153 (DuckDNS only accepts one IP per subdomain, so pick just one). If that subdomain is also kept updated by a dynamic-DNS script running somewhere (cron on a VPS, a router, etc.), that script will overwrite this the next time it runs — use a subdomain that nothing else auto-updates.
  2. exemples/CNAME in this repo already holds the domain the docs are pinned to; the workflow publishes it as-is, which is what tells GitHub Pages to serve that domain.
  3. GitHub → this repository → Settings → Pages should then show the custom domain under Custom domain (DNS propagation can take a few minutes) — once it verifies, tick Enforce HTTPS.

Edit this page on GitHub