轻松记录您
灵感和创意

一份简明的 Markdown 笔记与教程

自从 2014 年左右接触到 Markdown 以来,对它的使用就一发而不可收拾。从最开始使用它在 GitHub Pages 里写博客,到用它编辑项目的 README 文件,再到撰写开发文档,编辑微信公众号文章和邮件内容等等,这期间也见证了它在各类平台和网站上的普及和被原生支持,可以说,Markdown 如今已经渗透了我在技术和网络活动的方方面面,成为了我撰写文本文档的首选。

那么首先我们一起来看一下它的「定义」:

Markdown 是一种轻量级标记语言,创始人为 John Gruber。它允许人们「使用易读易写的纯文本格式编写文档,然后转换成有效的 XHTML(或者 HTML)文档」。——维基百科

本文档的目的不在于面面俱到地介绍 Markdown,只是作为我对其理解的笔记整理,希望能同时帮助一些对 Markdown 感兴趣的人快速上手,或是作为一个工具,供对其已经有所了解的人在需要时参考。

接下来请随我一起深入了解这门并不神秘的实用标记语言。

背景

优点

专注于文字内容;

纯文本,易读易写,可以方便地纳入版本控制;

语法简单,没有什么学习成本,能轻松在码字的同时做出美观大方的排版。

使用场景

各类代码托管平台

主流的代码托管平台,如 GitHub、GitLab、BitBucket、Coding、Gitee 等等,都支持 Markdown 语法,很多开源项目的 README、开发文档、帮助文档、Wiki 等都用 Markdown 写作。

技术社区和写作平台

StackOverflow、CSDN、掘金、简书、GitBook、有道云笔记

论坛

V2EX、光谷社区

个人感觉比较遗憾的一点是各平台可能采用不同语言实现的 Markdown 解析引擎,或采用同一解析引擎的不同版本,而且可能有不同程度的定制与扩展,这导致在不同平台上使用 Markdown 写作时体验并不完全一致。不过幸好对于大家公认的一些标准语法,各家都是支持的。

编辑工具

理论上任何一款文本编辑器都能用于编辑 Markdown 文档,它们分别提供了不同程度的语法高亮、预览等功能,以下只是列举其中一部分,选择自己称手的即可。

现代编辑器

VSCode / Atom

传统编辑器

Vim / Emacs / Sublime Text / Notepad++

IDE 自带编辑器

IntelliJ IDEA / Android Studio / WebStorm

专用编辑器

Ulysses / Mou / Typora / Markpad

在线编辑器

各种支持 Markdown 的网站都提供了在线编辑器

语法

标题

Markdown:

# atx-style 一级标题## 二级标题###### 六级标题Setext-style 一级标题===二级标题—1234567891011

预览效果:

atx-style 一级标题

二级标题

六级标题

Setext-style 一级标题

二级标题

对应 HTML:

atx-style 一级标题

二级标题

六级标题

Setext-style 一级标题

二级标题

123456789

段落

中间没有空行的连续不断的几行文字被视为一个段落。

Markdown:

白日依山尽,黄河入海流。(句号后面没空格)欲穷千里目,更上一层楼。  (句号后面有俩空格)123456789

预览效果:

白日依山尽,

黄河入海流。

(句号后面没空格)

欲穷千里目,

更上一层楼。

(句号后面有俩空格)

对应 HTML:

白日依山尽,

黄河入海流。(句号后面没有空格)

欲穷千里目,

更上一层楼。

(句号后面有俩空格)

123456789101112

行内格式

对段落或者部分文本的强调效果。

Markdown:

后面俩字**加黑**后面俩字*斜体*123

预览效果:

后面俩字加黑

后面俩字斜体

对应 HTML:

后面俩字  加黑

后面俩字  斜体

12345678

引用块

Markdown:

> 引用块段落一。>> 引用块段落二。>> 内嵌引用块段落一。>> ### 引用块内的标题123456

预览效果:

引用块段落一。

引用块段落二。

内嵌引用块段落一。

引用块内的标题

对应 HTML:

引用块段落一。

引用块段落二。

内嵌引用块段落一。

引用块内的标题

12345678

超链接

Markdown 支持行内式链接和引用式链接。

Markdown:

行内式 [博客](https://mazhuang.org “我的个人博客”) 链接,带 title。行内式 [GitHub](https://github.com/mzlogin) 链接。引用式 [博客][1] 链接。引用式 [GitHub][2] 链接,带 title。[1]: https://mazhuang.org[2]: https://github.com/mzlogin “我的 GitHub 主页”12345678910

预览效果:

行内式 博客 链接,带 title。

行内式 GitHub 链接。

引用式 博客 链接。

引用式 GitHub 链接,带 title。

对应 HTML:

行内式 博客 链接,带 title。

行内式 GitHub 链接。

引用式 博客 链接。

引用式 GitHub 链接,带 title。

1234567

图片

在超链接的写法前加一个 !,就是引用图片的方法。

Markdown:

![Alt text](https://mazhuang.org/favicon.ico “favicon”)1

预览效果:

对应 HTML:

1

列表

包括有序列表和无序列表。

Markdown:

– 苹果- 葡萄- 榴莲1. 苹果2. 葡萄3. 榴莲1234567

预览效果:

苹果

葡萄

榴莲

苹果

葡萄

榴莲

对应 HTML:

苹果

葡萄

榴莲

苹果

葡萄

榴莲

12345678910

其中无序列表的标记可以使用 +、- 或 *,有序列表前的数字可以是乱序的。

代码块

支持行内代码和代码块。

Markdown:

Android 里使用 TextUtils 类的 isEmpty 方法来判断字符串是否为空。javaif (TextUtils.isEmpty(text)) {    return null;}1234567

预览效果:

Android 里使用 TextUtils 类的 isEmpty 方法来判断字符串是否为空。

if (TextUtils.isEmpty(text)) {    return null;}123

对应 HTML:

Android 里使用 TextUtils 类的 isEmpty 方法来判断字符串是否为空。

if (TextUtils.isEmpty(text)) {    return null;}

12345

上例中的语言标记 java 可选填,可用于在编辑器和渲染后的效果里添加语法高亮。

块式代码也可以对整个代码段缩进四个空格,或一个 Tab 来实现。

水平分割线

使用一个单独行里的三个或以上 *、- 来生产一条水平分割线,它们之间可以有空格。

Markdown:

***—— – -12345

预览效果:

对应 HTML:

12345

嵌入 HTML

Markdown 标记语言的目的不是替代 HTML,也不是发明一种更便捷的插入 HTML 标签的方式。它对应的只是 HTML 标签的一个很小的子集。

对于那些没有办法用 Markdown 语法来对应的 HTML 标签,直接使用 HTML 来写就好了。

扩展语法

本节的内容是介绍一些受到广泛支持的 Markdown 扩展语法。

未经允许不得转载:坚果之云 Markdown » 一份简明的 Markdown 笔记与教程
分享到: 更多 (0)

坚果云Markdown轻松记录您 灵感和创意

坚果云Markdown下载坚果云Markdown介绍