python自动将html中不同语言代码块转换成md中的代码块
时间: 2024-11-03 18:15:01 浏览: 14
Python有一些库可以帮助你实现HTML到Markdown的转换,特别是当你需要处理包含代码块的HTML文档时。其中一个流行的库是`mistune`,它是一个轻量级的Markdown解析器,包括一个名为`codehilite`的插件可以处理代码高亮显示。
例如,你可以先使用`BeautifulSoup`库从HTML中提取代码块(假设它们使用`<pre><code>`标签),然后创建一个`CodeBlock`对象,并传递给`mistune`:
```python
from bs4 import BeautifulSoup
import mistune
def html_to_markdown(html):
soup = BeautifulSoup(html, 'html.parser')
code_blocks = soup.find_all('pre', attrs={'class': 'language-'})
markdown = mistune.html(soup.get_text())
for code in code_blocks:
lang = code['class'][0].split('-')[-1] # 获取语言标识
code_content = code.get_text()
highlighted_code = f"```\n{lang}\n{code_content}\n```"
markdown = markdown.replace(str(code), highlighted_code)
return markdown
# 使用示例
html_input = """
<html>
<body>
<pre class="language-python">print("Hello, World!")
</pre>
</body>
</html>
"""
markdown_output = html_to_markdown(html_input)
```
在这个例子中,`html_to_markdown`函数会查找所有带`language-`类别的`<pre>`元素,识别出语言(如`language-python`),并将其转换为Markdown中的代码块语法。
阅读全文