作者 | 梁唐
大家好,我是梁唐。
大家都知道,程序员日常工作除了编码之外,文档也占据了很大一部分。但对于大多数程序员来说,写文档是一个挺麻烦的事情,尤其是写完了还得排版,让它看起来美观,对于直男们来说这简直是致命的。
包括写公众号文章也是一样,写完了都需要排版。我对此深恶痛绝,所以刚开始的时候都是请家里的领导帮忙。直到后来找到了markdown排版神器才解决了这个问题。
markdown发布于2004年,是一个轻量级的标记语言。说白了就是用很简单的语法来标准化排版,从而大大减轻编写文档以及排版的工作。对于程序员来说,撰写文档是一个相当重要的工作,所以markdown也是必学技能。
关于markdown的介绍我也在B站上传了视频,不想看文字的同学也可以点击阅读原文前往B站,也当给我个支持了~
基本功能
首先,我们可以把markdown当做txt记事本来使用,也就是可以正常地输入文字。
当然只是输入文字是不够的,我们有的时候会希望文档会有层次,这个时候我们就需要标题,并且需要各种等级的标题。比如正标题、副标题、大标题、小标题……
标题
在markdown当中,设计了6个等级的标题来应对不同的标题需求。我们使用#加空格的方式来创建标题,每多一个#表示级别加一。标题的级别越大字号越小。
比如我们用一个#表示一级标题,两个#表示二级标题,最多可以支持6级标题。
代码语言:javascript复制# 一级标题
## 二级标题
### 三级标题
#### 四级标题
##### 五级标题
###### 六级标题
显示出来之后效果如下:
加粗、斜体和分割线
然后是加粗和斜体,加粗使用两个*来表示,比如**我是粗体**
。一个星号表示斜体,也可以使用下划线_我是斜体_
。显示出来的效果就是我是粗体、我是斜体。
也可以使用快捷键,比如加粗就是Ctrl(command) B,设置斜体就是Ctrl(command) I。
除此之外,有的时候我们希望划上一条分割线,用来分割内容。大家经常逛知乎的话应该不陌生,很多大v的回答里都喜欢用分割线。分割线上面是正文,下面是推广或者是一些补充说明。在markdown当中使用三个短横线---
来创建一个分割线。
效果如下:
列表
有的时候我们会在文章当中列举观点,这个时候我们可以使用PPT当中的观点列表。列表分成两种,第一种是有序列表,第二种是无序列表。
有序列表顾名思义,就是以序号打头的列表。可以直接通过数字1加上点和空格创建。
- 第一条
- 第二条
无序列表就是以小圆点开头的列表,可以通过短横线创建
- 第一条
- 第二条
并且列表当中还有层次,使用tab键缩进即可,比如
- 第一条
- 第二条
- 2.1条
- 2.2条
超链接和图片
markdown当中同样支持超链接,我们可以指定超链接展示的文本,以及它跳转的链接。我们可以使用方括号写超链接的展示信息,后面的圆括号中写上跳转的地址。
比如我们创建一个百度的超链接:
代码语言:javascript复制[百度](www.baidu.com)
它显示出来的效果就是:百度
在markdown的编辑器当中,上面的百度是可以点击的。由于微信公众号当中不支持外链,所以大家点不了。
markdown也可以展示图片,展示图片的语法和超链接几乎一模一样,只是前面多了一个感叹号。同样我们在方括号中写入图片的展示信息,圆括号中写入图片的地址。
我们写的是文本和地址,如:
代码语言:javascript复制![公众号二维码](https://tva1.sinaimg.cn/large/008i3skNgy1gsg75hxnooj3076076mxf.jpg)
而展示出来的效果是一张图片:
公众号二维码
引用
引用,我们在markdown当中可以使用一个箭头创建引用文本的效果。
代码语言:javascript复制> 这是引用文本
显示为:
背景颜色是绿色是因为我设置了编辑器的主题,也可以更换其他主题或者是自定义颜色。
引用一般用在文章末尾,也是作为补充说明,标记引用的资料等等。
代码块
对于程序员来说这是一个非常重要的功能,我们可以在markdown当中插入代码块。
代码块的插入分成两种,第一种是行内代码,第二种是完整的代码块。当我们要展示的内容放置于文本中的时候,我们可以使用行内式。即两个反引号包裹,比如:
代码语言:javascript复制我要写一段`JavaScript`代码
显示出来的会是:我要写一段JavaScript
代码,当中被反引号包裹的JavaScript会高亮显示。
如果我们要展示的是多行的代码,可以输入三个反引号加上语言的名称来进行高亮展示。比如我们编写Python代码,就指定高亮的代码语法是Python,它就会按照Python的语法对关键字进行高亮。
代码语言:javascript复制```python
def func(a, b):
return a b
```
会显示成:
代码语言:javascript复制def func(a, b):
return a b
语法嵌套
markdown当中所有的语法几乎都可以嵌套使用,比如我们可以在引用当中使用各种各样的语法,最后会把这些语法叠加起来显示。
代码语言:javascript复制> ## 引用标题
>
> ```python
> return a b
> ```
>
> [百度](www.baidu.com)
>
> ![](https://tva1.sinaimg.cn/large/008i3skNgy1gsg75i5zxkj3076076mxf.jpg)
会显示成:
latex与内嵌HTML
markdown还支持了latex的语法,我们可以在markdown文本当中创建数学公式。对于程序员来说这是一个巨大的福音,意味着再也不需要使用那些很难用的公式编辑器了,可以通过写代码的形式来输入公式。
如果是行内的公式,我们可以使用两个$符包裹,例如
代码语言:javascript复制下面输入一个简单的一元二次方程:$y = ax^2 bx c$
会显示成:
如果是复杂的公式,可以独立成行,使用4个$即可,我们同样来看一个例子:
代码语言:javascript复制$$nabla f=(frac{partial f}{partial x}, frac{partial f}{partial y}, frac{partial f}{partial z})=frac{partial f}{partial x}i frac{partial f}{partial y}j frac{partial f}{partial z}k$$
这一串复杂的公式会显示成这样:
另外,markdown还支持html的语法,它也能渲染一些html的标签。
比如我们复制一段html创建表格的代码:
代码语言:javascript复制<table border="1">
<tr>
<td>row 1, cell 1</td>
<td>row 1, cell 2</td>
</tr>
<tr>
<td>row 2, cell 1</td>
<td>row 2, cell 2</td>
</tr>
</table>
粘贴进markdown编辑器当中会直接显示成表格:
markdown编辑器推荐
vscode
一个是vscode,我们可以在vscode当中安装markdown插件来支出markdown语法。
免费、跨平台,体验也还不错。但不支持所见即所得,也没有图床功能。这里简单介绍一下图床功能,因为markdown当中只是保存了图片的地址,而不是复制了一份。使用图床也就是将图片上传到云端CDN,生成一个云端的图片链接,而不是存在本地通过相对路径引用。
这样的好处是由于图片是一个网络链接,所以涉及图片的markdown文本可以多端显示。如果图片存在本地,那么markdown文本复制到其他机器或者是图片发生变化之后,图片就无法显示了,非常麻烦。
typora
第二个是我正在使用的typroa,所见即所得,多种主题,展示美观。支持图床功能,可以将图片上传到云端,同样跨平台,并且免费。
Quiver
仅支持Mac,界面非常漂亮,让你像是写代码似的写文档。但可惜,对图床支持不友好,使用了一段时间之后弃坑。
MWeb
界面也很好看,付费使用,功能强大,有图床功能,还可以自动上传到博客平台。
支持苹果多系统,iPhone、iPad和Mac,不支持Windows。
除了上面这些客户端之外,还有很多网络笔记平台也支持markdown,大家也可以尝试一下。
其实使用什么样的编辑器并不重要,重要的是我们能把这门工具使用好,给我们日常的工作和学习带来便利。