1 背景

知乎支持Markdown语法,但直接复制Markdown文本内容,粘贴进知乎的编辑框,会识别不出。在处理图片时,也较复杂。

2 解决方案

  1. 本地编辑好Markdown文本,用Hexo博客系统发布到自有网站。Hexo参照:腾讯轻量服务器部署hexo及主题(切换网站)
  2. 打开在线markdown编辑器,粘贴Markdown文本进入编辑区,里面的本地图片无法显示出来,在自有网站中,找到对应的图片,复制图片链接,替换Markdown文本中的图片链接;
  3. 选择右上角“复制到知乎”,再到知乎(微信公众号、掘金)编辑器里面粘贴,编辑器会自动将图片链接转换为各自自有链接(不是自有网站的图片链接),点击目录自动生成目录。

3 注意事项

点击“排版主题”=>“查看主题CSS”,修改部分CSS样式,使得排版效果更好。
MarkdownEditor

  1. 边距过大问题:在微信公众号中尤为明显,需要修改#nicepadding值,修改为padding: 10px;
    1
    2
    3
    #nice {
    padding: 10px;
    }
  2. 两级标题字体大小问题:在微信公众号中尤为明显,需要修改#nice h2font-size值,修改为font-size: 1.2em;
    1
    2
    3
    4
    #nice h2 {
    border-bottom: 2px solid rgb(239, 112, 96);
    font-size: 1.2em;
    }

下面是示例(部分语法不支持):

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
>微信公众号排版工具。问题或建议,请公众号留言。**[程序员翻身](#jump_8)**

建议使用 **Chrome** 浏览器,体验最佳效果。

使用微信公众号编辑器有一个十分头疼的问题:粘贴出来的代码,格式错乱,空间小还带行号,而且特别丑。Markdown.com.cn编辑器能够解决这个问题。

Markdown是一种轻量级的「标记语言」。

请阅读下方文本熟悉工具使用方法,本文可直接拷贝到微信中预览。

## 1 Markdown.com.cn 简介

- 支持自定义样式的 Markdown 编辑器
- 支持微信公众号、知乎和稀土掘金
- 点击右上方对应图标,一键复制到各平台

## 2 Markdown语法教程

### 2.1 标题

不同数量的`#`可以完成不同的标题,如下:

# 一级标题

## 二级标题

### 三级标题

### 2.2 字体

粗体、斜体、粗体和斜体,删除线,需要在文字前后加不同的标记符号。如下:

**这个是粗体**

*这个是斜体*

***这个是粗体加斜体***

~这里想用删除线~~

注:如果想给字体换颜色、字体或者居中显示,需要使用内嵌HTML来实现。

### 2.3 无序列表

无序列表的使用,在符号`-`后加空格使用。如下:

- 无序列表 1
- 无序列表 2
- 无序列表 3

如果要控制列表的层级,则需要在符号`-`前使用空格。如下:

- 无序列表 1
- 无序列表 2
- 无序列表 2.1
- 无序列表 2.2

**由于微信原因,最多支持到二级列表**

### 2.4 有序列表

有序列表的使用,在数字及符号`.`后加空格后输入内容,如下:

1. 有序列表 1
2. 有序列表 2
3. 有序列表 3

### 2.5 引用

引用的格式是在符号`>`后面书写文字。如下:

> 读一本好书,就是在和高尚的人谈话。 ——歌德

> 雇用制度对工人不利,但工人根本无力摆脱这个制度。 ——阮一峰

### 2.7 链接

微信公众号仅支持公众号文章链接,即域名为`https://mp.weixin.qq.com/`的合法链接。使用方法如下所示:

对于该论述,欢迎读者查阅之前发过的文章,[你是《未来世界的幸存者》么?](https://mp.weixin.qq.com/s/s5IhxV2ooX3JN_X416nidA)
<a id="jump_8"></a>
### 2.8 图片

插入图片,格式如下:

![这里写图片描述](https://www.baidu.com/img/flexible/logo/pc/result@2.png)

支持 jpg、png、gif、svg 等图片格式,**其中 svg 文件仅可在微信公众平台中使用**,svg 文件示例如下:

![](https://markdown.com.cn/images/i-am-svg.svg)

支持图片**拖拽和截图粘贴**到编辑器中。

注:支持图片 ***拖拽和截图粘贴*** 到编辑器中,仅支持 https 的图片,图片粘贴到微信时会自动上传微信服务器。

### 2.9 分割线

可以在一行中用三个以上的减号来建立一个分隔线,同时需要在分隔线的上面空一行。如下:

---

### 2.10 表格

可以使用冒号来定义表格的对齐方式,如下:

| 姓名 | 年龄 | 工作 |
| :----- | :--: | -------: |
| 小可爱 | 18 | 吃可爱多 |
| 小小勇敢 | 20 | 爬棵勇敢树 |
| 小小小机智 | 22 | 看一本机智书 |



## 3. 特殊语法

### 3.1 脚注

> 支持平台:微信公众号、知乎。

脚注与链接的区别如下所示:

\```markdown
链接:[文字](链接)
脚注:[文字](脚注解释 "脚注名字")
\```

有人认为在[大前端时代](https://en.wikipedia.org/wiki/Front-end_web_development "Front-end web development")的背景下,移动端开发(Android、IOS)将逐步退出历史舞台。

[全栈工程师](是指掌握多种技能,并能利用多种技能独立完成产品的人。 "什么是全栈工程师")在业务开发流程中起到了至关重要的作用。

脚注内容请拉到最下面观看。

### 3.2 代码块

> 支持平台:微信代码主题仅支持微信公众号!其他主题无限制。

如果在一个行内需要引用代码,只要用反引号引起来就好,如下:

Use the `printf()` function.

在需要高亮的代码块的前一行及后一行使用三个反引号,同时**第一行反引号后面表示代码块所使用的语言**,如下:

\```java
// FileName: HelloWorld.java
public class HelloWorld {
// Java 入口程序,程序从此入口
public static void main(String[] args) {
System.out.println("Hello,World!"); // 向控制台打印一条语句
}
}
\```

支持以下语言种类:

\```
bash
clojure,cpp,cs,css
dart,dockerfile, diff
erlang
go,gradle,groovy
haskell
java,javascript,json,julia
kotlin
lisp,lua
makefile,markdown,matlab
objectivec
perl,php,python
r,ruby,rust
scala,shell,sql,swift
tex,typescript
verilog,vhdl
xml
yaml
\```

如果想要更换代码高亮样式,可在上方**代码主题**中挑选。

其中**微信代码主题与微信官方一致**,有以下注意事项:

- 带行号且不换行,代码大小与官方一致
- 需要在代码块处标志语言,否则无法高亮
- 粘贴到公众号后,用鼠标点代码块内外一次,完成高亮

diff 不能同时和其他语言的高亮同时显示,且需要调整代码主题为微信代码主题以外的代码主题才能看到 diff 效果,使用效果如下:

\```diff
+ 新增项
- 删除项
\```

**其他主题不带行号,可自定义是否换行,代码大小与当前编辑器一致**

### 3.3 数学公式

> 支持平台:微信公众号、知乎。

行内公式使用方法,比如这个化学公式:$\ce{Hg^2+ ->[I-] HgI2 ->[I-] [Hg^{II}I4]^2-}$

块公式使用方法如下:

$$H(D_2) = -\left(\frac{2}{4}\log_2 \frac{2}{4} + \frac{2}{4}\log_2 \frac{2}{4}\right) = 1$$

矩阵:

$$
\begin{pmatrix}
1 & a_1 & a_1^2 & \cdots & a_1^n \\
1 & a_2 & a_2^2 & \cdots & a_2^n \\
\vdots & \vdots & \vdots & \ddots & \vdots \\
1 & a_m & a_m^2 & \cdots & a_m^n \\
\end{pmatrix}
$$

公式由于微信不支持,目前的解决方案是转成 svg 放到微信中,无需调整,矢量不失真。

目前测试如果公式量过大,在 Chrome 下会存在粘贴后无响应,但是在 Firefox 中始终能够成功。

### 3.4 TOC

> 支持平台:微信公众号、知乎。

TOC 全称为 Table of Content,列出全部标题。

[TOC]

由于微信只支持到二级列表,本工具仅支持二级标题和三级标题的显示。

### 3.5 注音符号

> 支持平台:微信公众号。

支持注音符号,用法如下:

Markdown Nice 这么好用,简直是{喜大普奔|hē hē hē hē}呀!

### 3.6 横屏滑动幻灯片

> 支持平台:微信公众号。

通过`<![](url),![](url)>`这种语法设置横屏滑动滑动片,具体用法如下:

<![蓝1](https://markdown.com.cn/images/blue.jpg),![绿2](https://markdown.com.cn/images/green.jpg),![红3](https://markdown.com.cn/images/red.jpg)>

## 4 其他语法

### 4.1 HTML

支持原生 HTML 语法,请写内联样式,如下:

<span style="display:block;text-align:right;color:orangered;">橙色居右</span>
<span style="display:block;text-align:center;color:orangered;">橙色居中</span>

### 4.2 UML

不支持,推荐使用开源工具`https://draw.io/`制作后再导入图片


## 5 致谢

* 歌词经理 [wechat-fromat](https://github.com/lyricat/wechat-format "灵感来源")
* 颜家大少 [MD2All](http://md.aclickall.com/ "MdA2All")