一、说明:

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

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

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

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

二、互转模块:

1、md转html

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

①、markdown模块(推荐):

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

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

1
快捷键
2
---------------------------
3
撤销:Ctrl/Command + Z
4
重做:Ctrl/Command + Y
5
加粗:Ctrl/Command + B
6
斜体:Ctrl/Command + I
7
标题:Ctrl/Command + Shift + H
8
无序列表:Ctrl/Command + Shift + U
9
有序列表:Ctrl/Command + Shift + O
10
检查列表:Ctrl/Command + Shift + C
11
插入代码:Ctrl/Command + Shift + K
12
插入链接:Ctrl/Command + Shift + L
13
插入图片:Ctrl/Command + Shift + G
14
查找:Command + F
15
替换:Command + G
16
17
标题
18
---------------------------
19
# 1级标题
20
## 2级标题
21
### 3级标题
22
#### 四级标题 
23
##### 五级标题  
24
###### 六级标题
25
26
文本样式
27
---------------------------
28
*强调文本* _强调文本_
29
30
**加粗文本** __加粗文本__
31
32
==标记文本==
33
34
~~删除文本~~
35
36
> 引用文本
37
38
H~2~O is是液体。
39
40
2^10^ 运算结果是 1024。
41
42
列表
43
---------------------------
44
- 项目
45
  * 项目
46
    + 项目
47
48
1. 项目1
49
2. 项目2
50
3. 项目3
51
52
- [ ] 计划任务
53
- [x] 完成任务
54
55
链接
56
---------------------------
57
链接: [link](https://mp.csdn.net).
58
59
图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)
60
61
带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)
62
63
居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)
64
65
居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)

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

1
from markdown import markdown
2
3
print(dir(markdown))
4
file = open('help.md','r',encoding='utf-8').read()
5
6
html = markdown(file)
7
print(html)
8
9
10
with open('ret.html', 'w', encoding='utf-8') as file:
11
    file.write(html)

然后看出输入的ret.html文件。

在这里插入图片描述
在这里插入图片描述

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

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

1
pip install md-to-html

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

第三步:

cmd或者powershell中执行命令:

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

结果就是:

在这里插入图片描述
在这里插入图片描述

发现没有,笔者刚刚的转换少了很多东西,所以这个模块做的效果不好,不建议使用这个,推荐使用第一个模块。

在这里插入图片描述
在这里插入图片描述

2、html转md:

①、tomd模块:

模块地址。
安装:

1
pip install tomd

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

1
<h2>快捷键</h2>
2
<p>撤销:Ctrl/Command + Z
3
重做:Ctrl/Command + Y
4
加粗:Ctrl/Command + B
5
斜体:Ctrl/Command + I
6
标题:Ctrl/Command + Shift + H
7
无序列表:Ctrl/Command + Shift + U
8
有序列表:Ctrl/Command + Shift + O
9
检查列表:Ctrl/Command + Shift + C
10
插入代码:Ctrl/Command + Shift + K
11
插入链接:Ctrl/Command + Shift + L
12
插入图片:Ctrl/Command + Shift + G
13
查找:Command + F
14
替换:Command + G</p>
15
<h2>标题</h2>
16
<h1>1级标题</h1>
17
<h2>2级标题</h2>
18
<h3>3级标题</h3>
19
<h4>四级标题</h4>
20
<h5>五级标题</h5>
21
<h6>六级标题</h6>
22
<h2>文本样式</h2>
23
<p><em>强调文本</em> <em>强调文本</em></p>
24
<p><strong>加粗文本</strong> <strong>加粗文本</strong></p>
25
<p>==标记文本==</p>
26
<p>~~删除文本~~</p>
27
<blockquote>
28
<p>引用文本</p>
29
</blockquote>
30
<p>H~2~O is是液体。</p>
31
<p>2^10^ 运算结果是 1024。</p>
32
<h2>列表</h2>
33
<ul>
34
<li>项目</li>
35
<li>
36
<p>项目</p>
37
<ul>
38
<li>项目</li>
39
</ul>
40
</li>
41
<li>
42
<p>项目1</p>
43
</li>
44
<li>项目2</li>
45
<li>
46
<p>项目3</p>
47
</li>
48
<li>
49
<p>[ ] 计划任务</p>
50
</li>
51
<li>[x] 完成任务</li>
52
</ul>
53
<h2>链接</h2>
54
<p>链接: <a href="https://mp.csdn.net">link</a>.</p>
55
<p>图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw" /></p>
56
<p>带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30" /></p>
57
<p>居中的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center" /></p>
58
<p>居中并且带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30" /></p>

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

1
from tomd import Tomd
2
3
md_text = open('ret.html', 'r', encoding='utf-8').read()
4
markdown = Tomd(md_text).markdown
5
with open('make.md', 'w', encoding='utf-8') as file:
6
    file.write(markdown)

成功的md文件:

1
2
## 快捷键
3
4
撤销:Ctrl/Command + Z
5
重做:Ctrl/Command + Y
6
加粗:Ctrl/Command + B
7
斜体:Ctrl/Command + I
8
标题:Ctrl/Command + Shift + H
9
无序列表:Ctrl/Command + Shift + U
10
有序列表:Ctrl/Command + Shift + O
11
检查列表:Ctrl/Command + Shift + C
12
插入代码:Ctrl/Command + Shift + K
13
插入链接:Ctrl/Command + Shift + L
14
插入图片:Ctrl/Command + Shift + G
15
查找:Command + F
16
替换:Command + G
17
18
## 标题
19
20
# 1级标题
21
22
## 2级标题
23
24
### 3级标题
25
26
#### 四级标题
27
28
##### 五级标题
29
30
###### 六级标题
31
32
## 文本样式
33
34
**强调文本** **强调文本**
35
36
**加粗文本** **加粗文本**
37
38
==标记文本==
39
40
~~删除文本~~
41
42
> 
43
引用文本
44
45
46
H~2~O is是液体。
47
48
2^10^ 运算结果是 1024。
49
50
## 列表
51
52
- 项目
53
<li>
54
项目
55
<ul>
56
- 项目
57
58
项目1
59
60
项目3
61
62
[ ] 计划任务
63
64
## 链接
65
66
链接: [link](https://mp.csdn.net).
67
68
图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw" />
69
70
带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30" />
71
72
居中的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center" />
73
74
居中并且带尺寸的图片: <img alt="Alt" src="https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30" />

②、html2text文件(推荐):

模块地址:

安装模块:

1
pip install html2text

转换代码:

1
import html2text
2
3
4
md_text = open('ret.html', 'r', encoding='utf-8').read()
5
6
markdown = html2text.html2text(md_text)
7
with open('make2.md', 'w', encoding='utf-8') as file:
8
    file.write(markdown)

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

1
## 快捷键
2
3
撤销:Ctrl/Command + Z 重做:Ctrl/Command + Y 加粗:Ctrl/Command + B 斜体:Ctrl/Command +
4
I 标题:Ctrl/Command + Shift + H 无序列表:Ctrl/Command + Shift + U 有序列表:Ctrl/Command
5
+ Shift + O 检查列表:Ctrl/Command + Shift + C 插入代码:Ctrl/Command + Shift + K
6
插入链接:Ctrl/Command + Shift + L 插入图片:Ctrl/Command + Shift + G 查找:Command + F
7
替换:Command + G
8
9
## 标题
10
11
# 1级标题
12
13
## 2级标题
14
15
### 3级标题
16
17
#### 四级标题
18
19
##### 五级标题
20
21
###### 六级标题
22
23
## 文本样式
24
25
_强调文本_ _强调文本_
26
27
**加粗文本** **加粗文本**
28
29
==标记文本==
30
31
~~删除文本~~
32
33
> 引用文本
34
35
H~2~O is是液体。
36
37
2^10^ 运算结果是 1024。
38
39
## 列表
40
41
  * 项目
42
  * 项目
43
44
    * 项目
45
  * 项目1
46
47
项目2
48
49
  * 项目3
50
51
  * [ ] 计划任务
52
53
  * [x] 完成任务
54
55
## 链接
56
57
链接: [link](https://mp.csdn.net).
58
59
图片:
60
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)
61
62
带尺寸的图片:
63
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw
64
=30x30)
65
66
居中的图片:
67
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)
68
69
居中并且带尺寸的图片:
70
![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center
71
=30x30)

③、html2markdown模块:

模块地址:

安装:

1
pip install html2markdown

转换代码:

1
import html2markdown
2
3
4
md_text = open('ret.html', 'r', encoding='utf-8').read()
5
6
markdown = html2markdown.convert(md_text)
7
8
with open('make3.md', 'w', encoding='utf-8') as file:
9
    file.write(markdown)

最后生成md文件:

1
## 快捷键
2
3
撤销: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
4
5
## 标题
6
7
# 1级标题
8
9
## 2级标题
10
11
### 3级标题
12
13
#### 四级标题
14
15
##### 五级标题
16
17
###### 六级标题
18
19
## 文本样式
20
21
_强调文本_ _强调文本_
22
23
__加粗文本__ __加粗文本__
24
25
==标记文本==
26
27
~~删除文本~~
28
29
>  
30
> 引用文本
31
> 
32
33
H~2~O is是液体。
34
35
2^10^ 运算结果是 1024。
36
37
## 列表
38
39
*   项目
40
*   
41
    
42
    项目
43
    
44
    
45
    
46
    *   项目
47
    
48
    
49
    
50
*   
51
    
52
    项目1
53
    
54
    
55
*   项目2
56
*   
57
    
58
    项目3
59
    
60
    
61
*   
62
    
63
    \[ \] 计划任务
64
    
65
    
66
*   \[x\] 完成任务
67
68
## 链接
69
70
链接: [link](https://mp.csdn.net).
71
72
图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw)
73
74
带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw =30x30)
75
76
居中的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center)
77
78
居中并且带尺寸的图片: ![Alt](https://imgconvert.csdnimg.cn/aHR0cHM6Ly9hdmF0YXIuY3Nkbi5uZXQvNy83L0IvMV9yYWxmX2h4MTYzY29tLmpwZw#pic_center =30x30)

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