每日热点新闻(Daily Hot News)在 VS Code 里刷当天的热点新闻:18 个板块、纯文字、离线可读,每板块 10 条真实新闻、摘要 200–400 字并保留原文链接;另有 30 条真实热搜(合并最近 7 天)、全球股市行情表与近一月真实要闻回顾。 新闻数据随插件包一起分发(放在仓库的
✨ 功能
🚀 使用
🗓 历史新闻与日期跳转
命令(
|
| 命令 | 说明 |
|---|---|
热点新闻: 跳转到指定日期 |
QuickPick 选择日期,查看保留的历史新闻 |
热点新闻: 选择新闻分类 |
QuickPick 快速跳转到某个分类 |
热点新闻: 搜索热点新闻 |
输入关键词并在侧边栏过滤 |
热点新闻: 刷新新闻数据 |
清除缓存并重新读取数据文件 |
热点新闻: 打开新闻数据文件 |
直接打开 index.json 或某天的数据文件 |
热点新闻: 关于与数据统计 |
查看数据日期、分类数、条数与数据目录 |
设置项
| 设置 | 默认值 | 说明 |
|---|---|---|
hotNews.defaultCategory |
all |
打开时默认选中的分类 id |
hotNews.summaryLines |
2 |
列表中摘要显示行数(0 为隐藏) |
hotNews.localDataPath |
空 | 指向本地 news 目录,便于维护时实时预览 |
hotNews.showStatusBar |
true |
是否显示状态栏入口 |
📁 数据结构
news/
├── index.json # 分类定义 + 日期索引
└── data/
├── 2026-11-02.json # 某一天的新闻
└── 2026-11-01.json
news/index.json
{
"version": 1,
"updatedAt": "2026-11-02T07:55:00+08:00",
"categories": [
{ "id": "tech", "name": "科技", "emoji": "💻", "description": "芯片、终端与通信" }
],
"days": [
{ "date": "2026-11-02", "file": "data/2026-11-02.json", "counts": { "tech": 3 } }
]
}
分类数量必须 ≥ 10;
id只能使用小写字母、数字与连字符,且需与数据文件中的键名一致。
news/data/YYYY-MM-DD.json
{
"date": "2026-11-02",
"updatedAt": "2026-11-02T07:55:00+08:00",
"headline": "今日看点一句话概述",
"categories": {
"tech": [
{
"time": "07:10",
"title": "新闻标题",
"summary": "200–400 字原文摘要,保留来源与原文链接;不足 200 字的条目不会入库。",
"source": "来源名称",
"tags": ["芯片", "端侧"],
"points": ["热点一:一句话要点。", "热点二:一句话要点。"],
"highlights": [
{ "title": "要闻标题", "detail": "一句话说明", "market": "US", "stage": "listed", "ticker": "NVDA" }
],
"pointItems": [
{ "text": "要点内容,建议 40 至 80 字。", "market": "US", "stage": "pre-ipo", "ticker": "" }
],
"table": {
"caption": "表格标题(可选)",
"columns": ["市场", "指数", "收盘", "涨跌幅", "要点"],
"rows": [["美股", "标普500", "6,842.31", "+0.58%", "科技股领涨"]]
},
"url": "https://example.com/optional"
}
]
}
}
字段说明:
title:必填,纯文字。summary:必填,200–400 字;侧边栏展开显示正文,复制全文时一并复制。points:可选,热点罗列;真实 RSS 模式下默认不生成。highlights/pointItems:旧版 AI 股市结构,可选;真实 RSS 模式下不再生成。table:可选,结构化表格,详情页以可横向滚动的表格展示;rows每行列数需与columns一致。source/time/tags/url:可选,url仅用于复制,插件不会自动联网打开。heat/rank:热搜专用,分别为热度值与原始排名;插件用heat合并排序最近 7 天快照。- 只有
title非空的条目会被展示。
固定格式(全球股市 / 黄金)
为保证每天更新后展示一致,以下结构不要改动:
stocks(全球股市):必须包含table,表头固定为市场 / 指数 / 最新 / 涨跌幅 / 说明,行首必须覆盖美股、港股、A股、韩股。aistocks(AI 与股市):与其他板块一致,固定 10 条真实新闻。monthly(近一月回顾):固定 10 条真实要闻,由中新网归档页抓取;历史日期可留空数组,插件会回退到最新一天。gold(黄金行情):保留行情表(品种 / 最新价 / 日涨跌 / 说明)。geopolitics(全球局势):10 条真实国际局势新闻。hotsearch(热搜):每日快照固定 30 条,必须有title、source、url、heat、rank;历史日期可留空数组。插件会自动合并最近 7 天快照,按热度取前 30 条。
npm run news:validate 会校验:非热搜板块各 10 条、摘要 200–400 字、原文链接、热搜 30 条结构。--strict 模式下警告也会失败。
🔄 每天更新流程(维护者)
# 1. 生成当天数据(公开 RSS / 频道页,10 条/板块,摘要 200–400 字)
npm run news:fetch
# 或指定日期
node scripts/fetch-news.mjs --date=2026-11-03
# 2. 抓取真实热搜(今日头条热榜,不需要 API Key)
npm run news:hotsearch
# 3. 数据已自动写入 news/data/2026-11-03.json 并同步 index.json
# 真实 RSS 模式不再手工补写;抓取不足 10 条会直接失败,不会用模板凑数
# 不要删除 news/data 下的旧日期文件,历史新闻会永久保留
# 4. 校验数据格式
npm run news:validate # 严格模式:node scripts/validate-news.mjs --strict
# 5. 检查数据新鲜度
npm run news:freshness
# 6. 提交并发布新版本
git add news
git commit -m "news: 2026-11-03"
git push
# 7. 提升版本号并打包 / 发布
npm version patch --no-git-tag-version
npm run compile
npx vsce package # 生成 .vsix
npx vsce publish # 发布到 VS Code Marketplace
也可以直接把整理好的 JSON 手动覆盖到
news/data/并更新news/index.json,插件只依赖文件本身,不关心数据来源。
本地预览技巧:在插件设置中把 hotNews.localDataPath 指向仓库里的 news 目录,然后在 VS Code 中修改 JSON 并执行「刷新新闻数据」即可看到效果,无需重新打包。
GitHub Actions
.github/workflows/validate-news.yml:推送修改news/时自动校验数据格式与新鲜度。.github/workflows/daily-news-reminder.yml:每天北京时间 09:00 检查最新数据日期,落后超过 1 天会自动创建提醒 Issue。
🛠 本地开发
npm install
npm run compile # 编译 TypeScript 到 out/
npm run watch # 监听编译
在 VS Code 中按 F5 启动「运行扩展」,即可打开扩展开发宿主窗口调试。
npm test # 数据校验 + Webview 冒烟测试 + 宿主逻辑测试
scripts/validate-news.mjs:校验数据格式(分类数、字段、日期一致性)scripts/test-webview.mjs:用 jsdom 验证列表、分类、搜索、详情与复制消息scripts/test-host.cjs:用 vscode API 模拟器验证激活、数据下发与命令
node scripts/make-icon.mjs # 重新生成 icon.png
📦 发布到 VS Code Marketplace
- 注册 Azure DevOps 并创建 Personal Access Token(Marketplace → Manage 权限)。
- 在 Marketplace 管理页 创建 publisher。
- 修改
package.json中的publisher、repository、bugs、homepage为你的真实信息(本项目已配置为500TSSD/https://github.com/500T-HardDisk/daily-hot-news)。 - 登录并发布:
npx vsce login 500TSSD
npx vsce publish
发布前检查清单:
- [ ]
displayName、description、README.md、CHANGELOG.md、LICENSE完整 - [ ]
icon.png为 128×128 PNG - [ ]
news/index.json中至少 18 个分类、每板块 10 条真实新闻、摘要 200–400 字(热搜 30 条除外),且最新日期为当天/昨天 - [ ]
npm run news:validate -- --strict通过 - [ ]
out/extension.js已编译(vsce会自动执行npm run vscode:prepublish)
🔒 隐私
- 插件不收集任何数据,不包含遥测,不发任何网络请求。
- 所有新闻内容随插件包分发,来源与版权由维护者负责;请在转载时注明来源。
📄 License
MIT