Show the README without Gitea's Unicode warnings (#426)
feuerwerk / gate (push) Successful in 4m30s
feuerwerk / suite (push) Failing after 19m58s

The repo's start page marked eight characters in the README and
offered an Escape button. All eight were en dashes (U+2013), which
Gitea flags as ambiguous because they look like a hyphen. The wiki
dropped them in #416, the README now follows the same rule.

- Prose: the dash became a colon, a comma or a full stop.
- Comments in the code blocks: a semicolon.

Tests:
- grep over README.md for en dash, em dash, times, minus and
  single guillemet finds nothing.
- prettier --check README.md is clean.

Co-Authored-By: Claude Opus 5.5 <noreply@anthropic.com>
This commit is contained in:
adminandClaude Opus 5.5 committed 2026-10-15 08:35:13 +02:00
1 parent 2f13f9a0b9
commit a9e0b6d9fa
1 file changed
+8 -8
+8 -8
View File
@@ -3,14 +3,14 @@
[![feuerwerk](https://git.nockal.com/meleki/feuerwerk/actions/workflows/ci.yml/badge.svg?branch=main)](https://git.nockal.com/meleki/feuerwerk/actions?workflow=ci.yml) [![feuerwerk](https://git.nockal.com/meleki/feuerwerk/actions/workflows/ci.yml/badge.svg?branch=main)](https://git.nockal.com/meleki/feuerwerk/actions?workflow=ci.yml)
A browser-based tool "one step before a game engine": create **assets** (scenes, cameras, A browser-based tool "one step before a game engine": create **assets** (scenes, cameras,
sprites), place them into scenes, tweak their properties in an inspector and press **Play** – sprites), place them into scenes, tweak their properties in an inspector and press **Play**,
all in one program, all drawn inside a single WebGL canvas. all in one program, all drawn inside a single WebGL canvas.
![](screenshot.png) ![](screenshot.png)
Live: <https://nockal.com/feuerwerk/> · Widget playground: <https://nockal.com/feuerwerk/?playground> Live: <https://nockal.com/feuerwerk/> · Widget playground: <https://nockal.com/feuerwerk/?playground>
**The documentation is the wiki:** <https://git.nockal.com/meleki/feuerwerk/wiki> – every concept, **The documentation is the wiki:** <https://git.nockal.com/meleki/feuerwerk/wiki>: every concept,
node, tab and shortcut, plus the architecture and the development workflow. This file is the short node, tab and shortcut, plus the architecture and the development workflow. This file is the short
way in. way in.
@@ -25,7 +25,7 @@ way in.
- A **container** is a reusable group edited once and placed many times; its content is resolved - A **container** is a reusable group edited once and placed many times; its content is resolved
from the template on every read. A **screen** is a container switched on and off. from the template on every read. A **screen** is a container switched on and off.
- A **behavior** is logic as a node graph, placed like anything else and parented to the object it - A **behavior** is logic as a node graph, placed like anything else and parented to the object it
acts on. Play has no built-in behaviour – everything that happens is a graph. acts on. Play has no built-in behaviour: everything that happens is a graph.
- An **account** owns projects: the editor asks for a user name and a password first, and each - An **account** owns projects: the editor asks for a user name and a password first, and each
account sees only its own projects. The Account menu at the far right of the toolbar changes account sees only its own projects. The Account menu at the far right of the toolbar changes
the password and signs out. the password and signs out.
@@ -39,8 +39,8 @@ Node 22 is required.
```bash ```bash
npm install npm install
npm run dev # http://localhost:5175/feuerwerk/dist/ – API calls are proxied to production npm run dev # http://localhost:5175/feuerwerk/dist/; API calls are proxied to production
npm run check # typecheck + lint + format:check + unit tests – the gate CI runs too npm run check # typecheck + lint + format:check + unit tests; the gate CI runs too
npm run build # writes dist/ and regenerates index.html; the folder is what nginx serves npm run build # writes dist/ and regenerates index.html; the folder is what nginx serves
``` ```
@@ -48,14 +48,14 @@ The browser suite and the three example games need a machine with a GPU:
```bash ```bash
node tools/seed-e2e.mjs && node tools/e2e.mjs # the editor, 2090 checks (GM_STEPS=20 for one step) node tools/seed-e2e.mjs && node tools/e2e.mjs # the editor, 2090 checks (GM_STEPS=20 for one step)
# every tool signs in first – see the Accounts page # every tool signs in first; see the Accounts page
node tools/seed-jumprun.mjs && node tools/smoke-jumprun.mjs node tools/seed-jumprun.mjs && node tools/smoke-jumprun.mjs
node tools/seed-tetris.mjs && node tools/smoke-tetris.mjs node tools/seed-tetris.mjs && node tools/smoke-tetris.mjs
node tools/seed-actor.mjs && node tools/smoke-actor.mjs node tools/seed-actor.mjs && node tools/smoke-actor.mjs
``` ```
Every push runs all of it on the Gitea runners – the gate as one job, build and suite as another Every push runs all of it on the Gitea runners: the gate as one job, build and suite as another
beside it – so locally take the gate plus the step your change touches and leave the full run to beside it. So locally take the gate plus the step your change touches and leave the full run to
CI. Details, the GPU requirement and the detached runner are in CI. Details, the GPU requirement and the detached runner are in
[Development](https://git.nockal.com/meleki/feuerwerk/wiki/Development). [Development](https://git.nockal.com/meleki/feuerwerk/wiki/Development).