Skip to content

fix(ratewise): 內容頁骨架去 sticky 重構+跨頁重複內容收斂 - #658

Merged
s123104 merged 1 commit into
experiment/ratewise-product-2026h2from
fix/content-page-skeleton
Jul 6, 2026
Merged

fix(ratewise): 內容頁骨架去 sticky 重構+跨頁重複內容收斂#658
s123104 merged 1 commit into
experiment/ratewise-product-2026h2from
fix/content-page-skeleton

Conversation

@s123104

@s123104 s123104 commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

摘要

依使用者裁決「內容頁上方不該隨用戶滾動」執行骨架重構,並收斂跨頁逐字重複內容(SEO duplicate content)。單一 PR,請勿 merge,等待使用者審核

範圍 1:內容頁頂列去 sticky(7 頁共用骨架)

對象:PageNavHeader(FAQ/指南/關於/隱私/開放資料/SEO 揭露/開源共用)。

項目 Before After
頂列定位 sticky top-0 z-20 捲動時常駐 靜態,隨內容捲走
視覺 bg-background/90 backdrop-blur-md border-b(模糊玻璃) 無模糊、無分隔線(韓系扁平)
safe-area 頂列自帶 pt-[calc(0.625rem+env(safe-area-inset-top))] 移至 ContentPageLayout 容器 .pt-safe-top(repo 既有類)
錨點偏移 scroll-mt-[calc(5rem+env(safe-area-inset-top))](為 sticky 預留) scroll-mt-[calc(1rem+env(safe-area-inset-top))]
側欄快速導航 lg:sticky lg:top-16(為頂列預留 4rem) lg:sticky lg:top-6(保留桌面 sticky 行為,只校正 offset)

守門測試同步改寫:PageNavHeader.safe-area.test.tsx(7 頁 smoke:頂列不得 sticky/backdrop-blur/border-b,容器必含 pt-safe-top)、ContentPageLayout.test.tsx(scroll-mt 新值)。

範圍 2:跨頁重複內容收斂(SSOT)

全站掃描(新增 scripts/qa/scan-duplicate-sentences.mjs,以 dist 預渲染 HTML 句級比對):改動前 17 個跨頁逐字重複句 → 改動後 11 個(其餘為 app 殼/導覽連結文案,見下方保留清單)。

收斂對照表

重複內容 原出現頁 canonical 歸屬 收斂方式
「現金匯率和即期匯率有什麼差別」「匯率多久更新一次」「離線時可以使用嗎」3 題逐字 Q&A 指南頁+FAQ 頁/首頁 /faq/(問答 SSOT) 指南頁 FAQ 段改 GUIDE_FAQ_BRIDGE(seo-metadata SSOT)情境化摘要(含 DCC 導流)+「查看完整答案 →」連結;移除頁尾重複的「查看更多常見問題」連結
授權聲明三句(程式碼授權/資料版權/免責聲明) 開放資料頁+開源頁 /open-source/(授權主題頁) 文案抽為 LICENSING_NOTICE(seo-metadata SSOT),開源頁引用全文;開放資料頁改一句摘要+「查看完整授權聲明 →」連結
「依換匯情境切換現金匯率或即期匯率。」 指南頁 HowTo 步驟 6+34 幣別頁 HowTo 幣別頁模板 GUIDE_HOW_TO_STEPS 步驟 6 改寫為差異化句式
「現金與即期不是同一種匯率」 指南頁技巧卡標題+/cash-vs-spot-rate/ 主標 /cash-vs-spot-rate/ 指南頁卡片改題「分清楚現金與即期兩種報價」

保留(申報為非內容重複)

  • 全站 footer/noscript 免責句(「本服務匯率資料參考臺灣銀行牌告匯率…」等 4 句):App 殼 chrome,非頁面內容。
  • 「了解為何 Google、XE 顯示的匯率與銀行臨櫃不同」「臨櫃換鈔與外幣帳戶該看哪種匯率」:RelatedGuideLink 導覽連結描述(描述同一目標頁)。
  • 「如何使用 HaoRate 進行匯率換算」:首頁 HowTo schema 名稱=指南頁 H1,實體同一。
  • © 版權列(關於頁+開源頁):頁尾慣例。
  • DCC 主題在 FAQ 與 /card-rate-guide/ 為主題重疊但無逐字複製(各自特化),FAQ 為問答 SSOT、攻略頁為主題長文——保留。

FAQPage schema 維持既有規則:只在 /faq/ 輸出(本次未動 jsonLd)。

驗證

  • pnpm --filter @app/ratewise exec vitest run184 檔 4816 綠(seo-ssot/seo-copy-guard 守門通過)
  • verify-visible-text-parity:幣別頁抽樣 5 頁全 PASS(零 diff);非目標內容頁 //about//privacy//seo-tech/、3 攻略頁全 PASS(零 diff)
  • 目標頁差異申報:/guide/(−9/+4 節點,逐字 Q&A → 摘要導流)、/open-data/(−8/+2 節點,授權全文 → 摘要導流)、/faq//open-source/ 零 diff
  • SSG 建置後 git status 無 tracked 產物漂移(markdown mirrors 不受影響)
  • pre-commit 5 步驟+pre-push(typecheck+test+build:ratewise)全過
  • 截圖:screenshots/content-skeleton/(before/after × FAQ/指南/關於 × 390/768/1440 + standalone safe-area 59px 模擬 × top/scrolled,共 48 張)
    • standalone 59px:頂列不被狀態列遮蔽(safe-area 由容器承擔);捲動後除狀態列模糊帶(既有 app 殼)外,無任何 fixed 元素遮蔽內容
    • before 捲動後 sticky 半透明列壓在內容上;after 內容全幅呈現

附註

  • 002 條目已新增(reward +1)。分派指示的基準總分 +166 與分支現值不符:experiment/ratewise-product-2026h2 檔頭現值為 +170,依 SSOT 公式(最新總分=前次總分+本次變化)記為 +171
  • changeset:patch(使用者可感知的閱讀體驗改善+內容導流調整)。

Made with Cursor

@chatgpt-codex-connector

Copy link
Copy Markdown

You have reached your Codex usage limits for code reviews. You can see your limits in the Codex usage dashboard.
To continue using code reviews, you can upgrade your account or add credits to your account and enable them for code reviews in your settings.

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

⚠️ Deprecation Warning: The deny-licenses option is deprecated for possible removal in the next major release. For more information, see issue 997.

Dependency Review

✅ No vulnerabilities or license issues or OpenSSF Scorecard issues found.

Scanned Files

None

@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

✅ SEO 審計通過!所有 2026 標準驗證項目都符合要求。

  • ✅ Sitemap 2026 標準
  • ✅ Breadcrumb Schema
  • ✅ JSON-LD 結構化數據
  • ✅ 內部連結結構

- PageNavHeader 改靜態頂列(不 sticky、不 backdrop-blur、無 border-b),隨內容捲動
- safe-area 適配移至 ContentPageLayout 容器 pt-safe-top,standalone 下頂列不進瀏海
- 錨點 scroll-mt 偏移縮小為 safe-area 加小間距,指南與隱私側欄 sticky offset 校正為 top-6
- 指南頁 FAQ 段改 GUIDE_FAQ_BRIDGE 摘要導流,問答全文唯一歸屬 /faq/(SSOT)
- 開放資料頁授權聲明改 LICENSING_NOTICE 摘要導流,全文唯一歸屬 /open-source/
- 新增跨頁重複句掃描與前後截圖 QA 腳本,骨架守門測試同步改寫

測試:typecheck、vitest run 4816 綠、text-parity 幣別頁與非目標頁零 diff、build:ratewise 通過

Co-authored-by: Cursor <cursoragent@cursor.com>
@s123104
s123104 force-pushed the fix/content-page-skeleton branch from 0dbb23e to d74e307 Compare July 6, 2026 22:00
@github-actions

github-actions Bot commented Jul 6, 2026

Copy link
Copy Markdown
Contributor

✅ SEO 審計通過!所有 2026 標準驗證項目都符合要求。

  • ✅ Sitemap 2026 標準
  • ✅ Breadcrumb Schema
  • ✅ JSON-LD 結構化數據
  • ✅ 內部連結結構

@s123104
s123104 merged commit d7ee683 into experiment/ratewise-product-2026h2 Jul 6, 2026
11 checks passed
@s123104
s123104 deleted the fix/content-page-skeleton branch July 6, 2026 22:18
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant