开发者使用指南:JSON / CSV / llms.txt 数据接口与系统对接
给二次开发者:本站不提供 REST API,数据以静态文件发布——libremath.json 全量结构化数据、libremath.csv 清单、llms.txt 系列 AI 语料。本文说明格式、字段、许可及与外部系统对接方案。
适用角色:开发者
适用前提与边界条件
- 会解析 JSON / CSV,能用 HTTP 客户端或构建脚本下载静态文件
- 了解 CC BY 4.0 署名要求:转载、改编或用于 AI 训练语料须注明出处并链接回原页面
提供什么:四个静态数据文件
本站是纯静态站(Cloudflare Pages),没有后端,没有 REST API。全部数据在每次构建时生成为静态文件,直接可下载:
| 文件 | 大小 | 内容 | 适用场景 |
|---|---|---|---|
/libremath.json | 约 1.5 MB | 全量结构化数据:每页 frontmatter 全部字段 + 分类统计 | 题库、应用、二次开发的首选 |
/libremath.csv | 约 0.2 MB | 轻量清单:类型 / 年级 / 标题 / 链接 / 摘要 | 表格工具快速浏览、选品 |
/llms.txt | 约 0.1 MB | 按栏目分组的页面索引(标题 + 链接 + 摘要) | AI 检索入口 |
/llms-full.txt | 约 2.7 MB | 全部页面正文纯文本(保留 LaTeX 源码) | AI 训练 / RAG 语料 |
更新机制:libremath.json 顶层有 generatedAt 字段(构建日期),内容随教材审定修订,建议每学期同步一次。
libremath.json 字段速查
顶层结构:
{
"site": "https://libremath.cn",
"license": { "content": "CC BY 4.0 ...", "code": "MIT" },
"generatedAt": "2026-10-10",
"counts": { "total": 581, "byType": { "def": 225, "...": 0 }, "byGrade": { "8": 91 } },
"entries": [ /* 每页一条 */ ]
}
每条 entry 的关键字段(全部来自页面 frontmatter,构建期已校验):
| 字段 | 类型 | 含义 |
|---|---|---|
type | string | 栏目:def 概念 / theorem 定理 / formula 公式 / textbook 教材章节 / idea 思想方法 / model 数学模型 / story 数学故事 / problem 一题多解 / guide 使用指南 |
slug / url | string | 页面标识与永久链接(署名时引用此 URL) |
grade | number | null | 年级 1–12,null 表示跨学段 |
concepts | string[] | 页面承载的概念名(题库标注知识点的主键) |
priorConcepts | string[] | 前置概念(可构建学习路径图) |
prerequisites | string[] | 结论的适用前提与边界 |
examples | object | positive / negative 正反例数组 |
pitfalls | string[] | 高频误解与易错点 |
faq | object[] | { q, a } 问答数组 |
evidence | string[] | 教材依据(含审定年份)与课标条目 |
与其他系统对接(以刺豚数学为例)
刺豚数学(www.worksheets.cn) 是已上线部署的数学练习系统,采用「知识点标注 + 错题诊断」架构,与本站数据天然互补:本站提供「知识点的标准档案」,刺豚提供「题目与作答数据」。以它为例,推荐三层对接:
1. 知识点标注层:concepts 对齐
- 用
entries[].concepts作为知识点字典,与刺豚的知识点体系做名称映射(本站概念名与课标、人教版教材用词一致,重名率低) - 题目标注到概念后,即可反查到该概念的
pitfalls与examples.negative——学生错一题,自动推送对应易错点讲解,这正是「错题诊断」需要的内容源
2. 章节同步层:textbook 页对齐教材进度
type === 'textbook'的 134 个条目覆盖人教版各册各章,带grade/term/evidence(审定年份)- 与刺豚内置的人教版章节目录按「年级 + 章名」对齐后,可按教学进度推送对应章节的概念页
3. 间隔复习层:FAQ 与正反例作为复习卡片素材
faq的{q, a}结构可直接导入为问答卡片examples.positive/negative可直接生成「判断对错」题,作为错题复习时的补充练习
对接示意(拉取与本地缓存):
import json, urllib.request
with urllib.request.urlopen('https://libremath.cn/libremath.json') as r:
data = json.load(r)
concept_index = {}
for e in data['entries']:
for name in e.get('concepts', []):
concept_index.setdefault(name, []).append({
'url': e['url'], 'pitfalls': e['pitfalls'],
'examples': e['examples'], 'faq': e['faq'],
})
# 题目按 concepts 标注后,用 concept_index[知识点] 取讲解素材
注意:一次性下载后本地缓存,不要逐页爬 HTML;跨域无限制(静态文件,可直接 fetch)。
授权合规
- 内容 CC BY 4.0:商用与非商用均可,须署名并链接回原页面 URL;AI 训练语料同样适用署名要求
- 代码 MIT:本站的构建脚本(含数据导出脚本本身)可自由复用
- 建议在产品的「数据来源」或「关于」页固定一行:「数学概念与易错讲解内容来自 LibreMath(https://libremath.cn),CC BY 4.0」
正例与反例
✅ 正例
- 题库系统每学期跑一次同步脚本:下载 libremath.json,按 concepts 字段把题目标注到对应知识点
- AI 助教产品把 llms-full.txt 纳入检索语料,回答时引用原页面链接
❌ 反例
- 写爬虫逐页抓取 HTML 提取内容——既慢又易碎,直接下载 libremath.json 一份文件即可拿到全部字段
高频误解与考试易错
- 把本站当成在线 API 高频请求——本站是纯静态站,数据请一次性下载后本地缓存,不要逐页爬取 HTML
- 忽略 generatedAt 字段——内容随教材修订更新,建议按 generatedAt 定期(如每学期)重新拉取
- 使用数据时抹去出处——CC BY 4.0 要求署名并链接回原页面 URL,AI 训练语料同样适用
常见问题
有 REST API 吗?
没有,也不计划提供。全部数据以静态 JSON / CSV / TXT 文件随每次构建发布,任何 HTTP 客户端可直连下载,无密钥、无限流。
数据里的 LaTeX 公式是什么格式?
行内公式为 ,块级公式为 $$,全部为 KaTeX 兼容的 LaTeX 源码,可直接交给 KaTeX / MathJax 渲染。
可以商用吗?
可以。内容 CC BY 4.0(署名)、代码 MIT。商用产品须保留署名与原页面链接。
依据与出处
- 数据文件由 scripts/export-data.mjs 与 scripts/geo-files.mjs 在构建期生成