# doc
**Repository Path**: smart-mip/doc
## Basic Information
- **Project Name**: doc
- **Description**: No description available
- **Primary Language**: Unknown
- **License**: Not specified
- **Default Branch**: master
- **Homepage**: None
- **GVP Project**: No
## Statistics
- **Stars**: 0
- **Forks**: 0
- **Created**: 2026-06-13
- **Last Updated**: 2026-06-13
## Categories & Tags
**Categories**: Uncategorized
**Tags**: None
## README
# 物联网系统文档 (Smart-MIP Docs)
基于 [Docusaurus](https://docusaurus.io/) 构建的物联网系统文档站,包含 MIP 协议规范、系统设计文档和 OpenAPI 自动生成的 API 文档。
## 编译环境
| 依赖 | 最低版本 | 说明 |
|------|---------|------|
| Node.js | `>= 20.0` | JavaScript 运行时 |
| npm | `>= 10.x` | 随 Node.js 20 附带 |
建议使用 [nvm](https://github.com/nvm-sh/nvm) 管理 Node.js 版本:
```bash
nvm install 20
nvm use 20
```
## 快速开始
```bash
# 1. 安装依赖
npm install
# 2. 启动开发服务器(含热更新)
npm start
```
浏览器打开 `http://localhost:3000`。
## 编译过程
### 编译流程图
`npm run build` 执行完整的生产构建,流程如下:
```mermaid
graph TD
A[npm run build] --> B["prebuild 钩子
npm run gen-api-docs"]
B --> C["docusaurus gen-api-docs all
从 OpenAPI YAML 生成 API 文档"]
C --> D["scripts/fix-openapi-mdx.js
修复生成的 MDX 格式"]
D --> E["docusaurus build
编译所有文档为静态 HTML"]
E --> F["输出到 build/ 目录"]
```
### 分步说明
```bash
# ===== 步骤 1:生成 API 文档 =====
# 从 docs/api/openapi/*.yaml 自动生成 MDX 页面到 docs/api/openapi/generated/
npm run gen-api-docs
# ===== 步骤 2:编译完整站点 =====
# 执行 prebuild(步骤1) + Docusaurus 构建
npm run build
# ===== 步骤 3:本地预览构建结果 =====
npm run serve
```
> **说明**:`npm run build` 会自动触发 `prebuild` 钩子,先执行 `gen-api-docs` 再编译。因此日常构建只需执行 `npm run build` 即可。
### 编译产物
| 产物 | 路径 | 说明 |
|------|------|------|
| 静态站点 | `build/` | 可直接部署到 Nginx / CDN 的纯静态文件 |
| API 文档 | `docs/api/openapi/generated/` | 由 OpenAPI YAML 自动生成,**不纳入版本控制** |
| 缓存 | `.docusaurus/` | Docusaurus 内部缓存,已加入 `.gitignore` |
## 项目结构
```
doc/
├── docs/
│ ├── protocol/ # MIP 协议文档
│ │ ├── overview.md # 协议概览
│ │ ├── glossary.md # 术语表
│ │ ├── transports/ # 传输层协议 (MIPoT / MIPoU / MIPoM)
│ │ ├── frames/ # 帧格式详解 + 字节级示例
│ │ ├── data/ # 数据 ID 定义与映射
│ │ ├── flows/ # 设备接入流程 / 设备发现
│ │ └── examples/ # 接入案例(智能插座等)
│ ├── design/ # 系统设计文档
│ │ ├── architecture/ # 系统架构设计
│ │ ├── database/ # 数据库设计
│ │ ├── security/ # 安全性设计
│ │ └── device-types/ # 设备类型注册表
│ └── api/ # API 文档
│ ├── openapi/ # OpenAPI YAML 规范(手工维护)
│ └── openapi/generated/ # 自动生成的 MDX(gitignore)
├── src/ # 自定义 React 组件与样式
├── static/ # 静态资源 (logo, favicon)
├── scripts/ # 构建辅助脚本
│ └── fix-openapi-mdx.js # 修复 OpenAPI 生成文件的格式问题
├── sidebars.js # 侧边栏配置
├── docusaurus.config.js # 站点配置(含 Mermaid 支持)
└── package.json
```
## 可用脚本
| 命令 | 说明 |
|------|------|
| `npm start` | 启动开发服务器,支持热更新 |
| `npm run build` | 完整生产构建(自动触发 gen-api-docs) |
| `npm run serve` | 本地预览 build 目录 |
| `npm run gen-api-docs` | 单独执行 API 文档生成 |
| `npm run clear` | 清理缓存和构建产物 |
| `npm run swizzle` | 弹出 Docusaurus 主题组件(高级) |
## 文档编写指南
### Mermaid 图表
项目已配置 `@docusaurus/theme-mermaid`,使用 `mermaid` 代码块即可渲染图表:
````markdown
```mermaid
sequenceDiagram
participant A as 客户端
participant B as 服务端
A->>B: 请求
B-->>A: 响应
```
````
### 文件命名
- 英文短横线命名:`device-architecture.md`,`byte-examples.md`
- 目录索引文件统一使用 `overview.md` 或 `readme.md`
## 技术栈
| 组件 | 版本 | 用途 |
|------|------|------|
| Docusaurus | 3.10 | 文档框架 |
| docusaurus-plugin-openapi-docs | 5.x | API 文档自 OpenAPI YAML 生成 |
| @docusaurus/theme-mermaid | 3.10 | Mermaid 图表渲染 |
| @easyops-cn/docusaurus-search-local | 0.55 | 离线中文搜索 |