Preview checker: a `<title>` written over several lines keeps its line break and indentation

Ouverte Adaptée aux débutants
#393 1 commentaire 0 réactions 1 personne assignée Voir sur GitHub

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

@bhushan4work y travaille déjà.

Depuis le 6/11/2026.

  • #398 par @bhushan4work — ouverte

Évaluation

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

Piste de recherche

Commencez par parseMetaTags() dans src/lib/meta-fetcher.ts et trouvez les tests existants d’analyse des titres, y compris le test qui préserve les espaces internes dans content des balises meta. Ajoutez un test en échec pour les titres contenant des retours à la ligne et des espaces ASCII répétés, puis vérifiez que le comportement de content des balises meta n’a pas changé. Le travail est terminé lorsque le titre correspond à la réduction des espaces par le navigateur et que les commandes de vérification, de test et de build indiquées réussissent.

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

Description

bug good first issue

parseMetaTags() in src/lib/meta-fetcher.ts only trims the ends of the <title> text (decodeEntities(titleMatch[1].trim())), so a title written over several lines keeps the line break and the indentation in the middle. Browsers strip and collapse that whitespace (document.title gives Cutting cold starts in half with Fluid Compute | Acme Blog), but the checker keeps it:

parseMetaTags(`<title>
              Cutting cold starts in half with Fluid Compute
              | Acme Blog
      </title>`, 'https://example.com').title
// "Cutting cold starts in half with Fluid Compute\n              | Acme Blog"

That 58-character title gets "Title is 72 chars (recommended: under 70)" from analyzeMeta(), and the Google Search preview (resolvePlatformPreviews() in src/lib/platform-specs.ts) cuts it at 60 characters in the middle of the whitespace, so | Acme Blog never shows.

What to do

  • After decoding entities, collapse each run of ASCII whitespace (space, tab, newline, carriage return, form feed) in the title to one space and strip it from both ends, the way document.title does. &nbsp; isn't ASCII whitespace, so it stays.
  • Leave meta content values as they are. They keep their inner whitespace on purpose (the "trims decoded meta content while preserving internal whitespace" test).

Acceptance criteria

  • The title above comes out as Cutting cold starts in half with Fluid Compute | Acme Blog, and tabs or double spaces inside a title collapse the same way
  • Meta content values and every existing parseMetaTags test stay as they are
  • A test that fails on the current code
  • npm run check, npm run test and npm run build pass

Want to work on this? Comment below and I'll assign it to you. Please take one issue at a time, branch off dev, and open your PR against dev with Closes #NUM in the description.

Langage dominant
TypeScript
Étoiles
8
Forks
4
Merge moyen
8 h 44 min
PR mergées (30 j)
159

Préparer son environnement

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 codercops/ogcops

Toutes les issues de codercops/ogcops

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.