学习使用 Markdown 编写文档

学习 Markdown

实在受够了 word ,于是决定开始学习和使用 Markdown 来完成日常文档的书写了。Markdown 是一款非常流行的书写语言,使用了几天觉得非常不错,所以把学习过程也用 Markdown 写成笔记,一是练习其使用,二来也是方便日后查阅。同时也分享给那些受够了 word 并且想学习 Markdown 的小伙伴。本笔记分为以下几个部分:

  • 认识 Markdown
  • Markdown 学前准备
  • Markdown 语法学习

1 认识 Markdown

1.1 什么是 Markdown

Markdown 是由 John Gruber 和 Aaron Swartz 创建的一种轻量级标记语言
这种语言不是像 Java 一样用来开发软件的,而是用来编写文档的。它允许使用者以易读易写的纯文本格式来编写、保存文档。简单说 Markdown 就是定义了一组描述文件格式的语法。“轻量级”指的是这种语法非常简单,Markdown 精心挑选了一组少量的符号作为其语法标记,比如,以# 开头的行表示一级标题,## 开头的行表示二级标题。如文档中输入:


#一级标题
##二级标题


最终可以达到如下呈现效果


一级标题

二级标题


纯文本文件是最原始的文件格式,其内部所有的内容都按同样的方式显示,Markdown 以特殊的标记字符定义了文档的格式,使用支持 Markdown 语法的工具软件就可以显示出特定的效果。

1.2 Markdown 特点与用途

  • Markdown 语法的目标是成为一种适用于网络的书写语言,实现易读易写。
    使用 Markdown 格式编写的文档是以纯文本的形式保存的,其语法由少量的精心挑选的符号构成,作用一目了然易于接受,更接近于书写习惯。
  • Markdown 以纯文本形式保存,兼容性最好,可以使用任何的文本编辑工具随意修改。
  • Markdown 易于转换成其他任何格式,如 HTML,PDF,其他格式的电子书等。
  • Markdown 可以内嵌 HTML 格式,和 HTML 格式比较,HTML 是一种发布格式,而 Markdown 则是一种侧重书写的格式。
  • Markdown 以简洁的语法代替排版,使书写者的注意力集中在内容书写上,而不是排版,排版工作则可以在后期借助其他工具完成,升华一下,这其实是和 Linux 系统中分离设计思想是一致的,^-^。这和 word 形成了鲜明的对比。
  • 同样是因为以纯文本的格式保存、传播,这更便于文档的版本追踪管理和多人协作,这也是 word 让人不爽的一个地方,呵呵,和 word 杠上了啊。
  • Markdown 语法简洁,易于学习,其功能又比纯文本格式强大,所以其得到了 Github、Wikipedia、Stackoverflow 等网站和众多编辑软件的支持,也深得使用者的喜爱。现在越来越多的程序猿用其撰写技术文档,同时也有大量的人使用其些博客,笔记,还有很多人用其撰写书籍,比如 Gitbook 就是采用 Markdown 的一个书籍项目。

1.3 Markdown 增强版本

Markdown 还有一系列衍生版本,用于扩展 Markdown 的功能(如表格、脚注、内嵌HTML等等),同时,也能让 Markdown 格式的文本转换成更多的格式,例如 LaTeX,Docbook。
Markdown 增强版中比较有名的有 Markdown Extra、MultiMarkdown、 Maruku 等。这些衍生版本要么基于工具,如 Pandoc;要么基于网站,如 GitHub 和 Wikipedia,在语法上基本兼容,但在换行等细节上也有改动。

小结

你还在为 word 版本不兼容,费时费力的排版苦恼吗,赶紧使用 Markdown 吧,什么?学习成本?前面说了 Markdown 之所以流行就是因为其简单,易学,10分钟!,是的10分钟你就可以学会。
Markdown 不仅仅简单,其功能比纯文本强大很多,更重要的是其语法规则更接近书写习惯,Markdown 是网络时代的最佳书写语言。
将内容编写和排版分离是 Markdown 的一个主要特色!

2 Markdown 学前准备

学习 Markdown 其实是件很简单的事情,只要掌握 Markdown 的语法,拥有一个文本编辑器就可以了。对于初学者建议还是使用专业点(至少是所见即所得)的编辑器,选择的编辑器至少有:

1. 语法高亮
2. 能即时的看到效果
3. 有在线的帮助(语法提示)
4. 工具的操作习惯符合你的日常操作习惯

当然了有些专业的编辑器功能比如上强大的多,包括快捷操作和格式转换等等。Markdown的编辑器主要包括:

  • 专用的在线编辑器
  • 专用的离线编辑器
  • 现有编辑器 + Markdown 插件
  • 现有浏览器 + Markdown 插件
2.1 在线Markdown 编辑器
  • Cmd Markdown 非常不错的在线Markdown编辑器,支持LaTeX公式。
  • [马克飞象]( “欢迎使用马克飞象”) 一款专为印象笔记(Evernote)打造的、简洁高效的 Markdown 编辑器,支持高亮代码块、LaTex 公式、流程图,本地图片上传甚至截图粘贴;提供桌面[离线客户端][1],支持移动端 Web;和印象笔记深度整合,支持选择笔记本和添加标签,支持从印象笔记跳转编辑,轻松管理。
  • MaHua 一个在线编辑 Markdown 文档的编辑器:
    • 方便的导入导出功能
    • 编辑和预览同步滚动,所见即所得(右上角设置)
    • vim 快捷键支持,方便 vim 党们快速的操作 (右上角设置)
    • 强大的自定义CSS功能,方便定制自己的展示
    • 有数量也有质量的主题,编辑器和预览区域
    • 完美兼容 Github 的 Markdown 语法
    • 预览区域代码高亮
    • 所有选项自动记忆
  • Dillinger 可导出为 HTML、PDF、Markdown 格式文件。
  • Markable 可导出 HTML、Markdown 格式文件。

以上在线编辑器都有所见即所得的功能,但是需要网络。

2.2 Markdown 离线编辑器

  • MarkdownPad2 是 Windows 平台的所见即所得的 Markdown 编辑器。

    • 为你提供了语法高亮和方便的快捷键功能,给您最好的 Markdown 编写体验。
    • 无需猜测您的 语法是否正确;每当您敲击键盘,实时预览功能都会立刻准确呈现出文档的显示效果。
    • 100%可自定义的字体、配色、布局和样式,让您可以将 MarkdownPad 配置的得心应手。
    • MarkdownPad 支持多种解析引擎。
    • 有了标签式多文档界面、PDF 导出、内置的图片上传工具、会话管理、拼写检查、自动保存、语法高亮以及内置的 CSS 管理器,您可以随心所欲地使用 MarkdownPad。
  • Haroopad 是一款Linux上的 Markdown 编辑器,使用 Chromium 作为UI,支持 Windows、Mac OS X和 Linux。主题样式丰富,语法标亮支持 54 种编程语言。 该编辑器界面,一边是代码编辑窗口,一边是预览窗口,可以实时更新。其邮件导出功能可以将文档发送到 Tumblr 和 Evernote。推荐 Ubuntu/Linux 用户使用该工具。

  • ReText 是 Linux 平台下一个使用 Markdown 语法和 reStructuredText (reST) 结构的文本编辑器,编辑的内容支持导出到 PDF、ODT 和 HTML 以及纯文本,支持即时预览、网页生成以及 HTML 语法高亮、全屏模式,可导出文件到 Google Docs 等。

  • Mou 是 Mac 平台上非常著名的针对开发者的 Markdown 编辑器。其具有实时预览,同步滚动,自动保存,自动补全,定制主题以及以 CSS/HTML/PDF 格式导出文件等特性。支持在编辑器内内联 HTML 代码,并且对中文,日文和韩文的输入非常友好。

2.3 另可以了解和关注

  • Pandoc 可将多种文档格式,包括:Markdown, reStructuredText, textile, HTML, DocBook, or LaTeX 转成:
    • HTML formats: XHTML, HTML5, and HTML slide shows using Slidy, Slideous, S5, or DZSlides.
    • Word processor formats: Microsoft Word docx, OpenOffice/LibreOffice ODT, OpenDocument XML
    • Ebooks: EPUB
    • Documentation formats: DocBook, GNU TexInfo, Groff man pages
    • TeX formats: LaTeX, ConTeXt, LaTeX Beamer slides
    • PDF via LaTeX
    • Lightweight markup formats: Markdown, reStructuredText, AsciiDoc, MediaWiki markup, Emacs Org-Mode, Textile
  • 简书 整合支持 Markdown 的笔记本和类 Medium 阅读社区,“简书”希望让作者专注于写作、读者专注于阅读。

* 注:*

另外还可以使用你熟悉的编辑器、浏览器增加插件的方式,比如使用 vim,sublime text编辑器以及 google 浏览器配置相应的插件进行编辑 Markdown 文档(支持 Markdown 语法高亮、导出其他格式预览等)。

3 学习 Markdown 语法

学习 Markdown 主要就是学习 Marddown 的语法,Markdown 的语法主要包括:

关于 Markdown 语法的学习,我们可以先学习基本语法,其他在使用中用到了再查询相关文档即可。
* 注:*

不同的 Markdown 工具对语法的支持可能或略有不同,请查阅相关工具的使用手册。

3.1 Markdown 基本语法

3.1.1 标题与文本段落

* 【学习目标】 *

  • 掌握 Markdown 的标题和文本段落

* 【任务内容】 *

请使用文本编辑器或者专用的 Markdown 编辑器,完成如下这段文本的编辑。


练习1

* 【任务要点】 *

观察如上文本,可以看到其主要包括两部分内容:

  1. 标题:
    本段文本包含两级标题,一级标题为“概述”,二级标题为“宗旨”。
  2. 文本段落
    本段文本包含三段文字。
3.1.1.1 Markdown 标题

Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。

类 Setext 形式是用底线的形式,利用三个以上连续的 “=” 表示一级标题,利用三个以上连续的 “-” 表示二级标题。示例如下:

这里写图片描述

注:
左侧为输入文本,右侧为显示效果。后续其他演示界面同此,不再解释。

对于类 Setext 形式的标题语法,目前查得的资料显示,其只表示两级标题,而且“=”或者“-”大于等于3个,多写些也无妨,有的为了追求美观可以和标题文字长度相同。如:

这是一级标题
===========   

这是二级标题
----------- 

类 Atx 格式的标题语法可以表示 6 级标题,这个和 HTML 的规范相同。类 Atx 格式的标题语法规则为:标题行首插入 “#”,1个 “#” 表示一级标题,2个 “#” 表示二级标题,以此类推 6个 “#” 表示六级标题。示例如下:

这里写图片描述

* 注:*
“#” 要在行首顶格写(有些特殊编辑器可能允许有小于等于 3 个的空格,但这不具有普遍意义,非常不推荐),为了美观也可以在标题后面也加入相等数量的 “#” ,这仅仅是为了美观,依个人习惯而定。如:

# 一级标题 #   
## 二级标题 ##  
### 三级标题 ###   
#### 四级标题 ####  
##### 五级标题 #####   
###### 六级标题 ###### 
3.1.1.2 段落和换行

Markdown 中的段落由一个或多个连续的文本行构成,段落之间使用空行分隔(只包含空格或者制表符 [tab] 的行视为空行)。

一个段落的开始请不要使用空格或者制表符来缩进。

关于换行,如果想要换行,直接输入一个回车(插入换行符)一般起不到换行的效果,因为 Markdown 允许段内强制插入换行符(转成 HTML 时这个换行符并不会转换成<br>标签),这个比较特别哈。要想达到换行的效果,可以在行尾输入多个(大于等于 3 个)空格或者输入制表符(tab)然后再回车。

* 【任务完成】 *

请根据 Markdown 的标题语法、段落与换行规则完成本任务要求的文本编辑。

3.1.2 强调

* 【学习目标】 *

  • 掌握 Markdown 的强调(粗体与斜体)

* 【任务要点】 *
Markdown 中强调指的是 粗体斜体

  • Markdown 中标记 粗体 的语法是:
    用在需要使用粗体显示的文本前后各加两个”*”或者”_”。

  • Markdown 中 斜体 标记语法是:在需要使用斜体显示的文本前后各加一个”*”或者”_”。

不同的编辑器处理 “*” 和 “_” 时可能存在细节上的差异。如:使用某些编辑器时,如果你的 * 和 _ 两边有空白的话,它们就只会被当成普通的符号,有些编辑器则不会。这些细节,需要根据自己使用的编辑器来调整。

实例如下:

这里写图片描述

另外一款 Markdown 编辑器中粗体和斜体的语法略有区别,具体如下图所示。

这里写图片描述

3.1.3 分割线

* 【学习目标】 *

  • 掌握 Markdown 的分隔线的语法

* 【任务要点】 *

Markdown 的分割线语法是:在一行中使用三个以上的 *(信号)、-(减号)或者_(底线)来实现。该行内不能有其他符号或文字,星号和减号中间允许插入空格。需要注意的是底线的方式不同的编辑器可能不同。示例如下:

这里写图片描述

Haroopad中实验底线方式的分割线未成功,示例如下:

这里写图片描述

3.1.4 删除线

* 【学习目标】 *

  • 掌握 Markdown 的删除线的语法

* 【任务要点】 *
Markdown 删除线的语法是,使用”~~”把要标记为删除线的文本括起来。
需要注意的是:删除线不是所有的编辑器都支持,需要视使用的编辑器情况而定。

这里写图片描述

这里写图片描述

3.1.5 列表

* 【学习目标】 *

  • 掌握 Markdown 的列表语法

* 【任务内容】 *

* 【任务要点】 *
Markdown 的列表包括无序列表和有序列表。

  • 无序列表使用星号(*),加号(+),或者减号(-)标记
  • 有序列表使用一个数字紧跟着一个英文句点(.)标记

注:

  • 列表项标记(星号、加号、或者减号)一般放到行首,也可以缩进,缩进最多可以缩进3个空格。
  • 列表项标记(星号、加号、或者减号)后面必须跟至少一个空格或者制表符。

无序列表案例如下:

这里写图片描述

有序列表案例如下:

这里写图片描述

有序列表前面的数字其实不影响列表项的序号,建议至少第一项从1开始。主要考虑未来Markdown 可能会支持有序列表的start属性。
如果不想让 Markdown 对有序列表排序,则可以在英文句点前使用 \ 转义,如:

  1\. 列表1
  2\. 列表2
  4\. 列表4

以上列表的效果为:

1. 列表1
2. 列表2
4. 列表4

列表可以嵌套,嵌套列表语法是:下一级要缩进4个空格或者1个制表符。示例如下:

这里写图片描述

列表项中可以使用“代码区块”和“区块引用”等,后面内容中可以看到“代码区块”和“区块引用”的语法详细说明,这里仅给出相关示例。
如果列表项中需要放入区块引用,则区块引用标记(>)需要缩进(不同的工具会有差异,有的工具不缩进也可以)。如:

这里写图片描述

这里写图片描述

列表项中使用“代码区块”时,代码区块需要缩进两次,即缩进8个空格或者2个制表符。

这里写图片描述

这里写图片描述

3.1.6 代码区块

* 【学习目标】 *

  • 掌握 Markdown 的代码区块的语法

* 【任务要点】 *

Markdown 的代码区块语法是:
  • 通过缩进4个空格或者1个制表符标记代码区块

  • 有些工具支持通过使用三个以上的 ` 标记代码区块的开始和结束

    使用“`标记区块可以指定改代码区块使用哪种语言进行语法高亮显示。
    :这种方法不同的工具会有差异。

示例如下:

这里写图片描述

行内代码区块:

Markdown支持行内代码区块:使用 括起来的内容会被当做行内代码区块。如:

这里写图片描述

这里写图片描述

注:

代码区块内,一般的 Markdown 语法标记将失效。

3.1.7 使用超链接

* 【任务目标】 *

  • 掌握 Markdown 文档中使用超链接的方法

* 【任务要点】 *
Markdown 支持行内和参考两种形式的,超链接语法,不论哪种方式,超链接文字都是使用[方括号]进行标记。

行内链接语法
[文字描述](网址 "标题")

- 标题 是可选的,如果有标题,当鼠标文字描述上面时,系统会显示标题的内容。
- 如果链接到相同主机上的资源,可以使用路径。

示例如下:

这里写图片描述

这里写图片描述

参考形式链接语法

参考形式的超链接语法分为两部分:

[文字描述][id]

[id]:  网址 "标题"

- 语法中文字描述部分的作用和行内形式相同,[id]指定了参考哪个链接。
- 可以在文件的任意地方,使用[id]:网址 "标题"的格式给出具体的链接内容。
- 网址标题间要有空格。
- id 可以是字母、数字、空格和标点符号,不区分大小写。
- 网址并不显示,只在产生链接的时候起作用。
- 网址可以使用<>括起来。
- 标题是可选的,标题可以使用单引号,也可以使用双引号括起来。
- 标题可以放到下一行,可以缩进。

示例如下:

这里写图片描述

这里写图片描述

Markdown 支持隐式超链接方式,在标题和ID相同的情况下,可以使用隐式链接,使用时只需将id省略(保留空的[])即可。

这里写图片描述

自动链接

Markdown 支持自动链接,要使用自己链接是需要将网址使用<>括起来即可。如:

这里写图片描述

3.1.8 使用图片

* 【学习目标】 *

  • 掌握 Markdown 文档中使用图片的方法

* 【任务要点】 *

Markdown 使用图片的语法和超链接的语法相似,同样也有行内和参考两种格式。

行内格式语法
![文本](路径/图片文件名  "标题")

这里写图片描述

参考格式语法
![文本][id]

[id]: 路径/图片文件名  "标题"

这里写图片描述

注:

如果需要制定图片大小等,则需要使用html的标记。

3.1.9 区块引用

* 【任务目标】 *

掌握 Markdown 的区块引用方法

* 【任务要点】 *

Markdown 使用 > 符号来标记区块引用,相对比较灵活,可以在每行开始加入 > 标记区块,也可以在每段的第一行的开始使用 > 标记区块引用。如:

这里写图片描述

区块引用可以嵌套,嵌套只需要根据逐级加 > 标记即可,如:

这里写图片描述

区块引用中也可以使用其他的 Markdown 语法标记,包括标题、列表、代码区块等。

这里写图片描述

3.1.10 转义字符

* 【学习目标】 *

  • 掌握 Markdown 的转义字符的使用方法

* 【任务摘要】 *
Markdown 使用反斜杠 \ 来表示转义字符,以下符号需要使用转义字符来输入:

\   反斜线
`   反引号
*   星号
_   下划线
{}  花括号
[]  方括号
()  圆括号
#   井号
+   加号
-   减号
.   句点(英文)
!   叹号
3.1.11 表格

* 【学习目标】 *

  • 掌握 Markdown 中使用表格的方法

* 【任务摘要】 *
Markdown 表格使用 | 分隔列,使用 - 分隔行(第一行下面)每列中使用 : 表示居左、居中、居右。示例如下:

这里写图片描述

这里写图片描述

3.1.12 单行长文字

* 【学习目标】 *

  • 掌握 Markdown 中使用单行长文字的方法

* 【任务摘要】 *
Markdown 要使用单行长文字,在要单行显示的长文字前加入4个空格或者1个制表符。
注:

这个语法和代码区块的语法相同,输入单行文字中间是不要换行。
是否支持该语法,要视编辑器支持情况而定。

示例如下:

这里写图片描述

这里写图片描述

  • 8
    点赞
  • 23
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值