• Home
  • Features
  • Pricing
  • Docs
  • Announcements
  • Sign In

forzagreen / n2words / 33807121953
99%

Build:
DEFAULT BRANCH: main
Ran 03 Sep 2026 09:18PM UTC
Jobs 1
Files 127
Run time 1min
Badge
Embed ▾
README BADGES
x

If you need to use a raster PNG badge, change the '.svg' to '.png' in the link

Markdown

Textile

RDoc

HTML

Rst

03 Sep 2026 09:17PM UTC coverage: 98.831%. Remained the same
33807121953

push

github

web-flow
docs(site): add a GitHub Pages demo site

A vanilla HTML/CSS/ESM site at https://forzagreen.github.io/n2words/, deployed
from `main` by `.github/workflows/pages.yml`. Three pages: a live converter, a
languages table, and short docs.

Nothing about a language is hardcoded. `scripts/generate-site-data.js` derives
`languages.json` from `src/` — every variant, the forms it exports, each form's
options contract and `*Max` ceiling, bundle sizes — and option metadata comes
from `scripts/lib/options-index.js`, now shared with the `LANGUAGES.md`
generator so the docs table and the demo cannot disagree. The demo `import()`s
the real `dist/{code}/{form}.js` bundles at runtime, so it runs the deployed
commit's own code and there is no fixture to keep in sync. Adding a language to
`src/` gives it a picker entry, an options panel and a table row on the next
deploy.

The site leads with the language, not the locale: 50 entries labelled by the
bare tag you actually import, with regions folded into a disclosure underneath.
Regions are grouped by *measured* spelling rather than declared lineage — the
generator fingerprints each variant's output over a fixed probe set — so English
reads as "16 regions, 4 spellings" instead of sixteen equal-looking rows. That
measurement also caught something no `variantOf` records: `en-CA` pairs British
cardinals with American ordinals.

Currency keeps its own control throughout, because a default currency belongs to
a country while currency words belong to a language, and the two are easy to
conflate. Picking a region's default imports the region; naming a currency
imports the bare tag with an explicit `{ currency }` — demonstrated by the
snippet that appears rather than explained in a paragraph.

Also: system/light/dark theme switch, linkable `#lang/form/value?options` URLs,
and GA4 that skips localhost so previews stay out of the property.

5414 of 5649 branches covered (95.84%)

Branch coverage included in aggregate %.

30933 of 31128 relevant lines covered (99.37%)

1297.92 hits per line

Jobs
ID Job ID Ran Files Coverage
1 33807121953.1 03 Sep 2026 09:18PM UTC 127
98.83
GitHub Action Run
Source Files on build 33807121953
  • Tree
  • List 127
  • Changed 0
  • Source Changed 0
  • Coverage Changed 0
Coverage ∆ File Lines Relevant Covered Missed Hits/Line Branch Hits Branch Misses
  • Back to Repo
  • Github Actions Build #33807121953
  • c0a3f0ff on github
  • Prev Build on main (#33689524713)
  • Next Build on main (#33875042471)
STATUS · Troubleshooting · Open an Issue · Sales · Support · CAREERS · ENTERPRISE · START FREE TRIAL · SCHEDULE DEMO
ANNOUNCEMENTS · TWITTER · TOS & SLA · Supported CI Services · What's a CI service? · Automated Testing

© 2026 Coveralls, Inc