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/
目录结构
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)
pnpm -C frontend install
pnpm run prepare-fonts
pnpm run dev
默认访问地址:http://localhost:5174
常用命令
# 根目录
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 概览
# 字体转 SVG
python font2svg.py --font path/to/font.ttf --text "你好"
# 图片转 SVG
python pic2svg.py images/your_image.png --outdir output
详细参数请看 USAGE.md。
Description
v1.0.3
Latest
Languages
JavaScript
49%
Vue
18%
Python
17.1%
TypeScript
11.2%
Shell
4%
Other
0.7%
