Skip to content

实现说明

当前代码结构

text
news-base/
├── .vitepress/
│   ├── config.mts
│   └── theme/
│       ├── custom.css
│       └── components/
├── config/
│   ├── categories.json
│   └── news_sources.json
├── docs/
│   ├── index.md
│   ├── today.md
│   ├── skills/
│   └── {category}/index.md
├── public/api/
└── scripts/
    ├── crawl_news.js
    ├── quick-crawl.js
    ├── quick-deploy.js
    └── crawlers/main.js

脚本职责

  • scripts/crawl_news.js 负责读取配置、生成结构化新闻数据、写入 public/api/data/daily/
  • scripts/quick-crawl.js 兼容“快速生成数据”的旧入口,现在直接复用主脚本。
  • scripts/quick-deploy.js 用脚本方式串起 npm run site:preparenpm run build
  • scripts/crawlers/main.js 兼容旧命令入口,避免历史脚本调用直接失效。

页面层实现

  • NewsMetrics.vue 首页站点概览卡片,消费 overview.json
  • NewsDashboard.vue 今日总览页,消费 latest.json 并提供筛选、搜索和排序。
  • NewsBoard.vue 分类专区页,消费 categories/{id}.json

为什么这是“可替换实现”

只要未来的真实抓取器继续输出相同字段:

  • 页面层不需要重写。
  • 文档里的 API 契约不需要重写。
  • Cloudflare Pages 构建链路不需要重写。

也就是说,后续变化只会集中在数据生产层,而不会波及整个站点。

News Base 让站点、数据与技能文档共用同一份配置。