背景:我被手动发布文章折磨了很久
每次写完一篇技术文章,真正的痛苦才刚刚开始。
打开掘金编辑器,粘贴 Markdown,手动上传封面图,选分类、选标签,预览,发布。 再打开 CSDN,重复一遍。 再去博客,再重复一遍。
图片不能直接用本地路径,每个平台的代码块渲染还不一样,一篇文章发完大概要花 20 分钟。
这 20 分钟不产生任何创作价值,纯粹是体力活。
我的理想状态
写完文章,按一个快捷键,剩下的全部自动完成。
这就是我做 InkFlow 的原因。
InkFlow 是什么
InkFlow 是一个基于 GitHub Actions + Python 的多平台文章自动发布引擎。
核心理念只有一句话:Write Once, Publish Everywhere。
你只需要在文章头部写几行配置(Front Matter),Push 到 GitHub,InkFlow 自动帮你发布到所有指定平台,并在 GitHub Actions 的 Job Summary 里告诉你每个平台的文章链接。
目前支持:
- 掘金(Cookie API)
- GitHub Pages(Jekyll 静态博客)
- CSDN、微信公众号、知乎(开发中)
整个工作流长什么样
Obsidian 写文章
│
│ 快捷键 → "Obsidian Git: Commit and Sync"
▼
自动 Push 到 GitHub
│
│ GitHub Actions 检测到 articles/ 目录变更
▼
InkFlow 引擎启动
│
├─ 解析 Front Matter(标题 / 标签 / 发布目标)
├─ 并发发布到各平台
└─ Job Summary 展示结果链接
从按下快捷键到文章出现在掘金,大约 2 分钟。
配置过程(一次性)
第一步:Fork 或直接引用 InkFlow
不需要 fork,InkFlow 作为独立引擎仓库存在,你的写作仓库直接调用它。
第二步:在写作仓库添加 Workflow
在你的 Obsidian Vault 对应的 GitHub 仓库里,创建 .github/workflows/publish.yml:
name: Publish Articles via InkFlow
on:
push:
branches: [main]
paths: ["articles/**/*.md"]
workflow_dispatch:
jobs:
publish:
uses: DawnCclin/inkflow/.github/workflows/engine.yml@main
permissions:
contents: write
with:
articles_dir: articles
secrets: inherit
第三步:配置 Secrets
在写作仓库的 Settings → Secrets and variables → Actions 里添加:
| Secret | 说明 |
|---|---|
JUEJIN_COOKIE | 掘金登录后从浏览器 F12 复制的 Cookie |
PAGES_DEPLOY_TOKEN | GitHub PAT(Contents:write 权限) |
PAGES_REPO | 你的 GitHub Pages 仓库,如 yourname/yourname.github.io |
获取掘金 Cookie:
- 浏览器登录掘金
- F12 → Application → Cookies →
https://juejin.cn - 复制整行 Cookie 字符串
Cookie 有效期约 30 天,过期后在 Secrets 里更新一下即可。
第四步:安装 Obsidian Git 插件
在 Obsidian 插件市场搜索 Obsidian Git,安装后:
- 设置自动 commit 间隔(我用 1 分钟)
- 快捷键绑定「Commit and Sync」,我绑的是
Ctrl + Shift + S
写文章的方式
文章放在 Vault 的 articles/ 目录下,头部加上 Front Matter:
---
title: 你的文章标题
description: 文章摘要,建议 50-100 字
tags: [后端, python, docker]
publish:
- juejin # 发布到掘金
- githubpages # 发布到个人博客
status: published # draft 表示草稿,不会发布
date: 2026-03-12
---
正文内容...
写完,按下obsidian中配置的提交并推送快捷键,完事。
防重复发布机制
InkFlow 会在你的写作仓库维护一个 .inkflow-state.json 文件,记录每篇文章在每个平台的发布状态。下次触发时,已发布的文章直接跳过,不会重复投递。
另外 workflow 配置了 concurrency 并发控制,即使 Obsidian Git 在短时间内提交了多次,也只会顺序处理,不会并发跑两个发布任务。
效果
现在我的写作流程是:
- 在 Obsidian 里写文章(和之前完全一样)
- 写完,按
obsidian中配置的提交并推送快捷键 - 泡一杯咖啡
- 回来在 GitHub Actions 的 Summary 里看发布结果
每篇文章节省大约 15-20 分钟的重复操作。
项目地址
GitHub:DawnCclin/inkflow
如果你也被多平台手动发布折磨过,欢迎试用,欢迎 Star,也欢迎提 PR 贡献新平台的 Skill