features generate-docs: `$` sequences in NOTES.md and descriptions are expanded as String.replace patterns, splicing the README template into the output
I maintainer di solito rispondono entro 1 giorno
Nessuno ha ancora preso questa issue.
Valutazione
- Difficoltà
- 2/5
- Tempo stimato
- 1-3 ore
- Idoneità per principianti
- 82/100
- Tipo di issue
- Bug
- Chiarezza
- Specificata chiaramente
- Stato di attività
- Attiva
- Stack tecnologico
- typescript
- Ambito
- cli
Direzione di ricerca
Il template viene compilato in src/spec-node/collectionCommonUtils/generateDocsCommandImpl.ts intorno alle righe 170-182, dove .replace() viene chiamato con valori stringa. Sostituisci queste chiamate per i contenuti forniti dall'utente (note, nome, descrizione, descrizioni delle opzioni) con una funzione di sostituzione, poi riesegui il repro: un NOTES.md contenente $ deve comparire letteralmente nel README.md generato, senza una seconda copia del template. È completato quando l'output corrisponde al testo atteso e anche $', $& e $$ passano invariati.
Scritto dal modello di indicizzazione a partire dal testo della issue.
Descrizione
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.
- Lingua principale
- TypeScript
- Stelle
- 3k
- Fork
- 462
- Merge medio
- 13h 28m
- PR unite (30g)
- 2
Preparare l'ambiente
Avvia il container di sviluppo del progetto nel browser, con il tuo account GitHub.
- Nessun Dockerfile né file Docker Compose
- Nessun 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 devcontainers/cli
-
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 92/100
devcontainers/cli#1203 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 1/5 1-3 ore Idoneità per principianti 68/100
devcontainers/cli#1178 · 1 commento ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 3/5 Mezza giornata Idoneità per principianti 45/100
devcontainers/cli#1324 ·
I maintainer di solito rispondono entro 1 giorno
-
`devcontainer build` fails on Buildx 0.37.2 because the generated Dockerfile is outside the Compose bake contextForse già presa @v-Kaniska244 l’ha presa 4 giorni fa. Aperta
devcontainers/cli#1320 · 2 reazioni · 1 assegnatario ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 4/5 3-5 giorni Idoneità per principianti 55/100
devcontainers/cli#1319 ·
I maintainer di solito rispondono entro 1 giorno
Tutte le issue di devcontainers/cli
Issue simili
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 78/100
I maintainer di solito rispondono entro 1 giorno
-
feat(icons): add [solidping]Aperta
Difficoltà 1/5 Meno di un'ora Idoneità per principianti 82/100
homarr-labs/dashboard-icons#2939 ·
I maintainer di solito rispondono entro 1 giorno
-
Agent/category reasoning variants are still checked against the stale model cache in chat.paramsApertaopencode
Difficoltà 2/5 1-3 ore Idoneità per principianti 75/100
code-yeongyu/oh-my-openagent#10003 ·
I maintainer di solito rispondono entro 1 giorno
-
Difficoltà 2/5 1-3 ore Idoneità per principianti 77/100
I maintainer di solito rispondono entro 1 giorno
-
Actions on ToastsAperta
Difficoltà 2/5 1-3 ore Idoneità per principianti 65/100
nextcloud-libraries/nextcloud-dialogs#2669 ·
I maintainer di solito rispondono entro 1 giorno