105 lines
2.9 KiB
Markdown
105 lines
2.9 KiB
Markdown
# font2svg
|
||
|
||
本仓库提供三条能力链路:
|
||
|
||
- Web 应用(`frontend/`):本地字体预览、多字体对比、导出 `SVG/PNG`
|
||
- 微信小程序(`miniprogram/`):移动端预览、导出 `SVG/PNG`、文件分享
|
||
- 小程序渲染服务(`apiserver/`):服务端渲染 SVG API
|
||
- Python CLI(根目录脚本):图片转 SVG、字体文本转 SVG
|
||
|
||
## 最新版本
|
||
|
||
- `v1.0.3`(2026-02-10)
|
||
- 小程序新增“手动路由切换”能力:通过远端 `route-config.json` 在 A/B 服务间切换,无需小程序发版
|
||
- 切换策略包含双确认与 `cooldown` 防抖,降低误切换与来回抖动
|
||
- B 侧新增 Cloudflare Tunnel 接入路径(`mac-tunnel.biboer.cn`),适配家庭网络场景
|
||
|
||
## 文档导航
|
||
|
||
- 项目总览:`README.md`
|
||
- 详细设计:`DETAIL-DESIGN.md`
|
||
- 使用说明:`USAGE.md`
|
||
- 迭代计划:`PLAN.md`
|
||
- 前端子项目说明:`frontend/README.md`
|
||
- 小程序子项目说明:`miniprogram/README.md`
|
||
|
||
## 界面快照
|
||
|
||

|
||
|
||
## 核心特性
|
||
|
||
- 字体树 + 分类折叠 + 搜索 + 收藏
|
||
- 预览勾选与导出勾选分离,支持全选/全不选
|
||
- 文本自动按每行 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`。
|