用途:将 Substack 通讯文章转换为 posthog.com 仓库 contents/newsletter/ 下的原生 markdown 文件,并保持原文逐字一致。
主要能力:通过 Substack 公开 API(非 WebFetch,避免被摘要模型拒绝逐字复制)抓取正文 JSON;把 body_html 转成 markdown,保留精确文本、链接与图片位置;生成标准 frontmatter(标题、日期、作者、特色图、标签、SEO);核对文件名使用 Substack 自身 slug;处理图片占位符、<Caption> 组件、引用块、脚注与代码块;把图片经 Strapi 上传到 Cloudinary。
必要用法:用户提供 Substack URL 作为 $ARGUMENTS,先并行抓取内容并读取现有通讯作参考。抓取命令示例:curl -sL "https://newsletter.posthog.com/api/v1/posts/{substack-slug}" -o /tmp/post.json。写入前用 Glob 确认目标文件不存在,并 grep contents/ 检查已有入链。上传前需配置 Strapi 令牌,员工账号无法用邮箱密码登录,需将浏览器令牌保存到 ~/.posthog/strapi-jwt,读取时用 -H "Authorization: Bearer $(cat ~/.posthog/strapi-jwt)",不得在对话中粘贴令牌。
适用场景:PostHog 团队把 Substack 通讯迁移或同步到官网。
限制:仅支持 Substack 来源;图片上传依赖 Cloudinary 与 Strapi 后端;需人工确认英雄图来源与裁切;令牌约 30 天过期且登出无法吊销;正文须逐字保留,不得改写;缺失信息(如具体图片 URL、上传路径)需按流程向用户确认或留占位符。