بنقرة واحدة
medium-push
// 将 Markdown 文件推送到浏览器中打开的 Medium 编辑器。当用户说"发布到 medium"、"推送到 medium"、"paste to medium"、"push to medium"或在完成文章生成后要求发送到 Medium 时触发。
// 将 Markdown 文件推送到浏览器中打开的 Medium 编辑器。当用户说"发布到 medium"、"推送到 medium"、"paste to medium"、"push to medium"或在完成文章生成后要求发送到 Medium 时触发。
把博客文章发布到 Hashnode (reactuse.hashnode.dev),canonical URL 指回 reactuse.com。默认走 opencli 浏览器自动化(GraphQL API 已转付费)。当用户说"发到 hashnode"、"推送 hashnode"、"cross-post to hashnode"、"publish to hashnode",或在写完/commit 了一篇新博客后说"发出去"、"同步发布"、"把这篇发了"、"publish the latest post"时触发。也在 `/publish` 类的工作流里作为多平台分发的一环。
通过 IndexNow 协议主动通知 Bing / Copilot / Yandex / Naver 重新抓取一批 URL。当用户说"ping indexnow"、"通知索引"、"提交到 indexnow"、"通知必应",或在写完一篇博客后请求"通知搜索引擎更新"时触发;也用于一次性把全站推到 IndexNow(`--all`)。
| name | medium-push |
| category | publishing |
| description | 将 Markdown 文件推送到浏览器中打开的 Medium 编辑器。当用户说"发布到 medium"、"推送到 medium"、"paste to medium"、"push to medium"或在完成文章生成后要求发送到 Medium 时触发。 |
通过 Chrome 扩展 + Bridge 服务(HTTP + SSE),将本地 Markdown 文件转换为富文本并推送到浏览器中打开的 Medium 编辑器。
Claude Code (读取 Markdown 文件)
→ curl POST http://localhost:18766/paste
→ Bridge Server (SSE 推送)
→ Chrome Extension (content script)
→ Markdown → HTML 转换
→ Medium 编辑器 (模拟粘贴富文本)
curl -s http://localhost:18766/health 2>/dev/null || echo "NOT_RUNNING"
| 结果 | 操作 |
|---|---|
{"status":"ok",...} | Bridge 已运行,跳到步骤 2 |
NOT_RUNNING | 启动 Bridge 服务 |
启动 Bridge:
nohup node <skill-path>/scripts/bridge.mjs > /tmp/medium-push-bridge.log 2>&1 &
echo $!
等待 1 秒后再次检查 /health 确认启动成功。
提示用户在 Chrome 中打开 Medium 新文章页面:
https://medium.com/new-story
读取用户指定的 Markdown 文件路径。如果用户没有指定,查找 blog-external/ 目录下的 medium.md 文件。
方式 A:通过文件路径(推荐)
curl -s -X POST http://localhost:18766/paste \
-H "Content-Type: application/json" \
-d '{"filePath": "<absolute-path-to-markdown-file>"}'
方式 B:直接发送内容
curl -s -X POST http://localhost:18766/paste \
-H "Content-Type: application/json" \
-d @- <<'PAYLOAD'
{"content": "<markdown-content-here>"}
PAYLOAD
检查响应中的字段:
| 字段 | 含义 |
|---|---|
success: true | 请求成功 |
clientsSent > 0 | 内容已推送到浏览器扩展 |
clientsSent = 0 | 没有连接的扩展客户端 |
如果 clientsSent = 0,提示用户:
https://medium.com/new-story 页面输出格式:
文章已推送到 Medium 编辑器!
文件:{file_path}
内容长度:{contentLength} 字符
浏览器客户端:{clientsSent} 个
请在浏览器中查看 Medium 编辑器并检查内容格式。
chrome://extensions/<skill-path>/extension/ 目录Bridge 为纯 Node.js 实现,零外部依赖,无需 npm install。
默认端口 18766(避免与 md-push 的 18765 冲突),可通过 BRIDGE_PORT 环境变量修改。
# 标题会自动填入 Medium 的标题字段