Preview checker: `<meta>` tags inside a `<script>` string override the real ones
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
- 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 les tests de ce parseur. Vérifiez comment les commentaires sont supprimés, puis couvrez les éléments script avec des attributs et une casse mixte, notamment JSON-LD et plusieurs scripts. Ajoutez un test de régression montrant que les balises à l’intérieur des scripts n’affectent pas les résultats du titre, des métadonnées ou du canonical, tandis que les balises en dehors des scripts sont analysées comme avant.
Rédigé par le modèle d'indexation à partir du texte de l'issue.
Description
parseMetaTags() in src/lib/meta-fetcher.ts strips HTML comments before it looks for tags (#389), but it still reads tags out of <script> contents. In HTML a script's contents are plain text, so a browser never sees tags written inside a JavaScript string, but the checker does, and a later meta tag overwrites an earlier one:
parseMetaTags(`
<meta property="og:title" content="Pricing | Acme">
<script>const share = '<meta property="og:title" content="Untitled">';</script>
`, 'https://example.com').ogTitle
// "Untitled"
It goes the other way for the tags where the first one wins: a <title> or <link rel="canonical"> inside a script before the real ones is picked instead, so a page gets Draft and https://acme.dev/draft instead of Pricing | Acme and https://acme.dev/pricing.
What to do
- Remove
<script>elements with their contents (any attributes, any case) right after the comments are stripped, so everything below works on HTML without them. A non-greedy match up to the first</script>is enough, since that's where HTML ends a script too.
Acceptance criteria
- A
<title>,<meta>or<link>inside a<script>, before or after the real tag, never changes the result - Tags outside scripts parse the same as today, including a page with several scripts and a
<script type="application/ld+json"> - A test that fails on the current code
-
npm run check,npm run testandnpm run buildpass
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
- Aucun Dockerfile ni fichier Docker Compose
- Propose un modèle de pull request
- Lire le guide de contribution
Par où commencer
- Lisez l'issue en entier, puis le guide de contribution du projet.
- Signalez en commentaire que vous la prenez — cela évite que deux personnes fassent le même travail.
- Forkez le dépôt et travaillez sur une branche.
- Ouvrez une pull request qui référence le numéro de l'issue.
Autres issues de codercops/ogcops
-
Preview checker: a `<title>` written over several lines keeps its line break and indentationPeut-être pris @bhushan4work l’a pris il y a 1 jour. Ouvertebug good first issue
Difficulté 2/5 1-3 heures Accessibilité débutants 84/100
codercops/ogcops#393 · 1 commentaire · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug] “Copy Recommended Meta Tags” generates an unusable placeholder image URLPeut-être à nouveau libre @CreatorguyS l’a pris il y a 7 jours, et aucune pull request n’est ouverte. Ouvertebug enhancement
Difficulté 2/5 1-3 heures Accessibilité débutants 72/100
codercops/ogcops#378 · 4 commentaires ·
Les mainteneurs répondent en général sous 1 jour
-
bug good first issue
Difficulté 3/5 1-2 jours Accessibilité débutants 78/100
Les mainteneurs répondent en général sous 1 jour
-
Add the Do and Don't tutorial template (`tutorial-do-dont`)Peut-être pris @Ravindar-Amogh-Gummadavelly l’a pris il y a 7 jours. Ouvertegood first issue templates
codercops/ogcops#355 · 2 commentaires · 1 personne assignée ·
Les mainteneurs répondent en général sous 1 jour
-
enhancement
Difficulté 5/5 Plus d'une semaine Accessibilité débutants 30/100
codercops/ogcops#341 · 2 commentaires ·
Les mainteneurs répondent en général sous 1 jour
Toutes les issues de codercops/ogcops
Issues similaires
-
Difficulté 1/5 1-3 heures Accessibilité débutants 86/100
ranxianglei/billion-context#5893 ·
Les mainteneurs répondent en général sous 1 jour
-
stringify escapes leading digits in pseudo-class arguments (:nth-child(1) becomes :nth-child(\31 ))Ouverte
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Les mainteneurs répondent en général sous 1 jour
-
enhancement security severity:low
Difficulté 2/5 1-3 heures Accessibilité débutants 83/100
Battle-Cattle/BCUK-Bot-4#959 ·
Les mainteneurs répondent en général sous 1 jour
-
[Bug]: Claude account rows no longer show the email (since #8055), so "Account 1, 2, 3" cannot be told apartPeut-être pris Une pull request liée à cette issue est ouverte ou déjà fusionnée. Ouverteaccount-pool bug gui
Difficulté 2/5 1-3 heures Accessibilité débutants 76/100
lidge-jun/opencodex#8286 · 2 commentaires · 1 réaction ·
Les mainteneurs répondent en général sous 1 jour
-
Difficulté 1/5 Moins d'une heure Accessibilité débutants 72/100
Les mainteneurs répondent en général sous 1 jour