build.mjs and thumbs.mjs trust `meta.id` for file paths, and the id regex lives in three copies
Maintainer antworten meist innerhalb von 1 Tag
Dieses Issue hat noch niemand übernommen.
Bewertung
- Schwierigkeit
- 4/5
- Geschätzter Aufwand
- 3-5 Tage
- Anfängerfreundlichkeit
- 52/100
- Issue-Typ
- Bug
- Klarheit
- Klar beschrieben
- Aktivitätsstatus
- Aktiv
- Tech-Stack
- javascript, node.js
- Bereich
- build-system, security
Rechercherichtung
Read site/build.mjs around lines 104 and 446, then inspect site/thumbs.mjs, site/validate.mjs, site/lib/scaffold.mjs, and site/checks.mjs for the repeated ID checks and file writes. The issue suggests a shared loader in site/lib/entry-files.mjs and pairing the change with #85. Done means one ID regex definition remains in site/, and a fixture with id: ../x makes node site/build.mjs exit 1 naming the file without touching disk.
Vom Indexierungsmodell aus dem Issue-Text verfasst.
Beschreibung
Why it matters
validate is the only place that enforces the id charset and id === filename. npm run build on its own, and thumbs.yml (which runs thumbs.mjs before validate), write files whose names come straight from frontmatter. CI order protects main, but a local node site/build.mjs with a bad id writes outside site/dist/.
Evidence (at 69387df)
site/build.mjs:446:writeOut(path.join("entry", entry.id, "index.html"), html)withentry.id = String(meta.id)(build.mjs:104).path.join("entry", "../../x", "index.html")resolves under the parent ofDIST(build.mjs:292), andproduced/pruneDistnever see it.site/thumbs.mjs:123-124, 244:${entry.id}.src,${entry.id}.webpin the temp dir and insite/public/thumbs/.- The same regex is written three times:
site/validate.mjs:65,site/lib/scaffold.mjs:30(exportedID_RE),site/checks.mjs:806(inline).
Suggested approach
Give site/lib/entry-files.mjs one loader that reads the file, parses frontmatter, and refuses an entry whose id fails ID_RE or differs from the basename; have build, thumbs, check-links and reverify-batch use it. Export ID_RE from one module and import it everywhere. This pairs naturally with #85.
Done when
One definition of the id regex in site/; a fixture entry with id: ../x makes node site/build.mjs exit 1 naming the file, without touching the disk.
- Vorherrschende Sprache
- JavaScript
- Sterne
- 58
- Forks
- 15
- Ø Merge
- 16 Std. 53 Min.
- Gemergte PRs (30 T.)
- 14
Entwicklungsumgebung
- Kein Dockerfile und keine Docker-Compose-Datei
- Hat eine Pull-Request-Vorlage
- Beitragsleitfaden lesen
Erste Schritte
- Lesen Sie das ganze Issue und danach den Beitragsleitfaden des Projekts.
- Schreiben Sie ins Issue, dass Sie es übernehmen — das erspart doppelte Arbeit.
- Forken Sie das Repository und arbeiten Sie in einem Branch.
- Öffnen Sie einen Pull Request, der die Issue-Nummer nennt.
Mehr aus TMHSDigital/Free-Game-Dev-Assets
-
community marketing priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Maintainer antworten meist innerhalb von 1 Tag
-
documentation priority: medium
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
Maintainer antworten meist innerhalb von 1 Tag
-
enhancement
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 Kommentar ·
Maintainer antworten meist innerhalb von 1 Tag
-
marketing priority: low
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
Maintainer antworten meist innerhalb von 1 Tag
-
feature priority: medium
Schwierigkeit 5/5 Über eine Woche Anfängerfreundlichkeit 25/100
TMHSDigital/Free-Game-Dev-Assets#144 ·
Maintainer antworten meist innerhalb von 1 Tag
Alle Issues in TMHSDigital/Free-Game-Dev-Assets
Ähnliche Issues
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 78/100
Yomguithereal/mnemonist#247 ·
-
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
up-for-grabs/up-for-grabs.net#6330 ·
Maintainer antworten meist innerhalb von 1 Tag
-
Schwierigkeit 1/5 1-3 Stunden Anfängerfreundlichkeit 72/100
TheOdinProject/curriculum#31490 ·
Maintainer antworten meist innerhalb von 1 Tag
-
bug require-triage
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
expressjs/expressjs.com#2549 · 1 Reaktion ·
Maintainer antworten meist innerhalb von 1 Tag
-
Docs: no path for someone who just wants to try IndiekitEvtl. vergeben @rmdes hat das heute übernommen. Offen
Schwierigkeit 2/5 1-3 Stunden Anfängerfreundlichkeit 72/100
getindiekit/indiekit#1028 ·
Maintainer antworten meist innerhalb von 1 Tag