Files
continuum-3d-site/README.md
T
octoturge 171a6d3be8
build / build (push) Successful in 2m51s
Build landing page from Penpot design, with multi-language switcher
Implement the "Desktop dark" Penpot design: nav, hero, about, products
teaser and contact form, with the exported logo and wave artwork and
self-hosted Poppins, Roboto Flex and Chillax fonts.

- Shared page markup in _includes/home.pug; copy in locales/{en,pl}.json
- Footer language switcher and hreflang tags generated from the locales
- Contact form composes a mailto: to the address in _data/site.json
- Stacked layout below 1024px
2026-10-29 14:26:26 +00:00

1.8 KiB

continuum-3d-site

Landing page for continuum-3d.com. Eleventy + Pug + Tailwind CSS, with a small JSON-based i18n setup (src/locales/en.json, src/locales/pl.json).

  • English (the default language) lives at src/en/index.pug and builds to /.
  • Every other language lives at src/<lang>/index.pug and builds to /<lang>/ (e.g. Polish: src/pl/index.pug -> /pl/).
  • The page markup is shared in src/_includes/home.pug; all copy is in src/locales/<lang>.json.
  • To add a language: copy src/locales/en.json to src/locales/<lang>.json, translate it (including lang_name, the language's own name), and add a src/<lang>/index.pug with lang: <lang> and permalink: /<lang>/ in its front matter that includes ../_includes/home.pug. The footer language switcher and the hreflang tags pick it up automatically.
  • Site-wide settings (domain, contact address, default language) are in src/_data/site.json. The contact form opens the visitor's mail client addressed to contactEmail.

Develop

npm install
npm run dev

Build

npm install
npm run build

Output goes to dist/.

Deploy

Every push to main builds the site and publishes dist/ (zipped) as the asset on a Gitea Release tagged deploy, using the automatic per-job GITEA_TOKEN — no secrets to configure. A separate site-deployer watcher container on octo-winsrv polls that release (releases/tags/deploy) every ~45s and, when it changes, extracts it into /mnt/e/sites/continuum-3d-com/, which Caddy serves as the document root for continuum-3d.com. No SSH keys or admin credentials are involved — the watcher only has filesystem access to /mnt/e/sites, nothing else on the host.

Manual deploy still works if you need it immediately (bypasses the watcher):

npm run build
scp -r dist/* <host>:/mnt/e/sites/continuum-3d-com/