build.mjs and thumbs.mjs trust `meta.id` for file paths, and the id regex lives in three copies
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 4/5
- Tiempo estimado
- 3-5 días
- Aptitud para principiantes
- 52/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- javascript, node.js
- Área
- build-system, security
Línea de trabajo
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.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
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.
- Lenguaje dominante
- JavaScript
- Estrellas
- 58
- Forks
- 15
- Merge medio
- 18 h 42 min
- PR fusionados (30 d)
- 11
Preparar el entorno
- Sin Dockerfile ni archivo de Docker Compose
- Tiene una plantilla de pull request
- Leer la guía de contribución
Primeros pasos
- Lee el issue completo y luego la guía de contribución del proyecto.
- Comenta en el issue que vas a ocuparte — evita que dos personas hagan lo mismo.
- Haz un fork del repositorio y trabaja en una rama.
- Abre un pull request que haga referencia al número del issue.
Más de TMHSDigital/Free-Game-Dev-Assets
-
community marketing priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
TMHSDigital/Free-Game-Dev-Assets#151 ·
Los mantenedores suelen responder en 1 día
-
documentation priority: medium
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
TMHSDigital/Free-Game-Dev-Assets#72 ·
Los mantenedores suelen responder en 1 día
-
enhancement
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
TMHSDigital/Free-Game-Dev-Assets#3 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
correction
Dificultad 2/5 1-3 horas Aptitud para principiantes 57/100
TMHSDigital/Free-Game-Dev-Assets#162 ·
Los mantenedores suelen responder en 1 día
-
marketing priority: low
Dificultad 2/5 1-3 horas Aptitud para principiantes 55/100
TMHSDigital/Free-Game-Dev-Assets#152 ·
Los mantenedores suelen responder en 1 día
Todos los issues de TMHSDigital/Free-Game-Dev-Assets
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
Fei2411/DeepSeek-Bot#634 ·
-
beginner-friendly category:sarif community enhancement first-timers-only good first issue hacktoberfest help wanted low hanging fruit micro-contribution type: task up-for-grabs
Dificultad 1/5 Menos de una hora Aptitud para principiantes 76/100
Berserk-hub150/skillhawk#244 · 1 comentario ·
Los mantenedores suelen responder en 8 días
-
enhancement javascript python
Dificultad 2/5 1-3 horas Aptitud para principiantes 66/100
jlab-sensing/ENTS-backend#851 ·
Los mantenedores suelen responder en 2 días
-
Pin GitHub Actions to Ubuntu 26.04Posiblemente ocupada @krusty93 la tomó hoy. Abiertochore infra:workflow-automation
Dificultad 1/5 Menos de una hora Aptitud para principiantes 91/100
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 86/100
guilhermerodz/input-otp#157 · 1 comentario ·