Skip to content

feat(web): add zero-dependency static report reader - #99

Open
Vik1n9 wants to merge 1 commit into
xbtlin:mainfrom
Vik1n9:feat/web-report-reader
Open

feat(web): add zero-dependency static report reader#99
Vik1n9 wants to merge 1 commit into
xbtlin:mainfrom
Vik1n9:feat/web-report-reader

Conversation

@Vik1n9

@Vik1n9 Vik1n9 commented Aug 23, 2026

Copy link
Copy Markdown
Contributor

概述

reports/ 加了一个纯静态、零依赖的阅读前端(web/),本地起个 HTTP server 就能用:

python3 scripts/build_report_index.py
python3 -m http.server 8080 --directory web
  • 公司分组浏览、标题与全文搜索、报告类型筛选
  • 《看懂 XX》这类系列文章的连续阅读(自动排序、上一篇/下一篇导航)
  • 索引脚本纯 Python 标准库(无 PyYAML),前端纯 JS(无框架/构建工具)
  • 用仓库现有 2295 篇真实报告验证过索引脚本(日期推导、系列侦测、bottleneck-map 信号扫描过滤)

新增文件

  • web/index.html web/app.js web/md-render.js — 前端
  • scripts/build_report_index.py — 建索引
  • scripts/add_frontmatter.py — 给没有 frontmatter 的报告补 company/type/date 等字段(默认 dry-run,只打印会改什么;--apply 才写入)
  • web/reports — 指回 ../reports 的 symlink(Python http.server --directory web 只服务 web/ 底下的内容,靠这个 symlink 让报告内容"看起来"也在 web/ 底下)

说明

  • 不改动任何现有 skill / CLAUDE.md / 报告内容,纯增量
  • README.md / README_EN.md / README_JA.md 各自补了一段用法说明
  • web/index.html 不能用 file:// 直接打开(报告全文是即时 fetch 原始 .md 渲染的,CORS 会挡),必须用上面的 HTTP server

Test plan

  • python3 scripts/build_report_index.py 跑过 2295 篇真实报告,索引产出正常(no_date=0
  • 本地起 server,浏览器验证:公司分组数字、全文搜索、系列文章连续阅读(含书名号《》路径的报告全文渲染)、目录跳转
  • console 无报错

Standalone reading front-end for reports/ — company-grouped browsing,
full-text search, type filtering, and continuous reading for 《系列》
series articles. Pure Python stdlib index builder (no PyYAML), pure
JS front-end (no framework/bundler). UI text matches this repo's
existing Simplified Chinese convention.

Includes scripts/add_frontmatter.py to backfill YAML frontmatter on
reports that don't have any yet (dry-run by default, --apply to write).
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

1 participant