在线阅读:https://jmocoder.github.io/energy-book/
从零基础到网储专家与资产管理者 —— 涵盖电能基础、电力系统、电力市场、电化学、储能设备、系统工程、商业投资与前沿技术 8 大模块 + 6 大实战专题(看懂电费单、网储投建全流程、电力市场化交易、投后与运维监督、项目与基金测算、合规合同与风控),全书共 352 个独立章节,正文约 200 万字。
《中国网储系统性学习手册》是一个全景式的电化学与新型储能系统知识库平台。项目采用极简轻量、零依赖的现代化前端技术架构(HTML5 + CSS3 + Standard ESJavaScript),结合高可读性的结构化 JSON 目录索引,支持单页导航、全量模糊搜索以及响应式阅读体验。
- 系统性课程体系:从 Level 0 至 Level 8 递进式设计,覆盖物理/化学原理到百兆瓦级电站投资决策全链路;另设 SP1~SP6 六大实战与资管专题(含电费单负荷诊断、投建全流程、市场化交易、投后与运维监督、项目与基金测算实战、合规合同与风险管控)。
- PWA 全平台原生体验:全面支持 Windows/Linux/macOS 桌面端及 Android/iOS Safari 手机端 PWA 渐进式应用安装,提供原生独立窗口交互与一键添加到主屏幕。
- 开箱即用与离线缓存:内置 Service Worker 动态缓存机制,支持无网络(Offline)环境下的流畅章节阅读与双击
index.html零依赖离线使用。 - 现代化视觉与 UI/UX:内置响应式布局、高亮卡片导航、搜索筛选与难度标记。
为了保障系统拓展性与多人协作效率,本手册采用数据与渲染分离的目录组织结构:
energy-book/
├── index.html # 主导览与阅读器 portal(渲染与交互逻辑)
├── manifest.json # PWA Web App Manifest 配置文件(支持桌面 Window Controls)
├── sw.js # Service Worker 离线缓存与网络响应策略
├── server.js # 轻量零依赖 Node.js 静态服务与跨端进度同步 API
├── LICENSE # MIT 开源许可协议
├── README.md # 项目使用与部署文档
├── .gitignore # Git 忽略文件配置
├── .github/
│ └── workflows/
│ └── deploy.yml # GitHub Actions 自动化部署工作流
├── data/
│ └── toc.json # 目录大纲与元数据索引(存储章节映射与完成状态)
├── chapters/ # 章节正文目录 (按 Level / SP 划分子目录)
│ ├── level_00/ # Level 0 写在前面
│ ├── level_01/ # Level 1 电能基础知识
│ ├── level_02/ # Level 2 电力系统
│ ├── level_03/ # Level 3 电力市场与政策
│ ├── level_04/ # Level 4 电化学基础
│ ├── level_05/ # Level 5 储能设备与技术
│ ├── level_06/ # Level 6 系统工程与运营
│ ├── level_07/ # Level 7 商业投资与项目评估
│ ├── level_08/ # Level 8 前沿技术与专家视野
│ ├── sp_01/ # TOPIC SP1 看懂电费单与负荷曲线
│ ├── sp_02/ # TOPIC SP2 网储投建全流程
│ ├── sp_03/ # TOPIC SP3 电力市场化交易专题
│ ├── sp_04/ # TOPIC SP4 储能资产投后与运维监督
│ ├── sp_05/ # TOPIC SP5 网储项目与基金测算实战
│ └── sp_06/ # TOPIC SP6 储能合规合同与风险管控
├── assets/ # 静态资源目录(图片、样式、PWA 图标与安装引擎)
│ ├── css/main.css # 全局主样式表(包含 PWA 安装按钮与 Modal 样式)
│ ├── js/pwa-install.js # 跨平台 PWA 安装唤起与网络状态监测引擎
│ └── images/ # PWA 多尺寸图标 (SVG / PNG) 与章节图解
├── scripts/ # 章节校验与图标生成辅助脚本
└── documents/ # 原始资料与大纲文档
toc.json 是整个手册的知识图谱数据核心,负责定义目录层级、章节关联及阅读状态。结构示例如下:
{
"meta": {
"title": "中国网储系统性学习手册",
"version": "v3.6",
"lastUpdated": "2026-07-30",
"totalSections": 352,
"totalWords": 2000000
},
"levels": [
{
"id": "level_01",
"code": "01",
"label": "LEVEL 1",
"title": "电能基础知识",
"chapters": [
{
"no": 1,
"title": "电的基本概念",
"sections": [
{
"id": "01_1_1",
"file": "01_1_1_电荷基础.html",
"title": "电荷:万物皆有电",
"difficulty": "🟢",
"words": 5000,
"status": "published"
}
]
}
]
}
]
}- 放置路径:
chapters/{level_id}/{file_name} - 命名规则:
{Level编号}_{章节编号}_{小节编号}_{标题关键词}.html(例如chapters/level_01/01_1_1_电荷基础.html)。 - 状态更新:完成新小节撰写后,只需将 HTML 放入对应
level_xx目录,并在toc.json中将对应 section 的status调整为"published"即可自动在首页解锁阅读链接。
由于项目为纯静态应用,无需安装 Node.js 或构建工具:
- 方式 A (直接打开):双击根目录下的
index.html即可启动阅读器。 - 方式 B (静态服务器):使用标准 CLI 启动静态服务:
在浏览器访问
# Python 静态服务 python3 -m http.server 8000 # 或使用 npx serve npx serve .
http://localhost:8000即可。
本项目已配置 GitHub Actions (.github/workflows/deploy.yml)。
- 将代码推送到 GitHub 仓库的
main分支。 - 打开 GitHub 仓库,进入 Settings -> Pages。
- 在 Source 下选择 GitHub Actions。
- 每次提交代码或打 Tag 之后,GitHub Actions 会自动构建并发布到 GitHub Pages 访问链接(如
https://jmocoder.github.io/energy-book/)。
如使用云服务器 Nginx 托管项目,请按如下配置部署:
server {
listen 80;
server_name energy-book.yourdomain.com;
root /var/www/energy-book;
index index.html;
location / {
try_files $uri $uri/ /index.html;
}
# 针对入口文件和数据文件禁掉强缓存,确保用户始终同步最新内容
location ~* \.(html|json)$ {
add_header Cache-Control "no-cache, no-store, must-revalidate";
add_header Pragma "no-cache";
add_header Expires 0;
}
# 针对静态资源(图片/字体/CSS/JS)开启长期缓存
location ~* \.(css|js|jpg|jpeg|gif|png|ico|cur|gz|svg|svgz|mp4|ogg|ogv|webm|htc|woff|woff2)$ {
expires 30d;
add_header Cache-Control "public, no-transform";
}
}为了解决“在版本或文件更新后,已访问过的用户因浏览器或 CDN 缓存导致无法同步看到最新章节”的问题,项目建立了以下三重同步策略:
入口网页 index.html 以及目录元数据 data/toc.json 决不能被强缓存:
- 部署服务器/CDN 务必将
.html和.json资源的Cache-Control设置为no-cache, no-store, must-revalidate。 - 浏览器每次打开都会发起
304协商验证,确保文件一旦在服务器更新,客户端立刻获取最新toc.json和 HTML 章节。
在 data/toc.json 的 meta.version 以及 index.html 的数据引用中引入版本号或时间戳:
- 每次更新目录或大章节时,同步升级
data/toc.json中的version字段(如v1.0.0->v1.1.0)及lastUpdated字段。 - 在页面引用资源处(例如引入 JS/CSS 或
fetch请求数据时)挂载版本 Query 参数:这样可以确保即使存在中间层代理,也能强制撕脱旧缓存。fetch('data/toc.json?v=' + metaVersion)
通过项目自带的 GitHub Actions 工作流,只要 main 分支发生提交或推送了新的版本 Tag,Action 便会自动运行并刷新 GitHub Pages 的线上版本,用户无需人工干预即可在数秒内访问到包含最新章节的在线版本。
本项目严格遵守 语义化版本 2.0.0 (SemVer) 规范,版本号格式为 vX.Y.Z:
- X (主版本号/Major):出现重大结构重构或破坏性更新(例如数据结构彻底变革)。
- Y (次版本号/Minor):新增完成的 Level 模块或大量集中上线的章节(例如完成 Level 1 全章)。
- Z (修订号/Patch):针对已有章节的内容修正、错别字修复或样式微调。
# 初始化 Git 仓库
git init
# 设置默认分支名称为 main
git branch -M main
# 添加所有变更到暂存区
git add .
# 提交本地代码
git commit -m "feat: initial release of energy_book v1.0.0"# 创建附注标签 (Annotated Tag)
git tag -a v1.0.0 -m "Release v1.0.0: 完成中国网储系统性学习手册导览与首发版本库架构"
# 查看所有标签
git tag -n# 关联远程 Git 仓库
git remote add origin https://github.com/JMoCoder/energy-book.git
# 推送代码及所有标签到 GitHub
git push -u origin main --tags当您撰写或修正了新的章节后:
# 1. 提交修改
git add .
git commit -m "docs: 新增 Level 1 电荷基础章节正文"
# 2. 打新的次版本号/修订号 Tag
git tag -a v1.1.0 -m "Release v1.1.0: 上线 Level 1 全部章节"
# 3. 推送到远程,自动触发部署同步
git push origin main --tags本项目基于 MIT 协议 开源。任何人均可自由学习、复制、修改、分发及商业化使用,但须保留原作者版权声明。
Copyright (c) 2026 JMoCoder.