# font2svg 本仓库提供三条能力链路: - Web 应用(`frontend/`):本地字体预览、多字体对比、导出 `SVG/PNG` - 微信小程序(`miniprogram/`):移动端预览、导出 `SVG/PNG`、文件分享 - 小程序渲染服务(`apiserver/`):服务端渲染 SVG API - Python CLI(根目录脚本):图片转 SVG、字体文本转 SVG ## 文档导航 - 项目总览:`README.md` - 详细设计:`DETAIL-DESIGN.md` - 使用说明:`USAGE.md` - 迭代计划:`PLAN.md` - 前端子项目说明:`frontend/README.md` - 小程序子项目说明:`miniprogram/README.md` ## 界面快照 ![snapshot](frontend/src/assets/snapshot.png) ## 核心特性 - 字体树 + 分类折叠 + 搜索 + 收藏 - 预览勾选与导出勾选分离,支持全选/全不选 - 文本自动按每行 45 字换行(保留手动换行) - 预览采用分批加载与并发渲染,降低大字体库卡顿 - 导出 `SVG` 或 `PNG`,多项自动打包 ZIP - 字体来源统一为 `frontend/public/fonts/` ## 目录结构 ```text font2svg/ ├── frontend/ # Vue3 + TS Web 应用 │ ├── public/ │ │ ├── fonts/ # 字体唯一来源目录 │ │ └── fonts.json # 字体清单(脚本生成) │ └── src/ ├── miniprogram/ # 微信小程序(原生) │ ├── pages/ # 输入/预览/字体选择页面 │ └── assets/fonts.json # 小程序字体清单(脚本同步) ├── apiserver/ # 小程序远端渲染 API ├── scripts/ │ └── generate-font-list.py # 同步生成 Web + 小程序字体清单 ├── font2svg.py # 字体文本转 SVG(Python CLI) ├── pic2svg.py # 图片转 SVG(Python CLI) └── DETAIL-DESIGN.md # 详细设计 ``` ## 环境要求 - Node.js `>=18` - pnpm `>=8` - Python `>=3.9` - (可选)potrace:`pic2svg.py` 需要 ## 快速开始(Web) ```bash pnpm -C frontend install pnpm run prepare-fonts pnpm run dev ``` 默认访问地址:`http://localhost:5174` ## 常用命令 ```bash # 根目录 pnpm run dev pnpm run build pnpm run preview pnpm run prepare-fonts pnpm run mp:syntax pnpm run mp:lint pnpm run mp:test # 前端子项目 pnpm -C frontend run dev pnpm -C frontend run build pnpm -C frontend run preview ``` ## Python CLI 概览 ```bash # 字体转 SVG python font2svg.py --font path/to/font.ttf --text "你好" # 图片转 SVG python pic2svg.py images/your_image.png --outdir output ``` 详细参数请看 `USAGE.md`。