features generate-docs: `$` sequences in NOTES.md and descriptions are expanded as String.replace patterns, splicing the README template into the output
Mantenedores costumam responder em até 1 dia
Ninguém assumiu esta issue ainda.
Avaliação
- Dificuldade
- 2/5
- Tempo estimado
- 1-3 horas
- Facilidade para iniciantes
- 82/100
- Tipo de issue
- Bug
- Clareza
- Claramente especificada
- Status de atividade
- Ativa
- Stack de tecnologia
- typescript
- Domínio
- cli
Direção de pesquisa
O template é preenchido em src/spec-node/collectionCommonUtils/generateDocsCommandImpl.ts por volta das linhas 170-182, onde .replace() é chamado com valores de string. Substitua essas chamadas, para o conteúdo fornecido pelo usuário (notas, nome, descrição, descrições das opções), por uma função replacer e depois execute o repro novamente: um NOTES.md contendo $ deve aparecer literalmente no README.md gerado, sem uma segunda cópia do template. Está concluído quando a saída corresponde ao texto esperado e $', $& e $$ também passam inalterados.
Escrita pelo modelo de indexação a partir do texto da issue.
Descrição
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.
- Linguagem predominante
- TypeScript
- Estrelas
- 3k
- Forks
- 462
- Merge médio
- 13h 28min
- PRs com merge (30d)
- 2
Preparar o ambiente
Inicia o contêiner de desenvolvimento do projeto no navegador, com a sua própria conta do GitHub.
- Sem Dockerfile nem arquivo Docker Compose
- Sem modelo de pull request
- Ler o guia de contribuição
Primeiros passos
- Leia a issue inteira e depois o guia de contribuição do projeto.
- Comente na issue dizendo que vai assumir — evita que duas pessoas façam o mesmo trabalho.
- Faça um fork do repositório e trabalhe em uma branch.
- Abra um pull request que referencie o número da issue.
Mais de devcontainers/cli
-
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 92/100
devcontainers/cli#1203 ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 1/5 1-3 horas Facilidade para iniciantes 68/100
devcontainers/cli#1178 · 1 comentário ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 3/5 Meio dia Facilidade para iniciantes 45/100
devcontainers/cli#1324 ·
Mantenedores costumam responder em até 1 dia
-
`devcontainer build` fails on Buildx 0.37.2 because the generated Dockerfile is outside the Compose bake contextTalvez já em andamento @v-Kaniska244 assumiu há 4 dias. Aberta
devcontainers/cli#1320 · 2 reações · 1 responsável ·
Mantenedores costumam responder em até 1 dia
-
Dificuldade 4/5 3-5 dias Facilidade para iniciantes 55/100
devcontainers/cli#1319 ·
Mantenedores costumam responder em até 1 dia
Todas as issues de devcontainers/cli
Issues semelhantes
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 82/100
Agenta-AI/agenta#7542 · 1 comentário · 1 reação ·
Mantenedores costumam responder em até 1 dia
-
code quality security
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 78/100
Mantenedores costumam responder em até 1 dia
-
enhancement good first issue
Dificuldade 2/5 1-3 horas Facilidade para iniciantes 90/100
-
feat(icons): add [solidping]Aberta
Dificuldade 1/5 Menos de uma hora Facilidade para iniciantes 82/100
homarr-labs/dashboard-icons#2939 ·
Mantenedores costumam responder em até 1 dia