一、说明:

今天突然想着学习一下如何将markdown和HTML互转的知识,因为我在CSDN的写的博客可以导出的时候有俩种方式,所以想着也可以把他们相互转化下。我觉得python现在很成熟了,肯定有这方面的轮子。于是就上网搜索找了一些整理下。

如果你只是转换单个文件,推荐直接在线转换:在线互转地址

其实这个在线地址里面有好多在线工具,需要的自己研究吧:
在这里插入图片描述
在这里插入图片描述

二、互转模块:

1、md转html

这里我找到俩个模块可以使用,但是md-to-html模块效果不好,网上大多数使用的也是markdown的模块。

①、markdown模块(推荐):

这里有一个我感觉还不错的博客地址,感兴趣的可以去学习看看:
第一步:下载安装:markdown

第二步:准备一个md文件,我这里是使用CSDN写作的部分帮助文档md。

快捷键
---------------------------
撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Command + F
替换:Command + G

标题
---------------------------
# 1级标题
## 2级标题
### 3级标题
#### 四级标题 
##### 五级标题  
###### 六级标题

文本样式
---------------------------
*强调文本* _强调文本_

**加粗文本** __加粗文本__

==标记文本==

~~删除文本~~

> 引用文本

H~2~O is是液体。

2^10^ 运算结果是 1024。

列表
---------------------------
- 项目
  * 项目
    + 项目

1. 项目1
2. 项目2
3. 项目3

- [ ] 计划任务
- [x] 完成任务

链接
---------------------------
链接: [link](https://mp.csdn.net).

图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)

带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)

居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)

居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)


第三步:可以直接复制测试:

from markdown import markdown

print(dir(markdown))
file = open('help.md','r',encoding='utf-8').read()

html = markdown(file)
print(html)


with open('ret.html', 'w', encoding='utf-8') as file:
    file.write(html)



然后看出输入的ret.html文件。
在这里插入图片描述

②、md-to-html模块(不推荐):

模块地址:
第一步:安装md-to-html:

pip install md-to-html

第二步:准备一个gbk的md文件,我直接使用刚刚的会报编码错误,然后桌面新建一个dbk的txt就可以了,但是转换效果极差。

第三步:

cmd或者powershell中执行命令:

 md-to-html -i .\help.txt -o .\ret2.html

结果就是:
在这里插入图片描述
发现没有,笔者刚刚的转换少了很多东西,所以这个模块做的效果不好,不建议使用这个,推荐使用第一个模块。
在这里插入图片描述

2、html转md:

①、tomd模块:

模块地址。
安装:

pip install tomd

第一步:使用刚刚成的html或者导出自己的一份博客的HTML文件进行测试。
这里我贴下我刚刚转存成功的。

<h2>快捷键</h2>
<p>撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Command + F
替换:Command + G</p>
<h2>标题</h2>
<h1>1级标题</h1>
<h2>2级标题</h2>
<h3>3级标题</h3>
<h4>四级标题</h4>
<h5>五级标题</h5>
<h6>六级标题</h6>
<h2>文本样式</h2>
<p><em>强调文本</em> <em>强调文本</em></p>
<p><strong>加粗文本</strong> <strong>加粗文本</strong></p>
<p>==标记文本==</p>
<p>~~删除文本~~</p>
<blockquote>
<p>引用文本</p>
</blockquote>
<p>H~2~O is是液体。</p>
<p>2^10^ 运算结果是 1024。</p>
<h2>列表</h2>
<ul>
<li>项目</li>
<li>
<p>项目</p>
<ul>
<li>项目</li>
</ul>
</li>
<li>
<p>项目1</p>
</li>
<li>项目2</li>
<li>
<p>项目3</p>
</li>
<li>
<p>[ ] 计划任务</p>
</li>
<li>[x] 完成任务</li>
</ul>
<h2>链接</h2>
<p>链接: <a href="https://mp.csdn.net">link</a>.</p>
<p>图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw" /></p>
<p>带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30" /></p>
<p>居中的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center" /></p>
<p>居中并且带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30" /></p>

第二步:
转换代码:
其中:ret.html就是上面的html,make.md就是转换成功的markdown文件。

from tomd import Tomd

md_text = open('ret.html', 'r', encoding='utf-8').read()
markdown = Tomd(md_text).markdown
with open('make.md', 'w', encoding='utf-8') as file:
    file.write(markdown)

成功的md文件:


## 快捷键

撤销:Ctrl/Command + Z
重做:Ctrl/Command + Y
加粗:Ctrl/Command + B
斜体:Ctrl/Command + I
标题:Ctrl/Command + Shift + H
无序列表:Ctrl/Command + Shift + U
有序列表:Ctrl/Command + Shift + O
检查列表:Ctrl/Command + Shift + C
插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L
插入图片:Ctrl/Command + Shift + G
查找:Command + F
替换:Command + G

## 标题

# 1级标题

## 2级标题

### 3级标题

#### 四级标题

##### 五级标题

###### 六级标题

## 文本样式

**强调文本** **强调文本**

**加粗文本** **加粗文本**

==标记文本==

~~删除文本~~

> 
引用文本


H~2~O is是液体。

2^10^ 运算结果是 1024。

## 列表

- 项目
<li>
项目
<ul>
- 项目

项目1

项目3

[ ] 计划任务

## 链接

链接: [link](https://mp.csdn.net).

图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw" />

带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30" />

居中的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center" />

居中并且带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30" />

②、html2text文件(推荐):

模块地址:

安装模块:

pip install html2text

转换代码:

import html2text


md_text = open('ret.html', 'r', encoding='utf-8').read()

markdown = html2text.html2text(md_text)
with open('make2.md', 'w', encoding='utf-8') as file:
    file.write(markdown)

最后生成一个make2.md文件。

## 快捷键

撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command +
I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command
+ Shift + O 检查列表:Ctrl/Command + Shift + C 插入代码:Ctrl/Command + Shift + K
插入链接:Ctrl/Command + Shift + L 插入图片:Ctrl/Command + Shift + G 查找:Command + F
替换:Command + G

## 标题

# 1级标题

## 2级标题

### 3级标题

#### 四级标题

##### 五级标题

###### 六级标题

## 文本样式

_强调文本_ _强调文本_

**加粗文本** **加粗文本**

==标记文本==

~~删除文本~~

> 引用文本

H~2~O is是液体。

2^10^ 运算结果是 1024。

## 列表

  * 项目
  * 项目

    * 项目
  * 项目1

项目2

  * 项目3

  * [ ] 计划任务

  * [x] 完成任务

## 链接

链接: [link](https://mp.csdn.net).

图片:
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)

带尺寸的图片:
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw
=30x30)

居中的图片:
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)

居中并且带尺寸的图片:
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center
=30x30)


③、html2markdown模块:

模块地址:

安装:

pip install html2markdown

转换代码:

import html2markdown


md_text = open('ret.html', 'r', encoding='utf-8').read()

markdown = html2markdown.convert(md_text)

with open('make3.md', 'w', encoding='utf-8') as file:
    file.write(markdown)

最后生成md文件:

## 快捷键

撤销:Ctrl/Command + Z重做:Ctrl/Command + Y加粗:Ctrl/Command + B斜体:Ctrl/Command + I标题:Ctrl/Command + Shift + H无序列表:Ctrl/Command + Shift + U有序列表:Ctrl/Command + Shift + O检查列表:Ctrl/Command + Shift + C插入代码:Ctrl/Command + Shift + K插入链接:Ctrl/Command + Shift + L插入图片:Ctrl/Command + Shift + G查找:Command + F替换:Command + G

## 标题

# 1级标题

## 2级标题

### 3级标题

#### 四级标题

##### 五级标题

###### 六级标题

## 文本样式

_强调文本_ _强调文本_

__加粗文本__ __加粗文本__

==标记文本==

~~删除文本~~

>  
> 引用文本
> 

H~2~O is是液体。

2^10^ 运算结果是 1024。

## 列表

*   项目
*   
    
    项目
    
    
    
    *   项目
    
    
    
*   
    
    项目1
    
    
*   项目2
*   
    
    项目3
    
    
*   
    
    \[ \] 计划任务
    
    
*   \[x\] 完成任务

## 链接

链接: [link](https://mp.csdn.net).

图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)

带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)

居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)

居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)

通过对比三个模块的markdown文件的结果,发现生成的效果第二个模块的我感觉还不错(对比项目那一块的结果,其他的基本上都一样。)

Logo

开放原子开发者工作坊旨在鼓励更多人参与开源活动,与志同道合的开发者们相互交流开发经验、分享开发心得、获取前沿技术趋势。工作坊有多种形式的开发者活动,如meetup、训练营等,主打技术交流,干货满满,真诚地邀请各位开发者共同参与!

更多推荐