# 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 ```