Preview checker: `<meta>` tags inside a `<script>` string override the real ones
Maintainer thường phản hồi trong vòng 1 ngày
Chưa có ai nhận issue này.
Đánh giá
- Độ khó
- 2/5
- Thời gian dự kiến
- 1-3 giờ
- Mức phù hợp với người mới
- 84/100
- Loại issue
- Lỗi
- Độ rõ ràng
- Đặc tả rõ ràng
- Mức độ hoạt động
- Sôi nổi
- Công nghệ
- typescript
- Lĩnh vực
- backend
Hướng nghiên cứu
Bắt đầu với parseMetaTags() trong src/lib/meta-fetcher.ts và các bài kiểm thử cho parser đó. Kiểm tra cách comment được loại bỏ, sau đó bổ sung trường hợp kiểm thử cho các phần tử script có thuộc tính và chữ hoa chữ thường xen kẽ, bao gồm JSON-LD và nhiều script. Thêm một bài kiểm thử hồi quy cho thấy các thẻ bên trong script không ảnh hưởng đến kết quả title, meta hoặc canonical, trong khi các thẻ bên ngoài script vẫn được phân tích như trước.
Do mô hình lập chỉ mục viết ra từ nội dung của issue.
Mô tả
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.
- Ngôn ngữ chính
- TypeScript
- Star
- 8
- Fork
- 4
- Merge trung bình
- 8 giờ 44 phút
- Pull request đã merge (30 ngày)
- 159
Chuẩn bị môi trường
- Không có Dockerfile hay tệp Docker Compose
- Có mẫu pull request
- Đọc hướng dẫn đóng góp
Bắt đầu từ đâu
- Đọc hết issue, rồi đọc hướng dẫn đóng góp của dự án.
- Bình luận trên issue rằng bạn sẽ nhận — tránh hai người làm cùng một việc.
- Fork repository và làm thay đổi trên một nhánh.
- Mở pull request có tham chiếu số hiệu của issue.
Issue khác của codercops/ogcops
-
Preview checker: a `<title>` written over several lines keeps its line break and indentationCó thể đã có người làm @bhushan4work đã nhận 1 ngày trước. Đang mởbug good first issue
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 84/100
codercops/ogcops#393 · 1 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug] “Copy Recommended Meta Tags” generates an unusable placeholder image URLCó thể đã có người làm @CreatorguyS đã nhận 7 ngày trước. Đang mởbug enhancement
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 72/100
codercops/ogcops#378 · 4 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
-
bug good first issue
Độ khó 3/5 1-2 ngày Mức phù hợp với người mới 78/100
Maintainer thường phản hồi trong vòng 1 ngày
-
Add the Do and Don't tutorial template (`tutorial-do-dont`)Có thể đã có người làm @Ravindar-Amogh-Gummadavelly đã nhận 7 ngày trước. Đang mởgood first issue templates
codercops/ogcops#355 · 2 bình luận · 1 người được giao ·
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement
Độ khó 5/5 Hơn một tuần Mức phù hợp với người mới 30/100
codercops/ogcops#341 · 2 bình luận ·
Maintainer thường phản hồi trong vòng 1 ngày
Tất cả issue của codercops/ogcops
Issue tương tự
-
Độ khó 1/5 1-3 giờ Mức phù hợp với người mới 86/100
ranxianglei/billion-context#5893 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
stringify escapes leading digits in pseudo-class arguments (:nth-child(1) becomes :nth-child(\31 ))Đang mở
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Maintainer thường phản hồi trong vòng 1 ngày
-
enhancement security severity:low
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 83/100
Battle-Cattle/BCUK-Bot-4#959 ·
Maintainer thường phản hồi trong vòng 1 ngày
-
[Bug]: Claude account rows no longer show the email (since #8055), so "Account 1, 2, 3" cannot be told apartCó thể đã có người làm Có pull request liên kết đang mở hoặc đã được merge. Đang mởaccount-pool bug gui
Độ khó 2/5 1-3 giờ Mức phù hợp với người mới 76/100
lidge-jun/opencodex#8286 · 2 bình luận · 1 reaction ·
Maintainer thường phản hồi trong vòng 1 ngày
-
Độ khó 1/5 Dưới một giờ Mức phù hợp với người mới 72/100
Maintainer thường phản hồi trong vòng 1 ngày