# 星图
**Repository Path**: ai1950/starmap
## Basic Information
- **Project Name**: 星图
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: MIT
- **Default Branch**: main
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 1
- **Forks**: 0
- **Created**: 2026-10-28
- **Last Updated**: 2026-10-28
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 星图 · StarMap(五维文化地图)
> 把**人物、物件、事件、地点、时间**存成点,把**关系**连成线 —— 让知识与文化的记录,成为人人可走的足迹。
| 演示 | 地址 |
|---|---|
| 母版(本仓库代码 + 样例数据) | |
| 实际站点(同一份代码 + 生产数据,仅作效果参照) | |
---
## ⭐ 来源说明:本项目基于开源项目 **StarMap** 二开
```
上游项目:Aisland-SJL/StarMap
https://github.com/Aisland-SJL/StarMap
许可 :MIT License(Copyright (c) 2026 Aisland-SJL)—— 见本仓库 LICENSE,未做任何删改
我们的基线:17eebdf(v0.3.2,2026-09-02)
我们的改动:① 多站主题化(一份代码 + theme.env 变出多个站)
② 接入五维+关系数据(travel-map.json),右栏五目与关系图按数据驱动
③ 中文文案、站点品牌、若干界面与路由修正
⛔ 我们不是原创者:原始架构、地球引擎与地图交互来自上游;我们是在其之上二开。
✅ 依 MIT 要求:保留上游版权与许可声明;我们的改动同样以 MIT 释出。
```
> 若您也要基于**本项目**做分支:请照 [FORK_SYNC.md](FORK_SYNC.md) 的同步义务办 ——
> 我们怎么对待上游,就请怎么对待我们(否则会跟着一起脱节)。
---
## 这是什么
一个**本地优先**的五维文化地图前端:左边是地图与时间轴,右边是「物 / 事 / 人物 / 时间线 / 地」五目,
点一个词条进详情页,详情页里是正文、来源与关系。
- 数据是一份 JSON(`travel-map.json`),**换数据就是换站**
- 站点身份是一份 `theme.env`(站名、域名、数据地址、主题色、页签叫法)
- 不依赖数据库:静态托管即可(我们的生产站在华为云 AGC 云托管上)
---
## 30 秒跑起来
```bash
git clone https://gitee.com/ai1950/starmap.git
cd starmap
npm ci
# 1) 配站点身份(四个键:站名/英文名/域名/数据地址)
cp theme.example.env theme.env
# 把 VITE_SITE_NAME_ZH / VITE_SITE_NAME_EN / VITE_SITE_DOMAIN / VITE_CLOUD_DATA_URL 填上
# 想先看效果:VITE_CLOUD_DATA_URL 指到仓库自带样例即可(见下)
# 2) 本地起站
npm run dev # http://127.0.0.1:5173
# 3) 出包(静态文件,丢到任意静态托管即可)
npm run build # 产物在 dist/
```
样例数据:`data/sample/travel-map.json`(54 条,公开人物公开资料)。
把它放到任意可访问的地址,再把 `VITE_CLOUD_DATA_URL` 指过去即可。
> 想放到本地直接看:`npx serve data/sample`,然后把 `VITE_CLOUD_DATA_URL` 指向 `http://127.0.0.1:3000/travel-map.json`。
---
## 数据长什么样
一份 JSON 三块:
```
entities[] 实体:id / kind(person|thing|event|place|time) / name / summary / description / source / apps …
graph.nodes[] 图节点(与实体一一对应)
graph.edges[] 关系边:source / target / type / relKind(字段名是 source/target,不是 from/to)
```
完整字段定义见 [`schema/`](schema/)(七张表的对象类型定义,可直接用于云数据库建表)。
**我们的一条硬规矩**:数据里不放"我们自己的编辑备注"——正文只写给人看的话;
坐标依据、分类用途、取证过程一律进内部台账。样例数据已按此清理。
---
## 我们不放进这个仓库的东西(以及为什么)
| 不放 | 原因 |
|---|---|
| 生产数据(永州站 1,135 条) | 含大量第三方图文引用与在世人物资料,**再分发**风险高于我们自己上线 |
| 第三方图片 / 视频 | 著作权不在我们;我们只在自己站上按"作者+日期+来源"署名使用 |
| 内部语料(板贴、台账、审校件) | 这是工作过程记录,不是产品 |
| 任何密钥 / 会话 / 环境值 | 见 `.gitignore`;本仓库不含任何凭据 |
---
## 许可
- **代码**:MIT(同上游)
- **样例数据** `data/sample/`:CC BY 4.0(可用,注明"星图 StarMap 样例")
- **站名、域名 `1950ai.com`、logo 与标识**:不随上述许可授出,保留所有权利
详见 [LICENSE](LICENSE) 与 [NOTICE](NOTICE)。
---
## 贡献
欢迎 Issue 与 PR。三条口径请一并遵守(这也是我们这个项目的做法):
1. **宁缺毋造**:查不到就不写,标"待考",⛔ 不编
2. **来源分级**:每条事实带来源;A 级(官方名录/志书)> B 级(权威媒体)> C 级(自媒体,仅作线索)
3. **能算出来的不进库**:能由字段推导的(如年份区间、坐标换算)不存第二份
细节见 [CONTRIBUTING.md](CONTRIBUTING.md)。
---
## 支持我们
如果您觉得这个项目对您有帮助,请扫下方二维码打赏我们一壶普洱。
打赏进项目池,用于服务器与数据采集,不归个人。
---
## 联系
- 组织:问爱()
- 问题与建议:本仓库 Issues