n8n的Markdown节点可以帮助你轻松地在Markdown和HTML之间进行转换,而无需编写复杂代码或调用昂贵的API。

Markdown节点是n8n中的一个数据转换工具,它可以在两种常见的文本格式之间进行快速转换:
这个节点使用了业界广泛使用的转换库(Showdown和node-html-markdown),确保转换质量和兼容性。
让我们看看实际应用场景:
如果你的AI生成的内容是Markdown格式,但邮件系统需要HTML,Markdown节点可以自动完成转换,无需手动处理。
将数据转换为格式精美的HTML报告,直接下载或通过邮件发送给客户。
从一个系统导出Markdown内容到另一个需要HTML的系统,自动化整个过程。
不再需要调用昂贵的AI API来处理基础格式转换 —— 这是Markdown节点相比其他解决方案最大的优势。
Markdown节点有两个基本参数:
| 参数 | 说明 | 示例 |
|---|---|---|
| Mode(模式) | 选择转换方向:Markdown to HTML 或 HTML to Markdown | Markdown to HTML |
| Input Field(输入字段) | 选择包含源内容的字段 | text 或 content |
| Destination Key(目标键) | 指定输出数据的字段名 | html_output |
根据你的需求,可以启用以下选项:
现在让我们创建一个完整的可执行工作流,演示如何使用Markdown节点生成HTML邮件报告。

这个工作流会:
{
"name": "Markdown报告生成工作流",
"nodes": [
{
"parameters": {
"path": "generate-report",
"httpMethod": "POST",
"responseMode": "onReceived"
},
"id": "webhook-trigger",
"name": "Webhook",
"type": "n8n-nodes-base.webhook",
"typeVersion": 2,
"position": [250, 300]
},
{
"parameters": {
"mode": "runOnceForAllItems",
"jsCode": "// 生成格式化的Markdown报告\nconst data = $input.first().json;\n\nlet markdown = `# 📊 任务报告\\n\\n`;\nmarkdown += `**生成时间**: ${new Date().toLocaleString('zh-CN')}\\n\\n`;\nmarkdown += `## 项目信息\\n`;\nmarkdown += `- 项目名称: ${data.projectName || '未指定'}\\n`;\nmarkdown += `- 负责人: ${data.manager || '未指定'}\\n`;\nmarkdown += `- 优先级: ${data.priority || '中等'}\\n\\n`;\n\nmarkdown += `## 任务列表\\n\\n`;\nmarkdown += `| 任务 | 状态 | 完成度 |\\n`;\nmarkdown += `|------|------|--------|\\n`;\n\nif (data.tasks && Array.isArray(data.tasks)) {\n data.tasks.forEach(task => {\n markdown += `| ${task.name} | ${task.status} | ${task.progress}% |\\n`;\n });\n}\n\nmarkdown += `\\n## 备注\\n`;\nmarkdown += `${data.notes || '暂无备注'}\\n\\n`;\nmarkdown += `---\\n`;\nmarkdown += `*此报告由n8n自动生成*`;\n\nreturn [{ json: { markdown_content: markdown } }];"
},
"id": "generate-markdown",
"name": "Function - 生成Markdown",
"type": "n8n-nodes-base.code",
"typeVersion": 2,
"position": [450, 300]
},
{
"parameters": {
"mode": "markdownToHtml",
"markdown": "={{ $json.markdown_content }}",
"markdownToHtmlOptions": {
"completeHtmlDocument": false,
"githubCodeBlocks": true,
"tablesSupport": true,
"automaticLinkingToUrls": true,
"emojiSupport": true
},
"destinationKey": "html_output"
},
"id": "markdown-converter",
"name": "Markdown - 转换为HTML",
"type": "n8n-nodes-base.markdown",
"typeVersion": 1,
"position": [650, 300]
},
{
"parameters": {
"useRawData": true,
"mimeType": "text/html"
},
"id": "binary-converter",
"name": "Move Binary Data",
"type": "n8n-nodes-base.moveBinaryData",
"typeVersion": 1,
"position": [850, 300]
}
],
"connections": {
"Webhook": [
{
"node": "Function - 生成Markdown",
"type": "main",
"index": 0
}
],
"Function - 生成Markdown": [
{
"node": "Markdown - 转换为HTML",
"type": "main",
"index": 0
}
],
"Markdown - 转换为HTML": [
{
"node": "Move Binary Data",
"type": "main",
"index": 0
}
]
},
"settings": {},
"staticData": null,
"pinData": {},
"versionId": "bff19c9e-0c2a-4c9e-a08f-2e7f8f8f8f8f",
"meta": {
"instanceId": "n8n"
},
"active": false
}将以下JSON作为测试数据发送到Webhook:
{
"projectName": "n8n自动化项目",
"manager": "张三",
"priority": "高",
"tasks": [
{ "name": "需求分析", "status": "已完成", "progress": 100 },
{ "name": "功能开发", "status": "进行中", "progress": 75 },
{ "name": "测试", "status": "未开始", "progress": 0 }
],
"notes": "进展顺利,预计本周五完成所有开发工作。"
}执行后,你会看到转换后的HTML报告被生成为二进制数据,可以直接下载。
原因:Markdown中的特殊字符未被正确处理
解决方案:
原因:未启用表格支持选项
解决方案:
|分隔符)原因:自动链接识别未启用
解决方案:
使用JavaScript在Function节点中动态生成Markdown内容,然后通过Markdown节点转换,这样可以创建高度定制化的报告。
在Markdown中嵌入<style>标签,转换后的HTML会保留这些样式:
<style>
table { border-collapse: collapse; }
th { background: #007bff; color: white; }
</style>
| 列1 | 列2 |
|-----|-----|
| 数据 | 数据 |将转换后的HTML直接通过Gmail或SendGrid节点发送,自动化邮件排版工作流:
Webhook → Function(生成Markdown) → Markdown(转HTML) → Gmail(发送邮件)通过本教程,你已经学会了:
✅ Markdown节点的基本概念和使用方法
✅ 如何配置转换选项以满足不同需求
✅ 通过实战案例理解工作流集成
✅ 解决常见问题的方法
✅ 如何利用这个节点为你的自动化工作流提速
现在,你可以:
[1] 官方文档: https://docs.n8n.io/integrations/builtin/core-nodes/n8n-nodes-base.markdown/
[2] n8n系列教程: https://www.undsky.com/blog/?category=n8n%E6%95%99%E7%A8%8B#