从 URL 发布新文章到博客。当用户提供文章链接并希望整理成中文博客文章、保存发布到博客仓库时使用。尤其适合个人阅读、文章整理、技术资料消化后沉淀成博客的场景。触发词包括:"根据这个链接发布一篇文章"、"把这篇文章整理发布到博客"、"帮我写成博客"、"发布新文章"、"发布到博客"等。输出具有判断先行、高信息密度的博主风格文章。
从 URL 抓取文章内容,整理萃取为具备个人洞见的中文技术博客,并发布到博客仓库。
发布前请先阅读 references/blog-conventions.md,其中包含 frontmatter schema、有效 tags、目录命名规则、写作风格要求与 commit 格式。
git rev-parse --show-toplevel
如果命令失败(不在 git 仓库中),停止执行并提示用户先切换到博客项目目录。
抓取用户提供的 URL,提取核心论点、技术原理、实践经验与代码示例。
抓取工具优先级与降级策略:
| 优先级 | 说明 | 工具 |
|---|---|---|
| 1(默认) | 所有 URL 一律先走主通道 | markdown.new — POST https://markdown.new/ 或 https://markdown.new/<url> |
| 2(回退) |
markdown.new 返回空或报错 |
chrome-devtools |
| 3(兜底) | chrome-devtools 仍然失败 | agent-browser |
Medium 会员文章(Member-only story)特殊处理:
https://freedium-mirror.cfd/ 后面,再交给 markdown.new。
示例:https://freedium-mirror.cfd/https://alirezarezvani.medium.com/...Reddit / 论坛讨论帖特殊处理:
检测到未安装agent-browser时,自行安装并重试抓取
npm install -g agent-browser
agent-browser install # Download Chromium
以资深技术博主的视角,对内容进行深度总结与重构。不要做机械的流水账翻译,而是要判断先行、融入思考、结构灵活。
src/constants.ts,以 FRONTMATTER_TAGS 作为 tags 的唯一来源。slug(英文优先)。date 和 lastUpdated。content/blog/YYYY-MM-DD--{slug} 是否已存在:
-2)避免冲突content/blog/YYYY-MM-DD--{slug}/index.mdx:::note[引用说明]
本文基于 <作者名> 的文章学习与整理:[<标题>](<URL>)。
:::
(/harness-engineering-agent-first)),绝不要添加 /blog/ 前缀。执行 blog-conventions.md 中的校验清单,并且本地验证通过:
cd $BLOG_ROOT
pnpm build:astro
发布前人工复核清单:
src/constants.ts。YYYY-MM-DD--{slug},文件名为 index.mdx。## / ### 小节标题是否精炼直接。/blog/ 前缀)。cd $BLOG_ROOT
git status --short
git add content/blog/YYYY-MM-DD--{slug}/
git commit -m 'docs: add post "<文章标题>"'
git push origin main
commit 格式遵循 blog-conventions.md 的规定。
提交边界: 除非用户明确要求,只暂存新建的文章目录,不包含其他文件。
| 原则 | 说明 |
|---|---|
| 判断先行 | 读者时间宝贵,把结论和最深刻的洞见放在最前面 |
| 拒绝翻译腔 | 像人一样说话,不搞堆砌辞藻,用最简洁直接的中文表达 |
| 灵活重构 | 结构为内容服务,抛弃套路化的章节骨架,顺着思考逻辑写作 |
| 尊重原作者 | 始终保留引用说明,做好来源追踪和致敬 |