为什么你要学 Markdown? 十分钟新手入门指南

作为一个有博客也有公众号还需要每天写一些接口文档的高级技术工人,每天对于写作的需求量还是很大的。在用 Markdown 之前我一直在用各种奇奇怪怪的方式来写文档,其中不乏 Word, TXT 等传统方式。倒不是说传统方式不对,我想表达的是 Markdown 较其他的编辑方式有其自己的优点。

如果你:

  • 有写文档或写作的需求;
  • 对格式有一定的要求,但不是很要求精准的格式;
  • 希望注重于写作内容本身,想要在格式上倾注更少的精力

那你来对了。

如果你还在用 TXT 和 Word 写作,用聊天窗口写接口文档,那我真的,求求你了学一学 Markdown 吧

Markdown 介绍

百度百科说

Markdown 是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式。

维基百科说

Markdown is a lightweight markup language with plain text formatting syntax. Its design allows it to be converted to many output formats, but the original tool by the same name only supports HTML. Markdown is often used to format readme files, for writing messages in online discussion forums, and to create rich text using a plain text editor.

总之,Markdown 是一种语言,它可以用来编写文档。你可以使用简单的标记语法,来写出具有一定格式和样式的文档。

Markdown 被广泛用于博客程序,在一些博客引擎中,Markdown 最终会被转译为 HTML 元素。使用这种方式的博客引擎有HexoTypecho等。

Markdown 被 GitHub 指定为 README 专用的文档格式,GitHub中的每一个目录下的README.md文件都会被当成是当前目录的解释文件,显示在详情页上。

Markdown 的语法特别简单,只需要稍作学习,就可以轻松运用。

但 Markdown也有局限性,例如大多数 Markdown 的使用场景都是在电脑上,由于移动端的输入特性,Markdown 没有一个好的方式为移动端提供支持。再就是 Markdown 支持的格式没办法实现类似于论文那样的精准格式要求,所以不适用于一些对格式要求过强的场景。

Markdown基础语法

Markdown 文档的后缀名是.md

Markdown 文档不需要任何标签,你可以在一个.md为后缀名的文件中的任意位置写符合 Markdown 语法的内容。

Markdown 语法指的是通用的 Markdown 文档的约定,不代表下面叙述的内容在实际应用上能被全部编辑器或解释系统输出为同样的结果。通常在博客系统中,Markdown 还会被转译为HTML,在转译过程中,开发者会按照自己的喜好或主题的要求,将 Markdown 内容转化为一些特定的样式,将 Markdown 文档进行相应的美化。但通常来讲,Markdown文档都会遵循下面语法所描述的约定。

标题

在一行文字前写1~6个#号,当前行会被当成标题来处理。1个#号表示1级标题,字号在标题中最大;6个#号表示6级标题,字号在标题中最小。标题会加粗处理,并且单独占领一行。

1
2
3
4
5
6
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题

实现效果是

这是一级标题

这是二级标题

这是三级标题

这是四级标题

这是五级标题
这是六级标题

字体

下面将展示一些字体的写法。

1
2
3
4
**加粗的文字两边用两个 * 包围**
*倾斜的文字两边用一个 * 包围*
***加粗倾斜的文字两边用三个 * 包围***
~要加删除线的文字两边用 ~ 包围~

实现结果是

加粗的文字两边用两个*包围

倾斜的文字两边用一个*包围

加粗倾斜的文字两边用三个*包围

要加删除线的文字两边用两个``包围~~

引用

引用的文字使用 > 来开始,下面的一段都会被显示为引用形式。例如

这段是引用文字

如果需要多行,可以在引用中使用 <br>来折行。

1
> 第一行 <br >第二行

第一行
第二行

如果内容太多,则需要使用 <blockquote> 标签,在这个标签中的所有内容都会被显示为引用的形式。

1
2
3
4
5
6
7
8
9
<blockquote>
这段文字

你真的放心

不管换几行

都是引用
</blockquote>

这段文字你真的放心

不管换几行

都是引用

而且,引用可以和其他标记一起使用。

1
># 这段引用里放了个二级标题

这段引用里放了个二级标题

引用可以使用多级

1
2
> 我打算在这引用点东西
>> 我打算弄个第二层

我打算在这引用点东西

我打算弄个第二层

分割线

使用 >= 3个的 * 或 - 号都可以表示一个分割线。

1
2
3
------

******

下边是两个分割线



列表

使用 + - * 来表示无序列表,符号和内容之间要有一个空格

1
2
3
+ 列表
- 列表
* 无序列表
  • 列表
  • 列表
  • 无序列表

使用任意数字来表示有序列表,数字和内容之间要有一个空格。数字顺序不会影响列表真正的数字顺序。

1
2
3
1. 第一个
2. 第二个
4. 就算写的是4实际上也是3
  1. 第一个
  2. 第二个
  3. 就算写的是4实际上也是3

列表之间可以嵌套,子级比父级多打3个空格即可。

1
2
3
4
5
6
7
8
1. 第一个
   1. 第一个里的第一个
   1. 第一个里的第二个
2. 第二个
3. 第三个
    + 第二个里咋啥都没有
    * 我也不知道
    - 我也不敢问
  1. 第一个
    1. 第一个里的第一个
    2. 第一个里的第二个
  2. 第二个
  3. 第三个
    • 第二个里咋啥都没有
    • 我也不知道
    • 我也不敢问

链 接

使用[链接显示内容](链接地址)来表示一个点击了会跳转的超链接。

1
[百度](http://www.baidu.com)

百度

图片

使用![图片描述](图片地址)来表示一个图片。

1
![](https://www.baidu.com/img/baidu_resultlogo@2.png)

表格

表格的格式较复杂,但是一些 Markdown 编辑器都会提供快捷的编写表格的功能。

表格的格式是

1
2
3
4
5
|表头|表头|表头|表头|
|--:|--|--:|:--:|
||默认左对齐|靠右||
||默认左对齐|靠右||
||默认左对齐|靠右||

实现效果是

表头 表头 表头 表头
默认左对齐 靠右
默认左对齐 靠右
默认左对齐 靠右

表格使用类似|:--:|:--:|:--:|:--:|来分割表头和身体。表头、分割线、表体的格子数都要一样。分割线中不加:,该列默认左对齐;右边加:,该列右对齐;两边加:,该列居中对齐。

原生的 Markdown 语法要求表格两边都要用|包起来,一些特殊的 Markdown 引擎没有此要求。

代码

1
`单行代码两边使用反引号包起来`

单行代码两边使用反引号包起来

“`

多行代码上下使用三个反引号包起来

“`
//多行代码上下使用三个反引号包起来
function fun($a) {
return a + 1;
}

代码功能也不一定应用于代码,在一些文献的编写中,可以用于公式。代码块的功能主要是可以将里边写入的内容按原样显示,不被 Markdown 解释器所解释。本文的 Markdown 标记部分全部都是使用代码块的方式写的。

Markdown 高级用法

应用于一些博客系统

我之前的文章中提到如何使用 Hexo 搭建一个个人博客。搭建成功后,就可以使用 Markdown 语法来写文章了。由于 Hexo使用的是 Markdown 引擎,所以在执行hexo g的时候  Markdown 会被Hexo 转译为对应的 HTML 形式。再加上 Hexo 有优秀的主题模块,同样的 Markdown 遇到不同的主题,也会变成不同的样子。

如果使用Typecho博客引擎的话,在编写博客的时候使用 Markdown,但是不会被马上转译为 HTML。在查看对应内容的时候,Typecho 会使用 Markdown 解释器来显示文档内容。

如果你会使用 HTML 标签

Markdown 文档中是可以插入 HTML 标签的,所以如果你会使用 HTML 标签,你的 Markdown 文档会更加丰富的。例如我们可以使用 CSS 样式来使 Markdown 文档内容具有颜色。例如:

1
<span style="color:red;">这行字是红色的</span>

这行字是红色的

虽然 Markdown 支持使用 HTML 来丰富内容,但在实际使用上还是不建议过多依赖于这种形式。因为我们选择使用 Markdown 时就是看中了他的简单快速,但是 HTML 标签的支持却与 Markdown 本身的理念背道而驰。所以建议偶尔使用或者是在必要的时候使用 HTML 标签来增强 Markdown 的功能或者是完成必要的内容,而不是过度依赖于 HTML 来编写 Markdown文档。

Markdown 小结

Markdown 真的很好用,很多编辑器也支持将 Markdown 导出为其他格式。试想老板让你几分钟之内做出一篇文档,当别人还在等待 Word 打开的时候,你的文档已经写好开头了。当别人给老板甩过去一个.doc 的超大文件,老板也在等待 Word 打开的时候,你使用 Markdown 生成的 HTML 两秒内就展示在老板面前了,这样的结果是不是让人眼前一亮呢?

一些工具

Typora

推荐使用 Typora 来作为 Markdown 编辑器。它符合 Markdown 的初衷,简洁、高效。输入好的一段 Markdown 文档,会在你光标切换到下一段的时候直接显示为 Markdown 应该成为的样式。但是缺点也有一些,例如不支持多标签,没有命令行工具。Typora 支持 Windows, macOS, Linux 平台,官网提供主题下载功能。

VS Code

如果你的电脑上有 VS Code,同样推荐你使用 VS Code 来编写 Markdown. VS Code默认支持 Markdown 解析,并可以将界面分成左右两边显示,左边输入 Markdown 文档,右边显示结果。VS Code 比 Typora 更多地支持命令行工具,所以在使用一些博客系统的时候会感觉到更舒服一些。

VS Code也有更多的插件可供选择,如果对 Typora 的“马上就能看到结果”不太感兴趣的话,不妨试试 VS Code.

Sublime

Sublime 和 VS Code 原理相同,支持命令行,可以安装插件。但是 VS Code完全免费,就没有尝试 Sublime.

Effie

跟上面提到的其他工具不同:

  • Effie 是一款客户端软件,但她不是 Typora 那样的“文件编辑器”;
  • Effie 是在线的文档工具,但她不像语雀、简书那样只能在网页上操作;
  • Effie 同时具备客户端软件和 web 工具的优点:她具有网页的在线保存文档等优点,同时具有客户端软件的美观和流畅性;
  • Effie 很简约,简约到她的官网不需要任何使用说明。在你注册程序后,会在作品库里看到默认添加的 Effie 使用入门和 Effie 快捷键列表;
  • Effie 支持 Markdown 中的标题、字体、列表等语法,你可以使用#快速打出一个一级标题,也可以使用+或-创建一个无序列表;
  • 创建列表后,你还可以点击左侧的符号来创建思维导图,这是迄今为止我所用过的最快的创建思维导图的方式;
  • 等等等等

在 Effie 中,你甚至可以体验到  Typora 一样的所写即所得的体验。对于程序员或专业领域人员,可以使用一对“`来创建代码块,对于需要标注代码、公式或是其他场景都十分好用。

Effie 很冷静,她不会在自己身上随意做加法,相反地,纵观 Effie 的界面,连按钮都几乎没有。她不需要更多的操作点来触发很多的功能,她只是在你需要的时候——例如需要写作的时候——给你展现出需要的功能组件——例如一个编辑区,这就足够了。

冷静是功能设计中很难得的点,大多数产品在设计阶段就开始了无尽的加法,产品经理恨不得把毕生所学都堆到一个功能里,这就导致了大部分的产品都很难逃离“臃肿”这一大弊。

其实一个好的产品,对于用户来说,只需要在需要的时候拿出必要的部分就足够了。至于其他没有展现的部分,总有需要它们的地方。如果一个软件的某些部分,在整个软件中根本没有需要展现的位置,那甚至就需要讨论这个部分是不是需要继续留下了。

在 Effie 中几乎不需要考虑这些问题,在足够的冷静下,任何一个多余的按钮都会打破这美好的意境。

如果你也觉得不必要的格式降低了你的工作效率,如果你对工作也有着极高的要求和标准,那 Markdown 和 Effie 的搭配可以说是你的不二之选:Markdown 快速、高效,Effie 简约、优雅、冷静,她可以是你的编辑器,可以是你的效率工具,也可以是你的伙伴。

那我们从下载开始:

点击图片下载 macOS 版 Effie
点击图片下载 Windows 版 Effie
点击图片下载 iOS 版 Effie

欢迎你在评论区留下你对本文的看法和想法,我们评论区见。

评论
  1. 请问如何添加tab空格?
    我发现复制进来的文字里tab空格可以保留,但是却不能够直接打出tab空格

  2. 我想要打公式,但是latex代码输进去,输出的pdf还是代码的样子~

发表回复

您的电子邮箱地址不会被公开。 必填项已用 * 标注