Markdown 介绍

啥是 Markdown

在介绍 Markdown 之前,先介绍一下使用 Word 写文档的弊端(可能每个写过文档的人都会有所体会):

  • 排版麻烦:用啥字体,段落间距多少,行间距多少?实话说大部分时候根本不需要那么精细,只需要简单的文字加粗或者倾斜文字,撑死再变一下文字颜色就足够了
  • 数学公式输入麻烦:举个例子:请尝试在 Word 里输入以下公式:

    麻烦吧?甚至有人嫌麻烦宁可直接手写然后拍照剪裁后贴上去
  • 没有代码高亮支持,代码输入进去后很难看
  • 标点符号输入麻烦,一些符号键盘上没有,比如 还有 ,就要往输入法里一点点找。
  • 格式不够开放:.doc 文件只能在特定的软件中打开,如微软的那个 Word,金山的 WPS Office(顺带一提我发现很多人用 WPS Office,还是建议大家用 Word,原因是 WPS Office 和 微软的 Word 之间格式有一些不兼容,在 Word 上写的文档在 WPS Office 上可能会出现一些排版错误)还有一个开源的 LibreOffice(这个使用效果上还不如 WPS Office)。

问:那我希望写一个有图片有数学公式有列表的文档,还有啥其他的方案吗? 答:Markdown。

Markdown 是一种纯文本标记语言。可能大家看到这个词会有些懵,没关系,我来解释一下。简单来说就是通过 Markdown,你可以用纯文本(简单的文字和符号,都是键盘自带的)来实现简单的排版,输入数学公式,列表等。

Markdown 适用于哪些场合

  1. 程序员:Markdown 基本上可以说是程序员的必备技能,著名开源社交平台 Github 就对 Markdown 有很好的支持。还记得刚刚提到的吗?Word 不支持代码高亮,而 Markdown 对代码高亮的支持就很好,此外Markdown 格式开放,使用简单,所以程序员都喜欢用 Markdown。
  2. 写博客:即使不是程序员,Markdown 也可以说是当今写博客必备的技能。像 hexo.js 等博客框架对 Markdown 有很好的支持,如果你想要有自己的博客的话,那我建议你学习一下这个技能。本博客就是用 Markdown 写的。
  3. 记笔记:当今笔记软件大部分对 Markdown 有很好的支持。这里推荐使用 Obsidian,对 Markdown 的支持非常的好,用 Obsidian 记笔记的话,每一篇笔记在电脑上就是一篇 Markdown 文件,方便备份(Markdown 甚至可以直接用记事本打开阅读,所以 Markdown 文件其本质上就是一个 txt 文本文件)。用 Obsidian 配合 Syncthing 同步,既保护了隐私,又很方便,使用体验非常完美。

Markdown 简单入门

这里推荐大家打开任意一支持 Markdown 的软件(如 VS Code 或 Typora)尝试一下。

Markdown 简单排版

  • 在要加粗的文本两边加上 **(两个星号),**文本加粗**文本加粗
  • 在要倾斜的文本两边加上 *(一个星号),*文本倾斜*文本倾斜
  • 在要加上删除线效果的文本两边加上 ~~(两个波浪线),~~删除线~~删除线

是不是很简单?

输入数学公式

刚刚说的“Markdown 输入数学公式”其并不精准,准确来说是 支持通过输入文本输入数学公式,不过一般 Markdown 都是支持 的,所以大家不用计较了 ;)。

问: 又是啥? 答: 和 Markdown 一样,也是文本标记语言。只不过 Markdown 负责排版(列表,加粗,斜体,表格等),而这俩负责符号(数学公式,特殊符号)。 问: 有啥区别? 答:两者语法一样,一般选用一个即可(由开发者选择,用户不用操心这个),不过 支持的数学公式以及特殊符号更全一些。

举个简单的例子,我要输入二的三次方,该怎么输入? 用 的话就很简单:输入 $2^3$ 即可被渲染成 。 如果我想输入 呢? 输入 $2_3$ 如果我想输入 呢? 输入 $\frac{a}{b}$

那我要输入二的十次方呢? 有同学说那简单,$2^10$ 呗,错,这样渲染的结果就是 ,我们注意到 里的 没有包括进去,如果想要包括进去的话,可以用 {} 将两位数都包起来:$2^{10}$, 结果就是

注意公式一定要用 $$ 包住。还有一种输入数学公式的方法是用 $$$$ 包住(公式写在中间,如 $$2^3$$),两者的区别是 $$ 包住的公式是行内公式,而 $$$$ 包住的是块状公式。简单来说就是有的人写公式喜欢直接接着前面的文字写(不换行),就选前者,有的人喜欢另起一行写(换行),就选后者。一般如果公式比较短建议选行内公式,如果公式比较长建议块状公式。

回头看文章开头举的那个数学公式例子,用 如何输入呢? 答案:$$y=e^{-\int p(x)dx}\left[\int Q(x)e^{p(x)dx}dx+C\right]$$(公式比较长,故选用块状公式,即包裹在 $$$$ 中)。 渲染后:

其实和 Word 比,输入公式也没简单多少。好吧之前骗了你对不起。 不过有个好处是 比较开放,便于复制,比较容易受到支持(比如维基百科的数学公式用的也是 /,不信你可以打开维基百科一些有数学公式的条目查看条目源码)。

还有很多更复杂的数学公式输入技巧,这里就不细讲了。

Markdown 输入特殊符号

注意:想输入特殊符号,也要记得把内容放到 $$ 内。

举个例子我想输入希腊字母 ,我该怎么输入呢?如果是在 Word 里,我可能就要在输入法里翻找,但在 / 里就很简单,输入 $\alpha$ 就行了,就是这么简单!

大家可能注意到了 ,这两个也是相当于特殊符号,通过输入 $\LaTeX$\KaTeX(注意大小写)来完成输入。

Markdown 插入图片

想放一个图片进去的话,你可以用[图片标题](图片链接)的格式插入图片。举个例子:我有一个网址为 https://upload.wikimedia.org/wikipedia/commons/4/48/Markdown-mark.svg 的图片,我想插入的话,我该怎么办呢?这时候就可以直接在想在文档中插入图片处写 [Markdown-mark](https://upload.wikimedia.org/wikipedia/commons/4/48/Markdown-mark.svg)(图片维基百科找的),然后就可以渲染出来该图片:

Markdown-mark

问:如果维基百科服务器故障,没有办法显示图片会怎么样呢? 答:这时方框里面的文字就会显示出来,举个例子,如果刚刚的图片没有显示出来,那么就会显示文本 Markdown-mark

Markdown 插入表格:

|  |列一|列二|
|--|--|--|
|行一|内容一|内容二 |
|行二|内容三|内容四|

渲染结果:

列一列二
行一内容一内容二
行二内容三内容四

Markdown 插入代码

举 Python 代码为例 人生苦短,我用 Python

def is_prime(n):  # the input num n is the num we want to judge
    if n == 1: return False  # special judge, if the num is one, then it's not a prime num
    for i in range(2, n):  # try every int num in [2, n-1] 
        if not n%i: return False  # i < n, so if n%i == 0, then n must be a composite num.
        return True  # if there are no num which is between 1 and n-1 is divisible by n, then n is a prime num

如果想输入上述代码并代码高亮,请输入

```python
def is_prime(n):  # the input num n is the num we want to judge
    if n == 1: return False  # special judge, if the num is one, then it's not a prime num
    for i in range(2, n):  # try every int num in [2, n-1] 
        if not n%i: return False  # i < n, so if n%i == 0, then n must be a composite num.
        return True  # if there are no num which is between 1 and n-1 is divisible by n, then n is a prime num
```

第一行的 Python 也可以根据需要换成 JavaC,甚至是 Markdown(Markdown 也是一种语言)。

总结

总之 Markdown 就是很好用,很方便,如何之前没尝试过的话,希望你能尝试一下。