Markdownify 是一个可以将 HTML 转换为 Markdown 格式的工具或库。它通常用于:
- 将网页内容(HTML)转换为易读的 Markdown 格式。
- 在博客、文档或笔记系统中进行格式转换。
- 简化富文本(如 Word、网页)到纯文本 Markdown 的转换。
1. 常见 Markdownify 工具 #
(1) Python 库:markdownify #
pip install markdownify示例代码:
from markdownify import markdownify as md
html = "<h1>Hello World</h1><p>This is <strong>Markdownify</strong>!</p>"
markdown = md(html)
print(markdown)输出:
# Hello World
This is **Markdownify**!(2) JavaScript 库:turndown #
npm install turndown示例代码:
const Turndown = require('turndown');
const turndown = new Turndown();
const html = "<h1>Hello World</h1><p>This is <strong>Turndown</strong>!</p>";
const markdown = turndown.turndown(html);
console.log(markdown);输出:
# Hello World
This is **Turndown**!(3) 在线工具 #
- Markdownify Web(基于
turndown) - HTML to Markdown Converter
2. 主要功能 #
| HTML 标签 | Markdown 转换结果 |
|---|---|
<h1> |
# Heading |
<h2> |
## Heading |
<p> |
普通文本(换行) |
<a href=""> |
[Link](url) |
<strong> |
**Bold** |
<em> |
*Italic* |
<ul><li> |
- List item |
<code> |
`code` |
<pre> |
`` ` 代码块 |
3. 高级用法 #
(1) 自定义转换规则 #
在 markdownify(Python)或 turndown(JS)中,可以自定义转换方式:
from markdownify import MarkdownConverter
class MyConverter(MarkdownConverter):
def convert_a(self, el, text):
return f'[LINK: {text}]({el.get("href")})'
html = '<a href="https://example.com">Click</a>'
markdown = MyConverter().convert(html)
print(markdown) # 输出: [LINK: Click](https://example.com)(2) 保留/忽略某些标签 #
const turndown = new Turndown({
hr: '---', // 自定义 `<hr>` 转换
blankReplacement: (content, node) => {
if (node.tagName === 'div') return '\n'; // 保留 div 换行
return '';
}
});(3) 处理表格 #
默认情况下,Markdownify 会尝试转换 <table> 为 Markdown 表格:
<table>
<tr><th>Name</th><th>Age</th></tr>
<tr><td>Alice</td><td>25</td></tr>
</table>转换结果:
| Name | Age |
|-------|-----|
| Alice | 25 |4. 应用场景 #
- 静态网站生成(如 Jekyll、Hugo)需要将 HTML 转为 Markdown。
- 爬虫数据处理,存储网页内容为易读格式。
- 文档迁移,如从 WordPress 导出 HTML 并转为 Markdown 用于 MkDocs。
- Chatbot 数据预处理,清理 HTML 并转为纯文本。
5. 总结 #
- Markdownify 是一个方便的工具,用于 HTML → Markdown 转换。
- 支持 Python (
markdownify) 和 JavaScript (turndown)。 - 可以 自定义转换规则,适应不同需求。
- 适用于 内容管理、爬虫、文档转换 等场景。
你可以试试看!🚀