- Config 类改用 config.json + keys.* 格式,废弃 env.json (自动迁移) - 新增 resolve_key() / write_key_to_mytoolkit() 共享工具函数 - env CLI 文本更新 (vars → keys) - 更新 CLAUDE.md / README.md 配置描述
5.6 KiB
MyToolkit 项目配置
职责分工(避免重复与漂移):
- 参数/用法细节 → 已安装包的
mytoolkit info docs <name>(无info docs的命令看 skillreferences/速查)为准;- 设计决策与仓库约定(文档生成工作流、脚手架/期刊套件取舍、命名、依赖、TTS 配置)→ 本文档为准;
README.md→ 面向用户的 CLI 手册(安装、命令总表、config 文件);- skill(
SKILL.md+references/) → Agent 路由层:触发词、与其他 skill 的分工、决策速查表,以及info docs未覆盖命令的薄速查。改动 mytoolkit 的行为/命令/模板时,需同步更新受影响的:本文档、
README.md、包内info docs、skillreferences/。
本项目是个人 CLI 工具集,命令入口为 mytoolkit。
1. 文档生成工作流
默认规则
Markdown 为唯一源格式,正式文档统一通过 mytoolkit 生成,不直接编辑 Word/PDF。
| 目标格式 | 命令 | 模板 |
|---|---|---|
mytoolkit convert doc.md -o doc.pdf [-t cv/textbook/manual] |
mytoolkit/templates/md-to-pdf/ (Typst) |
|
| Word | mytoolkit convert doc.md -o doc.docx [-t default/review] |
mytoolkit/templates/md-to-docx/ |
mytoolkit/templates/md-to-docx/含default/(通用文档)和review/(审稿意见)两个 reference docx 模板mytoolkit/templates/md-to-pdf/为 Typst 模板目录,支撑 PDF 生成,直接修改模板需同步更新 mytoolkit
例外:短文档直接手写 Word
审稿/评审意见等 1-2 页短文档,可直接复制 reference docx 模板 mytoolkit/templates/md-to-docx/review/template.docx 到目标目录,在 Word 内撰写,跳过 Markdown→convert。完整工作流策略(何时手写 vs 走 convert)见 workspace CLAUDE.md §8。
资源定位
模板、参考文档、项目脚手架都随 mytoolkit Python 包一起安装,不依赖仓库路径:
mytoolkit info paths # 打印 package/templates/references/scaffolds 路径
mytoolkit info docs convert # 打印 convert 完整参考文档
skill 或其他脚本应通过上述命令定位资源,避免硬编码 ~/workspace/contrib/mytoolkit/。
2. 配置管理
通过 mytoolkit env 管理,存储于 ~/.mytoolkit/config.json(keys.* 格式)。
mytoolkit env set apikey_ark <key>
mytoolkit env set volc_appid <appid>
mytoolkit env set volc_access_token <token>
mytoolkit env list # 查看所有 key
mytoolkit env export # 导出为 shell export 语句
API key 读取顺序(所有 skill 脚本统一):环境变量 → ~/.mytoolkit/config.json。共享调用为 mytoolkit.config.resolve_key()。
3. 语音合成 (TTS)
通过火山引擎(豆包)WebSocket API 实现,命令为 mytoolkit voice tts。
配置方式见上方 §2 配置管理。
用法
mytoolkit voice tts "你好,世界"
mytoolkit voice tts -f script.txt
mytoolkit voice tts "文本" -v zh_male_wennuanahu_moon_bigtts --format mp3 --speed 10 -o output.mp3
可用音色:zh_female_cancan_mars_bigtts、zh_female_shuangkuaisisi_moon_bigtts、zh_male_wennuanahu_moon_bigtts(默认)、zh_male_sunwukong_moon_bigtts
格式:mp3(默认)、wav、pcm
语速:-50 到 100(0 = 正常)
4. LaTeX 论文脚手架与投稿模板
新建论文项目
mytoolkit init paper <dir> # 默认 Elsevier elsarticle 模板(全平台可移植)
生成 main.tex/Makefile/diffpreamble.dtx/references.bib/figs/。精确配置(文档类选项、字号、字体、书签层级)以脚手架 main.tex 头部注释为准,本文档不复述以免漂移。
改脚手架时须保持的设计约束:
- 文档类 elsarticle;正文+数学只用 TeX Live 自带字体(当前 Libertinus),禁止写死系统/专有字体(如 Cambria),否则破坏可移植性;
- 统一 xelatex 一个引擎(latexmk 驱动),便于后续加中文/系统字体;
make编译、make highlighted OLDTEX=...出 latexdiff 修订稿;diffpreamble.dtx标记增删。
切换投稿期刊模板
各出版社“投稿套件”预置在包内 mytoolkit/journals/,一条命令落地到子目录,自包含、make 直接编译(pdflatex + bibtex):
mytoolkit init journal # 列出可用套件
mytoolkit init journal elsevier # -> ./submit-elsevier/
mytoolkit init journal springer mydir
| 套件 | 文档类 | 类文件来源 |
|---|---|---|
elsevier |
elsarticle |
TeX Live 自带 |
ieee |
IEEEtran |
TeX Live 自带 |
springer |
sn-jnl |
已随套件打包(含全部 bst/ 样式) |
- 命令会自动复用当前目录的
references.bib(若存在)。 - 套件 Makefile 用 pdflatex(期刊惯例);
BSTINPUTS已配好,Springer 的bst/子目录样式可直接找到。 - Springer 注意:参考文献样式由
\documentclass[...,sn-mathphys-num]{sn-jnl}选项决定,不要再写\bibliographystyle(重复会让 bibtex 报错)。 - 升级
sn-jnl.cls:从 Springer 官网下载最新 zip,替换mytoolkit/journals/springer/下的sn-jnl.cls与bst/。
5. 依赖管理
项目使用 uv 管理依赖。修改 pyproject.toml 后运行 uv sync 同步。
uv sync
6. 命名规范
- 文件与文件夹:英文统一使用 kebab-case,如
review-comments.docx - 代码中的函数与变量:统一使用 snake_case,如
review_comments()