Files
font2pic/README.md
2026-02-11 11:06:24 +08:00

105 lines
2.9 KiB
Markdown
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

# 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`
## 界面快照
![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 # 字体文本转 SVGPython CLI
├── pic2svg.py # 图片转 SVGPython 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`