docs: update README and REQUIREMENTS to reflect current architecture (knowledge base + schema + renderer)
This commit is contained in:
@@ -1,37 +1,94 @@
|
||||
# html2pptx
|
||||
|
||||
HTML to editable PPTX export engine.
|
||||
HTML / 截图 → 标准 JSON → 可编辑 PPTX
|
||||
|
||||
将 HTML 演示文稿导出为**文字可编辑、布局可还原**的 PPTX 文件。
|
||||
将任何格式的演示文稿描述转化为**文字可编辑、布局可还原**的 PPTX 文件。
|
||||
|
||||
## 原理
|
||||
## 架构
|
||||
|
||||
```
|
||||
HTML 文件 → HTTP 服务 → Chrome headless 渲染 → DOM 遍历提取位置/样式 → pptxgenjs 生成 PPTX
|
||||
输入(任意来源) 中间层 输出
|
||||
━━━━━━━━━━━━━━━ ━━━━━━━━━━━ ━━━━━
|
||||
AI 生成的描述 标准 JSON PPTX 文件
|
||||
HTML 提取的结构 → Schema 校验 → pptxgenjs 渲染
|
||||
多模态识别结果 ↓
|
||||
Markdown / 其他 翻译引擎(机械映射)
|
||||
```
|
||||
|
||||
### 三层结构
|
||||
|
||||
| 层 | 目录 | 说明 |
|
||||
|---|------|------|
|
||||
| **知识库** | `reference/` | pptxgenjs 完整参数表,每个参数的类型/取值范围/默认值。给 AI 用的操作手册 |
|
||||
| **Schema** | `schema/` | JSON Schema 定义 + 示例。AI 输出符合此 Schema 的 JSON 即可驱动 PPT 生成 |
|
||||
| **翻译引擎** | `renderer/` | JSON → pptxgenjs API 调用的机械映射。不做逻辑判断,只做参数透传 |
|
||||
|
||||
## 快速开始
|
||||
|
||||
```bash
|
||||
npm install
|
||||
```
|
||||
|
||||
### 从 JSON 生成 PPTX
|
||||
|
||||
```javascript
|
||||
const { render } = require('./renderer/index');
|
||||
const pptx = render(jsonObject);
|
||||
pptx.writeFile({ fileName: 'output.pptx' });
|
||||
```
|
||||
|
||||
### 从 JSON 文件生成
|
||||
|
||||
```javascript
|
||||
const { renderFile } = require('./renderer/index');
|
||||
renderFile('./schema/examples/ui-dashboard.json', 'output.pptx');
|
||||
```
|
||||
|
||||
## 目录结构
|
||||
|
||||
```
|
||||
reference/ ← 知识库:每个元素的完整参数表
|
||||
text.md 文字参数
|
||||
shape.md 形状参数
|
||||
table.md 表格参数
|
||||
image.md 图片参数
|
||||
chart.md 图表参数
|
||||
slide.md 页面参数
|
||||
master.md 母版参数
|
||||
output.md 输出参数
|
||||
coordinate.md 坐标换算
|
||||
|
||||
schema/ ← JSON Schema 定义
|
||||
presentation.schema.json
|
||||
examples/
|
||||
basic.json 基础示例(2页)
|
||||
full.json 全功能示例
|
||||
ui-dashboard.json UI 看板示例
|
||||
ui-advanced.json 精细化 UI 示例
|
||||
|
||||
renderer/ ← 翻译引擎
|
||||
index.js 主入口
|
||||
text-renderer.js 文字渲染
|
||||
shape-renderer.js 形状渲染
|
||||
table-renderer.js 表格渲染
|
||||
image-renderer.js 图片渲染
|
||||
chart-renderer.js 图表渲染
|
||||
slide-renderer.js 页面属性
|
||||
|
||||
PPTXGENJS_API.md ← pptxgenjs v4.0.1 完整 API 参考
|
||||
```
|
||||
|
||||
## 设计原则
|
||||
|
||||
- **翻译引擎是纯机械映射** — 不做样式推断,不做逻辑判断。JSON 里有什么就画什么
|
||||
- **Schema 是 AI 友好** — 字段名直观,不暴露 pptxgenjs 内部命名
|
||||
- **知识库是完整参考** — 每个参数都有类型+取值范围+默认值,不需要 AI 去猜
|
||||
|
||||
## 依赖
|
||||
|
||||
- Node.js 18+
|
||||
- Chrome / Chromium / Edge(用于渲染页面)
|
||||
|
||||
## 使用
|
||||
|
||||
```bash
|
||||
# 安装
|
||||
npm install
|
||||
|
||||
# 导出
|
||||
node bin/html2pptx input.html output.pptx
|
||||
```
|
||||
|
||||
## 核心依赖
|
||||
|
||||
| 包 | 用途 |
|
||||
|---|------|
|
||||
| playwright | 控制 Chrome headless 渲染页面 |
|
||||
| pptxgenjs | 生成 PPTX 文件 |
|
||||
| http-server | 本地静态文件服务(可选) |
|
||||
| pptxgenjs | 生成 PPTX 文件(OOXML) |
|
||||
|
||||
## License
|
||||
|
||||
|
||||
Reference in New Issue
Block a user