build.mjs and thumbs.mjs trust `meta.id` for file paths, and the id regex lives in three copies
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 4/5
- Tempo stimato
- 3-5 giorni
- Idoneità per principianti
- 52/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- javascript, node.js
- Ambito
- build-system, security
Direzione di ricerca
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.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- JavaScript
- Stelle
- 58
- Fork
- 15
- Merge medio
- 16h 53m
- PR unite (30g)
- 14
Preparare l'ambiente
- Nessun Dockerfile né file Docker Compose
- Ha un modello di pull request
- Leggi la guida per i contributori
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/Free-Game-Dev-Assets
-
community marketing priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
I maintainer di solito rispondono entro 1 giorno
-
documentation priority: medium
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
I maintainer di solito rispondono entro 1 giorno
-
enhancement
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
marketing priority: low
Difficoltà 2/5 1-3 ore Idoneità per principianti 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
I maintainer di solito rispondono entro 1 giorno
-
feature priority: medium
Difficoltà 5/5 Più di una settimana Idoneità per principianti 25/100
TMHSDigital/Free-Game-Dev-Assets#144 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di TMHSDigital/Free-Game-Dev-Assets
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 68/100
awesome-dsh-plugin/awesome-dsh-plugin#9184 ·
I maintainer di solito rispondono entro 1 giorno
-
CloudredirectAperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 70/100
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
I maintainer di solito rispondono entro 1 giorno
-
0.2.1-rc.3 compatibility: 21 peer ranges enumerate exact versions, so rc.3 is rejectedForse già presa Una pull request collegata a questa issue è aperta o già unita. Aperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 76/100
NanmiCoder/dsh-agent-teams#277 ·
I maintainer di solito rispondono entro 1 giorno
-
[ordering-review] workshop order graph: 1 confirmed ordering problem, 3 cycles are false positivesAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
githubnext/gh-aw-workshop#4943 ·
I maintainer di solito rispondono entro 1 giorno