python实现为markdown文件添加toc目录
时间: 2024-05-13 19:18:18 浏览: 252
可以使用Python中的`markdown`和`beautifulsoup4`模块来为Markdown文件添加TOC目录。
首先,安装所需的模块:
```
pip install markdown beautifulsoup4
```
然后,使用以下代码读取Markdown文件并生成TOC目录:
```python
import markdown
from bs4 import BeautifulSoup
def add_toc(file_path):
with open(file_path, 'r', encoding='utf-8') as f:
content = f.read()
# 使用Markdown模块将Markdown文本转换为HTML文本
html = markdown.markdown(content)
# 使用BeautifulSoup解析HTML文本
soup = BeautifulSoup(html, 'html.parser')
# 查找所有的标题标签
headers = soup.find_all(['h1', 'h2', 'h3', 'h4', 'h5', 'h6'])
# 生成TOC目录
toc_html = "<ul>"
for header in headers:
# 获取标题文本和ID
header_text = header.get_text().strip()
header_id = header.get('id')
# 添加TOC目录项
toc_html += f"<li><a href='#{header_id}'>{header_text}</a></li>"
toc_html += "</ul>"
# 将TOC目录添加到HTML文本中
toc_soup = BeautifulSoup(toc_html, 'html.parser')
soup.insert(0, toc_soup)
return str(soup)
```
最后,将生成的新HTML文本写回Markdown文件中:
```python
def write_file(file_path, content):
with open(file_path, 'w', encoding='utf-8') as f:
f.write(content)
file_path = 'test.md'
html = add_toc(file_path)
write_file(file_path, html)
```
这样,Markdown文件中就会自动生成TOC目录了。
阅读全文