55 lines
1.6 KiB
Markdown
55 lines
1.6 KiB
Markdown
# miniprogram
|
||
|
||
`miniprogram/` 是 `font2svg` 的微信小程序版本,面向移动端提供字体预览与导出能力。
|
||
|
||
## 已实现能力
|
||
|
||
- 文本输入 + 字体选择(搜索/分类/收藏)
|
||
- 远端 API 生成 SVG(服务端读取字体并渲染)
|
||
- SVG 预览
|
||
- 导出 SVG 并调用 `wx.shareFileMessage` 分享
|
||
- SVG 渲染到 Canvas 并导出 PNG,保存到系统相册
|
||
|
||
## 目录说明
|
||
|
||
```text
|
||
miniprogram/
|
||
├── pages/
|
||
│ ├── index/ # 首页:输入、预览、导出
|
||
│ └── font-picker/ # 字体选择页
|
||
├── utils/
|
||
│ ├── core/ # 纯算法模块
|
||
│ └── mp/ # 小程序 API 适配层
|
||
├── assets/fonts.json # 字体清单(由脚本生成)
|
||
├── app.js / app.json / app.wxss
|
||
└── project.config.json
|
||
```
|
||
|
||
## 使用步骤
|
||
|
||
1. 在仓库根目录执行 `pnpm run prepare-fonts`,同步字体清单。
|
||
2. 打开微信开发者工具,导入 `miniprogram/` 目录。
|
||
3. 在小程序后台配置合法域名(`request` + `downloadFile`)。
|
||
4. 部署并启动 `apiserver/`(详见 `apiserver/README.md`)。
|
||
5. Nginx 配置 `/api/` 反向代理到渲染服务。
|
||
6. 编译运行。
|
||
|
||
## 字体清单格式(由服务端解析)
|
||
|
||
`assets/fonts.json` 每项字段:
|
||
|
||
- `id`: 字体唯一 ID
|
||
- `name`: 字体显示名
|
||
- `category`: 分类
|
||
- `path`: 字体地址(支持相对路径或完整 URL)
|
||
|
||
如果 `path` 是相对路径(例如 `/fonts/a.ttf`),服务端会根据静态根目录拼接到实际文件路径。
|
||
|
||
## 调试命令(仓库根目录)
|
||
|
||
```bash
|
||
pnpm run mp:syntax
|
||
pnpm run mp:lint
|
||
pnpm run mp:test
|
||
```
|