全平台追踪「一人公司」(One Person Company, OPC)热门资讯的静态情报聚合站点。
一个零依赖、单文件的科技感数据看板:所有情报沉淀在 data.json,页面在浏览器端读取并渲染。推送 main 分支后由 Cloudflare Pages 与 GitHub Pages 双通道自动发布。
线上地址:https://opc-radar.pages.dev/ 备用地址:https://wxzhongwang.github.io/opc-radar/
OPC(One Person Company,一人公司)指 AI 时代以「一人 + 智能体」为核心组织形态的轻量化创业范式。 本站围绕这一主题,从政策动向、社区落地、创业案例、生态工具、研究报告、赛事活动、风险观察、全球视野、趋势观察九个维度做持续聚合。
- 九维分类聚合:政策动向、社区落地、创业案例、生态工具、研究报告、赛事活动、风险观察、全球视野、趋势观察,每类独立配色与筛选。
- 三页协同:资讯流(
index.html)+ 找社区 + 找人,顶部导航直达。 - 地理分布看板:按地区汇总情报数量,纯 SVG 简版示意图(省级着色 + 城市气泡 + 南海诸岛小图)与城市排行联动,点击互相高亮。零 Key、零配额、零外部请求。
- 找社区 · 按距离排序:授权定位后社区列表由近到远排序(球面直线距离),未授权可按城市浏览;每条附来源链接与地址精度分级。
- 找人 · 开放登记簿:收录社区主动登记的 OPC,支持 GitHub Issue 表单与 Pull Request 两种登记方式,公开范围由登记者自定。
- 双视图浏览:卡片网格与时间线视图一键切换,支持全文搜索、分类筛选与热度 TOP 10 排行。
- 零构建静态部署:无打包、无框架、无数据库、无 CDN 依赖,数据与页面分离,推送即发布。
- 零数据采集:无后端、无注册、无表单落库;定位信息只在本机内存参与计算,统计脚本可一键关闭。
opc-radar/
├── index.html # 资讯流 + 数据洞察 + 地理分布
├── community.html # 找社区(定位 + 距离排序 + 分布示意图)
├── people.html # 找人(OPC 登记簿 + 登记引导)
├── geo.js # 共享地理工具(城市坐标表 / 距离 / 可选的合规底图加载器)
├── chinamap.js # 示意图边界数据(自动生成,勿手改)
├── map-svg.js # 简版示意图渲染器(纯 SVG,零依赖)
├── tools/
│ └── build_chinamap.py # chinamap.js 生成器(含版图完整性自检)
├── data.json # 情报数据(唯一数据源)
├── communities.json # 社区登记簿(名称 / 地址 / 坐标 / 精度 / 来源)
├── people.json # OPC 创业者登记簿(PR 方式维护)
├── CONTRIBUTING.md # 贡献指南(登记、纠错、投递、部署注意)
├── README.md
└── .github/
├── ISSUE_TEMPLATE/
│ ├── opc-register.yml # OPC 登记表单(自动打 opc-profile 标签)
│ ├── community-fix.yml # 社区信息纠错表单
│ └── config.yml # 模板选择器配置
├── PULL_REQUEST_TEMPLATE.md
└── workflows/
├── deploy.yml # push main 自动部署 GitHub Pages
└── label-opc-issue.yml # 兜底补打 opc-profile 标签
⚠️ 新增页面或数据文件后,必须同步更新.github/workflows/deploy.yml的_site拷贝清单,否则不会部署到 Pages。
- 零外部依赖:不引用任何 CDN、字体或 JS 库,断网与内网环境同样可用。
- 数据与页面分离:
data.json是唯一数据源;index.html内嵌同一份数据副本以满足file://直接打开,同时启动后会尝试fetch("data.json")刷新为最新版本。 - 科技感视觉:深色霓虹主题、Canvas 粒子网络背景、扫描线动效、KPI 数字滚动、卡片 / 时间线双视图、详情抽屉与 Markdown 一键复制。
- 全端响应式:覆盖 1080 / 900 / 640 / 400px 四档断点与横屏矮屏、触屏、超小屏场景;无横向滚动(16 档视口 × 常规/抽屉两种状态实测零溢出)。
| 断点 | 布局行为 |
|---|---|
> 1080px |
桌面全量布局:统计区双列、卡片多列网格 |
≤ 1080px |
卡片轨道下限收窄到 300px,环形图间距收紧 |
≤ 900px |
统计区改单列;顶部导航变为可横向滑动的紧凑条(不再整体隐藏) |
≤ 640px |
单列卡片;KPI 双列;搜索独占一行、分类条横向滚动(粘性控制台高度压缩);搜索框 16px 防 iOS 聚焦缩放;时间线日期换行到标题上方;抽屉全屏 |
≤ 400px |
KPI 改单行紧凑式;抽屉按钮纵向堆叠;隐藏时间线分类角标 |
| 横屏矮屏 | max-height ≤ 520px 时取消控制台粘性定位,避免占满可视区 |
工程细节:
- 防撑宽:所有
white-space:nowrap的 flex 子项(卡片来源、TOP10 标题等)显式声明min-width:0,grid 轨道一律用minmax(0,1fr)而非裸1fr,杜绝内容把容器撑出横向滚动。 - 刘海屏安全区:
viewport-fit=cover+env(safe-area-inset-*),横屏时内容不会被挖孔遮挡。 - 触屏优化:
@media(hover:none)加大点击热区、取消 hover 位移;-webkit-tap-highlight-color去除点击高亮。 - 无障碍:
@media(prefers-reduced-motion:reduce)关闭粒子背景与全部动画。
data.json:
字段说明:
| 字段 | 说明 |
|---|---|
id |
唯一标识,格式 opc-NNN |
category |
必须命中 meta.categories 之一,决定卡片配色与筛选归属 |
date |
YYYY-MM-DD,用于排序与月度时间轴 |
region |
地区 / 国家,用于覆盖地区统计 |
heat |
0–100 热度值,用于默认排序与 TOP 10 排行 |
summary |
卡片摘要,建议 40–70 字 |
content |
详情正文,以 \n· 分隔的要点列表 |
url |
原文链接 |
- 编辑
data.json,按上表追加条目(id不重复、category在分类白名单内)。 - 若新增条目需要离线可用,把
data.json内容重新内嵌回index.html的var EMBEDDED = …(可选;线上环境会自动fetch最新数据)。 - 提交并推送到
main,Cloudflare Pages 与 GitHub Pages 会自动发布。
git add -A
git commit -m "chore(data): 新增 N 条 OPC 情报"
git push origin main| 页面 | 作用 | 数据源 |
|---|---|---|
index.html |
资讯流、数据洞察、地理分布(按地区汇总数量) | data.json |
community.html |
找社区:定位后按距离由近到远排序 + 地图打点 | communities.json |
people.html |
找人:已登记 OPC 卡片 + 登记引导 | people.json + GitHub Issues |
- 默认使用矢量示意图,不接地图服务:
index.html与community.html的地图是map-svg.js渲染的纯 SVG 简版示意图——只表达「分布大致在哪些省市」,不做精确底图。 因此不需要任何地图 Key、不消耗调用配额、不请求任何地图服务,断网与内网同样可用, 也从根本上绕开了商用授权问题。 - 边界数据必须可溯源:
chinamap.js由tools/build_chinamap.py生成,来源为 阿里云 DataV 公开行政区划边界, 含台湾省、香港特别行政区、澳门特别行政区与南海诸岛(九段线),脚本会先自检这四项、 缺一即拒绝生成。严禁替换为来源不明、缺省台湾省/南海诸岛或边界走向错误的 GeoJSON—— 那属于《地图管理条例》所指的「问题地图」。 - 如需真实底图(可选):
geo.js保留了合规的腾讯位置服务 GL JS 加载器。 禁止 Google Maps、Apple Maps、Bing 海外版、Mapbox,以及 Leaflet 直连 OpenStreetMap 等任何不合规来源。 启用步骤:① 在 腾讯位置服务 申请 JavaScript GL 类型 Key; ② 在 Key 的「域名白名单」填入wxzhongwang.github.io;③ 在页面中设置window.OPCGEO_TMAP_KEY = "你的Key"。个人免费额度 1 万次/日,仅限非商用。 - 疆域与敏感点:不对国界、台湾、南海诸岛等要素自行改写;不标注军事禁区、涉密单位与未公开的敏感坐标。
- 坐标精度诚实标注:
communities.json的lat/lng为行政区或园区中心点近似值,不是门牌坐标, 仅用于距离估算与分布示意;每条记录带precision字段(building/park/district/city),页面上以徽章明示。
- 浏览器定位(
navigator.geolocation)的结果只存在于页面内存中,用于本地计算直线距离; 不写入 localStorage / Cookie,不上传服务器,不入库,刷新即失效。 - 符合《个人信息保护法》对位置信息的处理要求:不收集、不存储、不公开他人位置数据。
communities.json收录的是公开机构场所(政府与媒体已公开报道的社区),非个人信息。
- Issue 表单(推荐):打开
opc-register.yml表单填写提交, 模板自带opc-profile标签;.github/workflows/label-opc-issue.yml会兜底补打标签。 - Pull Request:在
people.json的items数组末尾追加一条对象(id留空,合并时分配)。 people.html启动时读取people.json,并调用 GitHub Issues API 拉取带opc-profile标签的公开 Issue,两者合并去重后展示。
未登录状态调用 GitHub API 有 每小时 60 次 的限额。超限时页面会提示,
people.json中的登记不受影响。
登记字段与注意事项见 CONTRIBUTING.md。
直接双击 index.html 即可(内嵌数据模式)。若要验证 fetch 刷新链路,需起一个静态服务:
python -m http.server 8000
# 打开 http://localhost:8000站点内置可插拔的统计接入层(见 index.html 底部的 window.ANALYTICS)。所有脚本异步注入,任一服务加载失败都会静默降级,不影响页面任何功能。
页脚实时显示「总访问 / 独立访客 / 本页浏览」,无需注册任何账号,部署完即有数据。
| 服务 | 免费额度 | 能力 | 需注册 | 配置字段 |
|---|---|---|---|---|
| 不蒜子 Busuanzi | 免费无上限 | PV / UV 计数 | 否(默认开启) | busuanzi.enabled |
| Microsoft Clarity | 免费无上限 | 热图、会话录制、点击分析 | 是 | clarity.id |
| Cloudflare Web Analytics | 免费无上限 | 流量 / 来源 / 地区,无 cookie | 是 | cloudflare.token |
| Umami Cloud | 免费层 3 站点 / 10 万事件每月 | 隐私友好、轻量看板 | 是 | umami.id |
| GoatCounter | 免费托管(非商业) | 极轻量 PV 与来源 | 是 | goatcounter.code |
| Google Analytics 4 | 免费 | 全量流量分析与转化 | 是 | ga4.id |
只改 index.html 底部这一处,无需改动其它代码:
window.ANALYTICS.clarity = { enabled: true, id: "你的项目 ID" };
window.ANALYTICS.cloudflare = { enabled: true, token: "你的 beacon token" };
window.ANALYTICS.ga4 = { enabled: true, id: "G-XXXXXXXXXX" };推荐组合:不蒜子(页脚即时可见)+ Microsoft Clarity(免费的会话录制与热图,无流量上限)。
window.ANALYTICS.busuanzi.enabled = false;统计脚本由访客浏览器直接向对应服务商发起请求,本站无中间服务器、不采集任何表单数据。若面向欧盟用户或有合规要求,建议只启用无 cookie 的方案(不蒜子 / Cloudflare / Umami / GoatCounter)并相应调整隐私声明。
纯静态、无构建步骤,推送 main 分支后由两条通道自动发布。
- 线上地址:https://opc-radar.pages.dev/
- 关联 GitHub 仓库的
main分支,推送即触发构建并发布仓库根目录 - 附带分支预览与构建回滚能力
当前使用 Deploy from a branch:Pages 源为 main 分支的 / 根目录,推送即发布,无需构建步骤(纯静态、无外部依赖,Jekyll 不会改动任何文件)。
仓库 Settings → Pages → Source 需为 Deploy from a branch / main / / (root)。
若希望走显式构建流程(组装 _site/、写入 .nojekyll、可控 artifact),可将 .github/workflows/deploy.yml 加入仓库,并把 Pages 的 Source 切到 GitHub Actions。
该工作流在 push main 或手动 workflow_dispatch 时触发:
actions/configure-pages@v5初始化 Pages;- 组装
_site/(index.html+data.json+.nojekyll); actions/upload-pages-artifact@v3打包;actions/deploy-pages@v4发布到 GitHub Pages。
注意:推送
.github/workflows/**需要所用 Token 具备 Workflows: Read and write 权限(classic token 对应workflowscope),否则 GitHub 会拒绝该文件的推送。
本项目基于 MIT License 开源,可自由用于学习、二次开发与商业用途。情报内容整理自公开渠道,版权归原作者所有。
数据整理自公开渠道,仅作信息聚合与研究参考,不构成任何投资或政策建议。
{ "meta": { "title": "OPC 情报站 · OPC Radar", "subtitle": "全平台追踪「一人公司」热门资讯", "updated": "2026-09-10", "description": "……", "sourceCount": 40, "categories": ["政策动向", "社区落地", "创业案例", "生态工具", "研究报告", "赛事活动", "风险观察", "全球视野", "趋势观察"] }, "items": [ { "id": "opc-001", "title": "北京发布《支持人工智能 OPC 创新发展行动方案(试行)》", "category": "政策动向", "date": "2026-07-02", "source": "央视网 / 北京市经济和信息化局", "region": "北京", "heat": 97, "tags": ["OPC贷", "开办服务专区", "Token增信", "算力券"], "summary": "一句话摘要。", "content": "· 要点一\n· 要点二", "url": "https://…" } ] }