Hacktoberfest 2026 : les issues que les mainteneurs ont marquées pour octobre, ouvertes et accessibles aux débutants. Parcourir les issues Hacktoberfest

features generate-docs: `$` sequences in NOTES.md and descriptions are expanded as String.replace patterns, splicing the README template into the output

Ouverte Adaptée aux débutants
#1,325 0 commentaires 0 réactions 0 personnes assignées Voir sur GitHub

Les mainteneurs répondent en général sous 1 jour

Personne n'a encore pris cette issue.

Évaluation

Difficulté
2/5
Temps estimé
1-3 heures
Accessibilité débutants
82/100
Type d'issue
Bug
Clarté
Clairement spécifiée
Activité
Active
Stack technique
typescript
Domaine
cli

Piste de recherche

Le modèle est rempli dans src/spec-node/collectionCommonUtils/generateDocsCommandImpl.ts autour des lignes 170-182, où .replace() est appelé avec des valeurs de chaîne. Remplacez ces appels pour le contenu fourni par l'utilisateur (notes, nom, description, descriptions des options) par une fonction de remplacement, puis relancez le repro : un NOTES.md contenant $ doit apparaître littéralement dans le README.md généré, sans seconde copie du modèle. C'est terminé lorsque la sortie correspond au texte attendu et que $', $& et $$ sont aussi conservés sans modification.

Rédigé par le modèle d'indexation à partir du texte de l'issue.

Description

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.

Langage dominant
TypeScript
Étoiles
3k
Forks
462
Merge moyen
13 h 28 min
PR mergées (30 j)
2

Préparer son environnement

Ouvrir dans Codespaces

Lance le conteneur de développement du projet dans votre navigateur, avec votre propre compte GitHub.

Par où commencer

  1. Lisez l'issue en entier, puis le guide de contribution du projet.
  2. Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
  3. Forkez le dépôt et travaillez sur une branche.
  4. Ouvrez une pull request qui référence le numéro de l'issue.

Autres issues de devcontainers/cli

Toutes les issues de devcontainers/cli

Issues similaires

Plus d'issues TypeScript

Recevez les nouvelles issues par e-mail

Un résumé court des issues GitHub adaptées aux débutants.