一个精简的 AI 信息流静态网站。每日通过接口抓取文章、论文和应用/项目推荐,规范化为 JSON,再由 Astro 生成可部署到任意静态托管平台的页面。
- Astro:适合内容型静态站,输出纯静态资源,运行时负担低。
- Node fetch 脚本:不引入额外抓取框架,直接把 API 数据落到
src/data/feed.json。 - GitHub Actions:每日定时抓取并构建,可发布到 GitHub Pages、Netlify、Vercel 或 Cloudflare Pages。
npm install
npm run fetch
npm run dev构建静态资源:
npm run build构建产物在 dist/。
抓取最新信息流并构建:
npm run refresh抓取已经 AI 分析过的文章并构建:
AINEWS_API_TOKEN=... npm run refresh:api默认数据源在 config/feeds.json:
- Hacker News Algolia:AI 相关文章
- Semantic Scholar:AI 论文
- GitHub Search:AI 应用和开源项目
可以通过环境变量覆盖或追加:
AI_NEWS_KEYWORDS="artificial intelligence,llm,agents"
AI_NEWS_MAX_ITEMS=36
GITHUB_TOKEN=...如果接口短暂失败,CI 会使用已有的 src/data/feed.json 继续构建,避免发布中断。
GitHub Actions 默认使用 scripts/fetch-ainews-api.mjs 从 /api/public/articles 分页拉取已分析文章。接口单页最多 100 条,脚本会自动翻页,直到达到 AINEWS_MAX_ITEMS 或 API 返回最后一页。
常用环境变量:
AINEWS_API_TOKEN=... # 必填,作为 X-Api-Token 请求头
AINEWS_API_URL=http://47.115.229.74:8080
AINEWS_GRADE=A,B # 默认只展示高评级
AINEWS_DAYS=7 # 默认抓最近 7 天
AINEWS_MAX_ITEMS=300 # 默认最多写入 300 条
AINEWS_PAGE_LIMIT=100 # API 单页上限
AINEWS_QUICK_JUDGMENT=Must,Maybe
AINEWS_MIN_SCORE=7
AINEWS_DOMAIN=AIGitHub Actions 手动运行时可以调整 grade、days 和 max_items。