Quaily 最初是打算开源,但一年多来都没有找到开源的理由。如果开源的话,对于代码、架构、文档的质量的要求会很高,社区参与低的话,我是没有精力做这些事情了。
不过也陆续完成了不少开源仓库。这些仓库不是「为了开源而开源」,而是 Quaily 在实际开发里遇到具体问题后诞生的工具。
下面梳理它们的来历,并补充更技术向的细节。
1 · quail-ui — Vue 3 组件库
虽然我的习惯是不出设计直接代码,但是项目规模稍大以后,还是希望有一套统一的视觉。
当时流行 Tailwind,但我不喜欢,冗余,废话太多,于是需要一套更轻巧、样式统一的 UI 组件,那就自己写吧,反正也不难。
- 技术 :Vue 3 +
<script setup>
、SCSS 变量、按需 import+Rollup Tree‑Shaking。 - 组件 (摘自
src
):QButton / QInput / QTooltip / QDialog / QIcon* / QLoading
等 60+ 组件,配套 icon 集可直 import。查看 Demo。 - 特点 :极小外部依赖;支持暗色模式
用法:
import { createApp } from 'vue'
import { QuailUI } from 'quail-ui'
import 'quail-ui/dist/style.css'
createApp(App).use(QuailUI)
2 · quail-js — TS/JS SDK
Web 前端与 Obsidian 插件都需要和 Quaily API 交互,那就整个包吧。
src/
以 ESM 方式导出 QuailyClient
,内置 token 注入、重试与错误映射;Rollup 打包生成 dist/
。主打一个一把梭,又不是不能用。
调用:
import { Client } from 'quail-js'
const client = new Client({ apibase: 'https://api.quaily.com', access_token: '...' })
const resp = await client.request(url, 'GET', null)
3 · obsidian-quail — Obsidian 插件
Quaily 早期无 Web‑CMS,一切创作在 Obsidian 中完成,需要一键发布。于是需要个 Obsidian 插件。
- 主要命令 :
Quaily: Publish / Unpublish / Preview / Sync
。 - 功能点 :多语言、多渠道投递;AI 自动生成摘要与标签;移动端预览;发布后可直接把邮件发送给订阅者
- 安装 :在 Obsidian 社区插件商店搜索 “Quail” 即可。
4 · goldmark‑enclave — Markdown 语法增强(Go)
goldmark 扩展性极好,适合 Quaily 用来扩展 Markdown 语法。
提供的扩展 :
- 媒体 Embed:YouTube、Bilibili、TradingView、Spotify、Tweet、Quaily Post 等,全部复用

语法; - 行内高亮
==text==
→<mark>
; - Pandoc‑style fenced div、GitHub‑style callout;
- 图片尺寸、对齐、主题参数;
- 自动把链接 title 写进
<a title="…">
。
调用:
md := goldmark.New(goldmark.WithExtensions(enclave.New()))
详细的方法请查看项目 README.md
5 · quail-cli — 终端与自动化入口(Go)
需要在 CI/CD、脚本或本地终端里操作 Quaily,并探索将 Quaily API 暴露给 LLM 工具链(MCP)。
- 核心技术:Go + Cobra CLI;OAuth 登录;client/ 复用 quail-js 定义的 API schema;可选 MCP Server(SSE / stdio)。
- 实验功能:quail-cli mcp --sse 启动本地 AI 工具协议服务,支持搜索、获取、发布等工具调用
- 主要命令:login|publish|unpublish|deliver|delete。
这里有两篇介绍:
示例:
# 登录(浏览器完成 OAuth)
quail-cli login
# 从 markdown front‑matter 创建或更新文章
quail-cli post upsert article.md -l my-channel
6 · bizdocgen — PDF 发票/贷记单生成器(Go)
每月要生成大量符合日本税务格式的发票,手工排版麻烦不说而且易出错。那就写个程序吧。
特性 :
- 内置 NotoSans CJK 字体示例,支持日中英混排;
- 模板驱动,可扩展其他单据。
使用方式:
读取 YAML/JSON 参数 + 可选字体配置 → GenerateInvoice()
回传 []byte
:
bd, _ := builder.NewBuilder(cfg, "./params.yaml")
pdf, _ := bd.GenerateInvoice()
os.WriteFile("invoice.pdf", pdf, 0666)
7 · translate-cli — AI 批量翻译 JSON Locale 工具
Quaily 的 i18n 文案存放在 JSON,手动翻译耗时;希望借助多家 LLM 快速产出可初审的翻译。
- 功能清单 :
- OpenAI / Azure / Bedrock 等多提供商切换(还没完成);
- 支持 Glossary 和背景上下文文件;
--batch
控制窗口大小;- 中文自动去除 “您” 系列敬辞,日语句末润色;
- 同步写回多语言文件。
命令示例:
translate-cli translate -s en-US.json -d ./langs -g glossary.json \
-b background.txt --batch=20
这些工具都源于“先把问题解决掉,然后顺手贡献给社区”的习惯。如果它们也正好能解决你的痛点,欢迎 Star ⭐、提 Issue、开 PR