new-game script mangles titles containing $, backticks or <
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 76/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- html, node.js, typescript
- Ambito
- build-system, tooling
Direzione di ricerca
Leggi scripts/new-game.mjs insieme a games/_template/main.ts e games/_template/index.html per capire come viene sostituito il titolo e quando vengono scritti i file. Prova la riproduzione indicata, poi esegui npm run typecheck e npm run build. Il lavoro è completato quando i titoli con i caratteri speciali indicati consentono di creare un gioco compilabile oppure vengono rifiutati con un messaggio chiaro prima che venga scritto qualsiasi file.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
Summary
The scaffolder validates the slug but substitutes the title raw into an HTML file and a TypeScript template literal.
Where
scripts/new-game.mjs:21,scripts/new-game.mjs:23-29games/_template/main.ts:48,games/_template/index.html:7
Details
.replaceAll('__SLUG__', slug).replaceAll('__TITLE__', title)
A string replacement still interprets $$, $& and similar patterns. A title with a backtick or ${ produces a file that fails tsc; a title with < or & produces invalid HTML. The folder is copied before the registry is written, so a failure in between leaves a half-registered game. Derived from the code; not run.
Steps to reproduce
npm run new-game cash "Cash $$ Grab".games/cash/index.htmlsays "Cash $ Grab" while the registry has the correct title.
Suggested fix
Use function replacers (replaceAll('__TITLE__', () => escaped)), HTML-escape for .html, and write the title into the template as a JSON.stringify-ed constant. Or restrict titles to a safe character set.
Acceptance criteria
- Titles with
$, backticks,${,<and&either scaffold a building game or are rejected with a clear message before any file is written
Getting started
- Relevant files:
scripts/new-game.mjs,games/_template/main.ts,games/_template/index.html - Run locally:
npm install, thennpm run dev - Checks:
npm run typecheckandnpm run build(there is no test suite yet) - Related docs:
README.md
Filed by repo-audit/full-audit at b001f5d. Severity: low. Effort: S. audit-key: bug|scripts/new-game.mjs|replaceAll
- Lingua principale
- TypeScript
- Stelle
- 3
- Fork
- 3
- Metriche di merge delle PR
- Nessuna PR unita negli ultimi 30g
Preparare l'ambiente
Questo progetto non fornisce container di sviluppo, Dockerfile né guida per i contributori, quindi l'ambiente è a tuo carico: parti dal suo README e consulta la nostra guida al primo contributo per i passaggi generali.
Come iniziare
- Leggi tutta la issue e poi la guida ai contributi del progetto.
- Commenta sulla issue per dire che te ne occupi tu — evita che due persone facciano lo stesso lavoro.
- Fai un fork del repository e lavora su un branch.
- Apri una pull request che faccia riferimento al numero della issue.
Altre issue di TMHSDigital/GH-Arcade
-
enhancement good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 82/100
TMHSDigital/GH-Arcade#50 ·
-
enhancement good first issue severity: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 86/100
TMHSDigital/GH-Arcade#47 ·
-
documentation good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TMHSDigital/GH-Arcade#34 ·
-
documentation good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TMHSDigital/GH-Arcade#33 ·
-
dependencies good first issue severity: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 85/100
TMHSDigital/GH-Arcade#27 ·
Tutte le issue di TMHSDigital/GH-Arcade
Issue simili
-
automated-triage type/bug type/ci
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
📦 expo-router Android contributor: external needs review sdk-58 severity: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
expo/expo#53436 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Translate the READMEApertadocumentation good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 84/100
asasemahmed/openboard#68 ·
I maintainer di solito rispondono entro 1 giorno
-
bug good first issue
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
-
Document PowerShell shell semantics and read-only Bash deduplication in Built-in Tools referenceApertadocumentation
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100