try 去除 more on subjuect

# 📋 PRD:CRYPTO WIRE — 纯前端加密货币沉浸式新闻看板 ## 完整版 · 手机/桌面双端 · 零配置即开即用 --- ## 一、项目背景与目标 构建一个**无后端、单 HTML 文件**的加密货币新闻看板。 打开即用,**无需任何 API Key**(默认模式走零密钥 RSS 聚合),点击可选接入更强 API。 左侧新闻流 · 右侧 iframe 原文阅读 · 底部实时价格跑马灯。 --- ## 二、API 选型(已调研确认,2025年6月可用) ### ✅ 方案 A:零 Key,开箱即用(默认首选) **rss2json.com 免费 RSS 转 JSON 代理** ``` GET https://api.rss2json.com/v1/api.json?rss_url={ENCODED_RSS_URL}&count=20 ``` 无需注册,无需 Key,CORS 全开,免费 10 req/min。 内置多个加密媒体 RSS 源(自动轮询,任一失败自动切换): | 媒体来源 | RSS Feed URL | |---|---| | CoinDesk | https://www.coindesk.com/arc/outboundfeeds/rss/ | | CoinTelegraph | https://cointelegraph.com/rss | | Decrypt | https://decrypt.co/feed | | Bitcoin Magazine | https://bitcoinmagazine.com/feed | | Blockworks | https://blockworks.co/feed | 返回字段:`title`, `link`, `pubDate`, `author`, `thumbnail`, `description`, `content` --- ### ✅ 方案 B:CryptoPanic(免费注册获 Token,最专业) ``` GET https://cryptopanic.com/api/v1/posts/?auth_token={TOKEN}&public=true&kind=news¤cies=BTC,ETH ``` - 注册地址:https://cryptopanic.com/accounts/register/ - 免费额度:1,000 次/月 - 返回:title, url, source, published_at, currencies, votes(情绪评分) - 特色:有 🔥hot / 📈bullish / 📉bearish 情绪标签 --- ### ✅ 方案 C:Newsdata.io(免费注册,200 credits/天) ``` GET https://newsdata.io/api/1/latest?apikey={KEY}&q=Crypto&language=en ``` - 注册地址:https://newsdata.io/register - 免费额度:200 次/天,每次最多 10 条 - 返回:title, link, image_url, description, source_id, pubDate --- ### ✅ 实时价格跑马灯:CoinGecko(完全免费,无 Key) ``` GET https://api.coingecko.com/api/v3/coins/markets?vs_currency=usd&ids=bitcoin,ethereum,solana,bnb,xrp,dogecoin&order=market_cap_desc ``` - 无需注册,无需 Key,30 次/分钟 - 返回:name, symbol, current_price, price_change_percentage_24h, image --- ## 三、界面布局 ### 桌面端(>768px):左右 50/50 分屏 ``` ┌─────────────────────────────────────────────────────────────┐ │ ⚡ CRYPTOWIRE [来源选择器▼] [KEY输入] [🔄FETCH] │ ├─────────────────────────────────────────────────────────────┤ │ LEFT: 新闻流(独立滚动) │ RIGHT: 原文 iframe(全高) │ │ ┌──────────────────────┐ │ ┌───────────────────────┐ │ │ │ [来源] [时间] │ │ │ [标题栏] [↗打开原文] │ │ │ │ 加粗大标题(2行截断) │ │ │ │ │ │ │ [🖼缩略图] [摘要文字] │ │ │ iframe 100%宽高 │ │ │ └──────────────────────┘ │ │ 原汁原味原文网页 │ │ │ ┌──────────────────────┐ │ │ │ │ │ │ ...更多卡片... │ │ └───────────────────────┘ │ ├─────────────────────────────────────────────────────────────┤ │ 📊 BTC $97,200 +1.2% ETH $3,400 -0.5% SOL $180 +3.1% │ └─────────────────────────────────────────────────────────────┘ ``` ### 手机端(≤768px):Tab 切换模式 - 顶部 Tab:**📰 Feed** | **📄 Article** - Feed Tab:全屏竖向新闻卡片流 - Article Tab:全屏 iframe 阅读器 - 点击新闻卡片自动切换到 Article Tab --- ## 四、功能需求 ### F1 — 多数据源切换器(顶部 Select) 用户可在 Header 的下拉选择切换当前数据源: - `📡 RSS (免费,无需Key)` ← 默认 - `⚡ CryptoPanic (需Token)` - `📰 Newsdata.io (需Key)` 选择付费源时,显示对应的 Key 输入框,值存 localStorage。 ### F2 — 新闻卡片 每张卡片包含: 1. 来源标签(彩色 badge)+ 发布时间(x分钟前) 2. 标题(Syne 字体,粗体,最多2行省略) 3. 缩略图(16:9,懒加载,404时显示占位)+ 摘要文字(3行省略) 4. 鼠标悬停:左边高亮金线 + 轻微右移动画 ### F3 — iframe 原文阅读 - 点击卡片 → 右侧 iframe 加载原文 - `sandbox="allow-scripts allow-same-origin allow-popups allow-forms"` - 右上角常驻「↗ 在新标签打开」按钮(应对 X-Frame-Options: DENY) - iframe 加载中显示 spinner ### F4 — 实时价格跑马灯 - 底部固定一行,滚动展示 BTC/ETH/SOL/BNB/XRP/DOGE 实时价格 - 绿涨红跌颜色标注 - 每60秒静默刷新 ### F5 — 本地缓存 - API Key 存 localStorage,下次打开自动回填 - 已选数据源存 localStorage - 上次拉取结果缓存5分钟,避免频繁消耗配额 --- ## 五、视觉规范 | 变量 | 值 | |---|---| | 背景主色 | `#07080d` | | 卡片底色 | `#13141c` | | 金色高亮 | `#f0b90b` | | 青色辅助 | `#00d4ff` | | 标题文字 | `#f0f1f5` | | 摘要文字 | `#7a8099` | | 主字体 | Syne(标题)+ DM Sans(正文)+ DM Mono(数据)| --- ## 六、技术实现要点 ### CORS 处理 - rss2json.com 已内置 CORS 代理,直接 fetch 即可 - CryptoPanic 官方 API 支持 CORS - Newsdata.io 官方 API 支持 CORS ### iframe X-Frame-Options 降级 部分网站(如 Bloomberg、WSJ)设置了 `X-Frame-Options: DENY`,无法嵌入。 解决方案:iframe 顶部常驻「↗ 原文」按钮,一键新标签打开。 ### 移动端 100vh 问题 使用 `height: 100dvh` + fallback `height: 100vh`,解决 Safari 地址栏遮挡问题。 --- ## 七、完整源代码 见同目录 `crypto-wire.html` — 直接打开即可使用,无需安装任何依赖。 **默认即用**:打开 HTML → 自动加载 CoinDesk + CoinTelegraph RSS 新闻 **升级体验**:点击来源选择器切换到 CryptoPanic / Newsdata.io,输入免费 Token 获得更多数据 --- ## 八、API Key 获取步骤 ### CryptoPanic(推荐,免费) 1. 访问 https://cryptopanic.com/accounts/register/ 2. 注册后进入 https://cryptopanic.com/developers/api/keys 3. 复制 auth_token 粘贴到应用的 Key 输入框 ### Newsdata.io(可选,免费200次/天) 1. 访问 https://newsdata.io/register 2. 注册后在 Dashboard 复制 API Key 3. 粘贴到应用的 Key 输入框 ### rss2json.com(默认,完全无需注册) - 无需任何操作,打开即用 --- *文档版本:v2.0 | 更新时间:2025年6月*