iotsaas/docs/api/doc/build.js
2995840376 0ce191c448 chore: 初始化 iotsaas 版本库基线
纳入范围:
- backend/  Spring Boot 多模块后端(iot-common/device/rule/data/alarm/auth)
- frontend/admin/  Vue3 + Element Plus 管理后台
- Android/   涂鸦原生 APP (com.xhai.iot)
- backend/sql/  Flyway 风格迁移脚本(V2~V21)
- docs/       对接文档与设计文档

排除范围:
- 构建产物: node_modules/ target/ build/ dist/ .gradle/
- 签名密钥: *.jks *.keystore (严禁入库)
- 本机配置: Android/local.properties
- 运行日志: logs/ *.log
- AI 协作本地数据 .codebuddy/ 与第三方 demo tuya-demo/

.gitattributes 统一以 LF 存储, Windows 批处理保留 CRLF
2026-10-27 12:00:41 +08:00

44 lines
1.4 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

/* 文档构建脚本:把 src(app.js + style.css) 内联生成 11 个独立 HTML 页面。
* 用法:修改 app.js(如 DEFAULT_BASE)后,运行 `node build.js` 重新生成全部页面。 */
const fs=require('fs');
const dir=__dirname;
const css=fs.readFileSync(dir+'/style.css','utf8');
const js=fs.readFileSync(dir+'/app.js','utf8');
const m=js.match(/const\s+PRODUCT_NAME\s*=\s*["']([^"']+)["']/);
const PRODUCT_NAME=m?m[1]:'MumIot';
const PAGES=[
['index','概览首页'],['auth','认证与账号'],['member','会员与家庭'],
['device','设备管理'],['product','产品与物模型'],['tuya','涂鸦云集成'],
['data','数据采集'],['rule','规则与场景'],['ai','AI 智能'],
['alarm','告警服务'], ['models','数据模型'],['partner','授权对接'],['panel','中控屏接口']
];
const shell=(page,label)=>`<!DOCTYPE html>
<html lang="zh-CN">
<head>
<meta charset="UTF-8">
<meta name="viewport" content="width=device-width,initial-scale=1">
<title>${PRODUCT_NAME} API · ${label}</title>
<style>
${css}
</style>
</head>
<body>
<div class="layout">
<aside id="sidebar"></aside>
<main>
<div id="topbar"></div>
<div id="content"></div>
</main>
</div>
<script>
${js}
</script>
<script>initDoc('${page}');</script>
</body>
</html>`;
PAGES.forEach(([p,l])=>{
fs.writeFileSync(dir+'/'+p+'.html',shell(p,l));
console.log('generated',p+'.html');
});
console.log('done.');