features generate-docs: `$` sequences in NOTES.md and descriptions are expanded as String.replace patterns, splicing the README template into the output
Los mantenedores suelen responder en 1 día
Nadie ha tomado este issue todavía.
Evaluación
- Dificultad
- 2/5
- Tiempo estimado
- 1-3 horas
- Aptitud para principiantes
- 82/100
- Tipo de issue
- Error
- Claridad
- Bien especificado
- Estado de actividad
- Activo
- Stack tecnológico
- typescript
- Área
- cli
Línea de trabajo
La plantilla se completa en src/spec-node/collectionCommonUtils/generateDocsCommandImpl.ts alrededor de las líneas 170-182, donde se llama a .replace() con valores de cadena. Reemplaza esas llamadas para el contenido proporcionado por el usuario (notas, nombre, descripción, descripciones de opciones) por una función de reemplazo y luego vuelve a ejecutar el repro: un NOTES.md que contenga $ debe aparecer literalmente en el README.md generado, sin una segunda copia de la plantilla. Está listo cuando la salida coincide con el texto esperado y $', $& y $$ también se mantienen sin cambios.
Escrito por el modelo de indexación a partir del texto del issue.
Descripción
Problem
If a Feature's NOTES.md contains $` (for example the markdown `$`), the generated README.md gets a second copy of the README template at that point: the title, the description, and an "Example Usage" block with literal #{Registry}/#{Namespace}/<id>:#{Version} and #{Customizations}. $', $& and $$ also misbehave, and so do name, description and option descriptions in devcontainer-feature.json.
Repro (CLI 0.89.0; same on main at 155f8b2)
mkdir -p src/demo
echo '{ "id": "demo", "version": "1.0.0", "name": "Demo", "description": "A demo." }' > src/demo/devcontainer-feature.json
echo 'Escape quotes, `$` or backslashes.' > src/demo/NOTES.md
devcontainer features generate-docs -p src -n x/y
- Expected:
Escape quotes, `$` or backslashes. - Actual:
Escape quotes, `, then the template copy (# Demo (demo),## Example Usage,#{Registry}/#{Namespace}/demo:#{Version},#{Customizations}), then` or backslashes.
Cause
src/spec-node/collectionCommonUtils/generateDocsCommandImpl.ts:170-182 fills the template with .replace('#{…}', value). With a string replacement, String.prototype.replace expands $`, $', $& and $$ (MDN). The same code is in devcontainers/action src/generateDocs.ts:152-162.
Suggested fix
Pass a replacer function, as in .replace('#{Notes}', () => generateNotesMarkdown()), for every placeholder that takes user content.
Not the same as #1324, which is about how option values are sourced at build time.
- Lenguaje dominante
- TypeScript
- Estrellas
- 3k
- Forks
- 462
- Merge medio
- 13 h 28 min
- PR fusionados (30 d)
- 2
Preparar el entorno
Inicia el contenedor de desarrollo del proyecto en tu navegador, con tu propia cuenta de GitHub.
- Sin Dockerfile ni archivo de Docker Compose
- Sin 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 devcontainers/cli
-
Dificultad 1/5 Menos de una hora Aptitud para principiantes 92/100
devcontainers/cli#1203 ·
Los mantenedores suelen responder en 1 día
-
Dificultad 1/5 1-3 horas Aptitud para principiantes 68/100
devcontainers/cli#1178 · 1 comentario ·
Los mantenedores suelen responder en 1 día
-
Dificultad 3/5 Medio día Aptitud para principiantes 45/100
devcontainers/cli#1324 ·
Los mantenedores suelen responder en 1 día
-
`devcontainer build` fails on Buildx 0.37.2 because the generated Dockerfile is outside the Compose bake contextPosiblemente ocupada @v-Kaniska244 la tomó hace 5 días. Abierto
devcontainers/cli#1320 · 4 reacciones · 1 asignado ·
Los mantenedores suelen responder en 1 día
-
Allow setting build attestationsAbierto
Dificultad 4/5 3-5 días Aptitud para principiantes 55/100
devcontainers/cli#1319 ·
Los mantenedores suelen responder en 1 día
Todos los issues de devcontainers/cli
Issues similares
-
Dificultad 2/5 1-3 horas Aptitud para principiantes 72/100
better-auth/better-auth#11723 · 1 reacción ·
Los mantenedores suelen responder en 1 día
-
area: docs difficulty: easy documentation good first issue
Dificultad 2/5 1-3 horas Aptitud para principiantes 82/100
Los mantenedores suelen responder en 1 día
-
Worker-Erstellung bricht langsame Git-Worktree-Checkouts nach 20 Sekunden abPosiblemente ocupada @KajoVanBuyten la tomó hoy. Abierto
Dificultad 2/5 1-3 horas Aptitud para principiantes 69/100
AgentSystemLabs/agent-office#367 ·
Los mantenedores suelen responder en 1 día
-
bug
Dificultad 2/5 1-3 horas Aptitud para principiantes 78/100
pierrecomputer/pierre#1187 ·
Los mantenedores suelen responder en 1 día
-
area: frontend bug
Dificultad 1/5 1-3 horas Aptitud para principiantes 85/100
snapotter-hq/SnapOtter#2425 ·
Los mantenedores suelen responder en 1 día