Skip to content

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

2 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

Tech Blog Writer

交互式技术博客写作 Skill,8 步引导从选题到发布全流程。支持知乎专栏风和论文风两种风格,内置 AI 生图、URL 抓取、去 AI 味等工具。

快速开始

在 Trae IDE 中使用

Use Skill: tech-blog-writer

安装到全局

cd skill
./install-trae.sh

CLI 工具

# 抓取任意网页,解析为 LLM 可读的 markdown
python3 skill/tech-blog-writer.py fetch https://example.com -o article.md

# 微信公众号专用(需先用 Chrome DevTools 获取 HTML)
python3 skill/tech-blog-writer.py fetch-html /tmp/page.json "https://mp.weixin.qq.com/s/xxx" -o article.md

8 步工作流

步骤 内容 说明
1 选择工作模式 自动(网络获取候选)/ 手动(指定 URL 或主题)
2 获取原始内容 URL → WebFetch → trafilatura 解析 → 原始素材
3 选择文章风格 7 种风格 + 模型选择(专用写作模型 / 主 Agent)
4 生成初稿 按风格硬规则生成,禁止虚构(论文风)
5 人工审阅修改 用户确认,可反复迭代
6 配图与可视化 6a 配色 → 6b 配图方式(AI 生图 / SVG / Mermaid)
7 选择发布渠道 掘金 / 知乎 / 微信公众号 / 个人博客 / GitHub
8 发布文章 保存 post.md + 按渠道提供发布指导

文章风格

  • 知乎专栏风:强烈第一人称、主观判断、个人经验融入正文(禁止独立反思章节)
  • 论文风:客观中立、引用真实案例、严禁虚构个人经历
  • 还有深度科普、Newsletter、教程实战、安全分析、工具推荐等风格

内置工具

AI 生图

支持多后端自动降级:Gemini 3-Pro → gpt-image-2 → Seedream

from scripts.lib.image_gen import build_prompt, generate_image
from pathlib import Path

prompt = build_prompt("文章标题", "核心视觉概念", style="hero")
result = generate_image(prompt, Path("pipeline/2026-05-20"), filename="hero.png")

URL 内容抓取

用 trafilatura 将任意网页解析为 LLM 可读的 markdown,支持微信公众号。

LLM API 封装

双协议封装(OpenAI / Anthropic),自动重试 + fallback + 成本台账。

配色方案

方案 主色 辅色 成功 背景
经典蓝橙(默认) #3B6FE0 #F2A65A #5BB47A #FAFAF7
深空暗夜 #6C5CE7 #FDCB6E #00B894 #2D3436
薄荷清新 #00B4D8 #FF6B6B #2EC4B6 #F8F9FA
莫兰迪 #8D9DB6 #D4A373 #A3B18A #FFFCF2

目录结构

blog/
├── skill/                       # Skill 核心
│   ├── SKILL.md                 # Skill 规则定义(Trae 读取此文件)
│   ├── skill.yaml               # Skill 配置
│   ├── tech-blog-writer.py      # CLI 入口(fetch / fetch-html)
│   ├── install-trae.sh          # Trae IDE 安装脚本
│   └── docs/                    # Skill 文档
├── scripts/
│   ├── lib/
│   │   ├── config.py            # YAML 配置加载
│   │   ├── log.py               # 日志
│   │   ├── llm.py               # LLM API 封装(OpenAI / Anthropic)
│   │   ├── image_gen.py         # AI 生图(多后端 + 自动降级)
│   │   └── db.py                # SQLite(LLM 调用台账)
│   └── fetchers/
│       └── url.py               # URL 内容抓取(trafilatura)
├── config/
│   └── models.yaml.example      # 模型配置模板
├── style/
│   ├── keywords.yaml            # 领域锚词
│   ├── blocklist_l1.txt         # 一级禁用词
│   ├── blocklist_l2.txt         # 二级谨慎词
│   ├── blocklist_titles.txt     # 标题黑名单
│   └── voice_samples.md         # 个人语气样本
├── pipeline/                    # 每日产物 (.gitignore)
├── .env.example                 # 环境变量模板
└── pyproject.toml

配置

复制 .env.example.env,按需填入 API Key:

LLM_API_KEY=          # LLM 网关 API Key
GEMINI_API_KEY=       # Gemini 生图
OPENAI_IMAGE_API_KEY= # OpenAI 生图

config/models.yaml 配置模型分配:

models:
  writer:   {provider: jd_openai, name: GLM-5.1}           # 写作
  reasoner: {provider: jd_openai, name: DeepSeek-V4-Flash} # 推理
image:
  primary:  {provider: jd_openai, name: Gemini 3-Pro-Image-Preview}
  fallback: {provider: jd_openai, name: gpt-image-2}

依赖

  • Python >= 3.11
  • trafilatura >= 2.0(URL 抓取)
  • httpx >= 0.27(HTTP 客户端)
  • pyyaml >= 6.0(配置解析)
  • python-dotenv(环境变量)
  • rich(可选,美化 CLI 界面)

License

个人项目,暂无 license。

About

个人AI热点文章的写作工作流skill,包括多种博客风格和绘图配色风格,支持自定义配置写作模型和归纳总结模型,支持制定参考blog,确定编写方向等。

Resources

Stars

1 star

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages