Not a raw feed

Zoaso (zoaso.tech) is a hotspot / news-digest tracker:

  • Output is event cards + daily digests — not a dump of raw posts
  • Emphasis on change and signal: related items cluster; duplicates do not flood the board
  • Default language zh-CN, English at /en/, timezone Asia/Shanghai

Bot pipeline (overview)

1

Fetch

Pull RSS / X / Weibo placeholders from config/feeds.yaml.

2

Normalize

Unify title, time, URL, and language fields.

3

Dedupe

Skip seen URLs / fingerprints against state/seen.json.

4

Cluster

Merge multi-source coverage of one story into a single event card.

5

Summarize

Bot writes short summaries, tags, and importance.

6

Write Hugo

Emit Markdown per CONTENT_SCHEMA.md → build → static deploy.

Deeper ops notes live in the repo:

  • CONTENT_SCHEMA.md (repo root, outside the built site)
  • bot/README.md, bot/routines/daily_digest.md
  • scripts/write_markdown_example.py

Deploy

The site targets Cloudflare Pages with custom domain zoaso.tech. Build command:

hugo --minify

Output directory: public/. Recommended Hugo Extended 0.169.0+.

Privacy & secrets

This repository holds no production secrets. Source cookies, X tokens, and notification webhooks stay in environment variables or private config.