使用 n8n 工作流,批量生成 Markdown
在日常内容生产中,处理大量草稿文件时,手动操作效率低且易出错。借助 Python 脚本与 n8n 工作流,可以实现从草稿到带 FrontMatter 的 Markdown 文件的全自动化处理。
1. 整体流程概览
批量生成 Markdown 的流程可以分为三个阶段:
阶段一:批量触发
- 使用 Python 脚本扫描草稿目录,筛选符合条件的文件(.md、.txt)。
- 构建包含文件名的 JSON 数据。
- 通过 HTTP POST 请求发送至 n8n Webhook。
- 输出触发结果(成功 [SUCCESS] / 失败 [ERROR]),便于监控批量处理进度。
阶段二:工作流处理
- n8n Webhook 接收请求,触发后续工作流。
- 读取草稿内容和 FrontMatter 模板文件。
- 标记数据来源,区分正文与模板。
- 合并模板与正文数据,形成统一输入流。
- 自动解析日期、标题、slug。
- 生成完整 FrontMatter 并拼接正文。
阶段三:Markdown 输出
- 将生成的 Markdown 内容转换为二进制格式。
- 写入指定目录,文件名沿用原始基础名,扩展名 .md。
- 批量完成 Markdown 文件生成,确保格式统一。
2. 批量触发脚本说明
功能
- 遍历指定草稿目录,筛选 .md 和 .txt 文件。
- 将文件名封装为 JSON 负载,通过 HTTP POST 请求发送至 n8n Webhook。
- 输出每个文件的触发状态,便于监控。
脚本逻辑
- 使用 Python 的 os 模块遍历目录。
- 使用 requests 库发送 HTTP 请求。
- 异常处理保证网络请求稳定性。
- 支持批量触发工作流,自动化处理草稿文件。
运行方式
cd ~/n8n/workflow
python3 "ContentTXT + FrontMatter to ContenMD.py"
备注
-
若报错提示
ModuleNotFoundError: No module named 'requests':系统自带 Python 可能没装第三方包,请执行以下命令(使用--user,避免权限与 SSL 问题):python3 -m pip install --user requests "urllib3<2.0" -
关于 LibreSSL 警告: macOS 自带的 Python3.9 使用 LibreSSL 2.8.3,过旧会触发
NotOpenSSLWarning: urllib3 v2 only supports OpenSSL 1.1.1+。 通过固定urllib3<2.0可完全避免。 -
推荐配置环境(系统 Python):
echo 'export PATH="$HOME/Library/Python/3.9/bin:$PATH"' >> ~/.zprofile source ~/.zprofile python3 -m pip install --upgrade pip --user python3 -m pip install --user requests "urllib3<2.0"
3. n8n 工作流
节点解析
- Webhook 节点
- 接收 Python 脚本发送的文件名请求。
- 触发后续处理节点。
- 读取文件节点
- Read Chinese Content:读取草稿正文内容。
- Read ZH Front Matter Template:读取 FrontMatter 模板(frontmatter.txt),提供统一字段结构。
- 设置来源节点
- Set Chinese Source 和 Set Template Source:标记数据来源,区分正文与模板。
- 合并节点 (Merge Inputs)
- 合并正文与模板数据,形成统一输入流。
- 生成 Markdown 节点 (Generate Markdown)
- 自动解析日期、标题、slug。
- 拼接模板 FrontMatter 与正文。
- 输出完整 Markdown 文件内容,确保 FrontMatter 统一。
- 转换为二进制节点 (Convert to Binary)
- 将字符串内容编码为 Base64,便于文件系统写入。
- 写入文件节点 (Save Markdown)
- 将生成的 Markdown 文件写入 /data/posts/。
- 文件名保留原始基础名,扩展名 .md。
运行方式
http://localhost:5678- workflow - Execute workflow
4. 附件与文件说明
- ContentTXT + FrontMatter to ContenMD.json
- n8n 工作流配置文件,定义节点及连接关系,实现自动化生成 Markdown 流程。
- ContentTXT + FrontMatter to ContenMD.py
- Python 脚本,批量扫描草稿并触发 Webhook。
- frontmatter.txt
- FrontMatter 模板文件,存放统一字段结构,保证生成 Markdown 文件格式一致。
5. 分段运作方式总结
- 触发阶段:Python 脚本扫描目录 → 发送 POST 请求 → 批量触发工作流。
- 处理阶段:Webhook 接收 → 读取文件与模板 → 数据标记 → 合并 → 生成 Markdown 内容。
- 输出阶段:内容编码 → 写入文件 → 生成完整 Markdown 文件。
通过分段运作方式,流程更加清晰,每个阶段职责明确,便于监控和排错。
6. 总结
- Python 脚本 + n8n 工作流实现了从草稿到 Markdown 的全自动化批量处理。
- 自动解析日期、标题、slug,并生成统一 FrontMatter。
- 适用于博客、知识库、文档批量转换场景。
- 提高生产效率,降低人工操作错误,增强内容管理的可维护性。
相关文章
| 如何批量导出苹果备忘录 | 2025-09-18 |
| 将博客图片从仓库迁移到 Cloudflare R2 | 2025-10-02 |
| 批量将图片文件名改为小写 | 2025-06-21 |
| 用 Jekyll、GitHub、Orbstack、VS Code、Cloudflare 打造本地和在线博客 | 2025-06-15 |
| 使用 ImageMagick 批量转换 JPG 为 WebP 格式,提升网页性能 | 2025-06-20 |
| 用 Python 脚本自动同步 Markdown 文章 Front Matter 的图片链接 | 2025-06-20 |
| Cudy 路由器完全配置手册 | 2025-04-02 |
| GitHub Pages + Cloudflare 自定义域名 HTTPS 配置指南 | 2025-06-20 |
| 暗网 | 2021-05-23 |
| 截止目前 Nostr 的意义 | 2023-02-06 |