这应该是全网比较好的 Markdown 入门教程了吧(确信)。
使用 Markdown 也有七八年了,一直没有写相关的教程,现在就来系统地写一写。
前言
在介绍什么是 Markdown 之前,先说说没有 Markdown 的情况是怎么样的。
最开始,文字是没有格式的,只是单独的纯文本。
什么意思呢?就比如你使用记事本来记录文字,那么保存后的文件就是 txt,它是没有格式的,这些文字不能加粗,不能修改颜色,不能使用斜体、删除线、下划线....
而后来出现的 Word 文档,就支持丰富的格式,也叫富文本,不仅支持上述所说的情况,还能添加标题、超链接、水印、图片...
Word 功能强大,选择也足够自由,但有利就会有弊,换个角度,如果你缺乏足够的经验,那也只能望洋兴叹:
- 一级标题用什么字号什么字体?
- 二级标题用什么字号什么字体?
- 正文用什么字号什么字体?
- 正文与前后标题的边距怎么设定?
- 行间距,字间距,段落间距怎么设定?
- …
想要排版一篇看起来有模有样的文章,确实不是一件容易的事,不仅需要掌握一些排版知识,还需要培养排版审美。要是有强迫症那就更惨了,不停地去调整,去比对,却总是不尽人意!
那有没有这样一个模版,直接推荐一个美观的样式,让我不用关心各类字体、字号、间距等等的问题,而是可以直接拿来套用?这样我们就可以专注于写作本身,而不是将时间花在排版上!
试试 Markdown 吧,它就是介于纯文本和富文本之间的语言,它支持一部分格式,但同时又很简单。
Markdown 是什么?
来自维基百科:Markdown 是一种轻量级标记语言,它允许人们使用易读易写的纯文本格式编写文档,然后转换成格式丰富的 HTML 页面。
请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单,我们直接看例子。
快速入门
第一个语法:标题
在 Markdown 中,最常用的可能就是标题了。举例:
# 这是一级标题
## 这是二级标题
### 这是三级标题
#### 这是四级标题
##### 这是五级标题
###### 这是六级标题
- 在文本面前添加 1 个
#
,代表一级标题。 - 在文本面前添加 2 个
#
,代表二级标题。 - 在文本面前添加 3 个
#
,代表三级标题。 - ....
这个标题有什么作用呢?就和平时我们看书时遇到的“第一章”,“1.1 ...” 差不多,可以将内容结构化,有层次。
使用在线 Markdown 编辑器
为了方便,我们可以先使用 Markdown 在线编辑器来查看效果,比如:markdown-editor.org,随便输入一些标题和文字试试:
左侧是使用 Markdown 编写的纯文本,右侧是渲染后的结果,可以看到标题一级标题比二级标题大,更醒目,而正文则明显是普通的字体,这就是渲染后的、带有格式的结果。
除了标题,还有很多其他语法,例如给字体加粗,斜体,加下划线,添加代码块,图片等等,这些都是纯文本做不到的,而 Markdown 可以。
网上有很多在线的 Markdown 编辑器,使用搜索引擎一搜一大堆(如果失效了换一个即可):
- 简书:https://www.jianshu.com/writer
- 博客园:https://www.cnblogs.com
- tool.lu/markdown
- markdown.devtool.tech/app
- milkdown.dev/playground
- zybuluo.com/mdeditor
- ...
Markdown 的基本原理
到了这里,我们可以简单介绍下 Markdown 的原理了:
- Markdown 的存储方式以及编写方式,跟纯文本是一样的。
- 但是 Markdown 可以通过编辑器渲染出一个带有格式的页面。
例如,在刚刚演示的图中,左半部分就是纯文本,右半部分就是渲染后的、带有格式的结果。
其实,我们用 Markdown 写作的时候,所有内容都是纯文本,没有样式;在插入若干 Markdown 标记后,被标记的内容就有了样式,会在最终渲染时呈现。
例如,在你所写的文字中,你希望某一行文字呈现一级标题的样式,那就给这行文字加个一级标题的标记。某几个词语需要加粗,那就给这几个词语加个粗体标记。
使用本地 Markdown 编辑器
大部分情况下,我们都是本地编写文档,大部分情况下这样更方便,毕竟可以不联网、可以保存,方便管理多份文档。
本地的 Markdown 编辑器,工作流程和在线编辑器是一样的:md 文件 → 解析器 → 带有格式的页面
在网上可以搜到很多的 Markdown 编辑器,我用的 Typora,官网 typora.io,中文网:typoraio.cn。
注意:
- Typora 是跨平台的,支持 Windows / Mac / Linux
- 这是收费软件,可以试用 15 天。此外该软件以前是不收费的(低于 1.0 版本),可以去官网发布页面找旧版本使用。
- Typora 支持“所见即所得”,也就是不像其他编辑器一样左边纯文本,右边渲染后的文本,而是你码字后直接渲染
去官网下载并安装好后,我们开始实践。新建一个 txt 文件,输入如下内容:
# 第 1 章 电控开关——计算机世界的基石
## 1.1 十余年的疑惑
1 + 1 = 2,天经地义,虽然也有人想去证明为什么1+1就等于2,但是我等是无法参透了。谁能告诉我CPU是怎么算1+1=2的?2+2能算么?这个问题,冬瓜哥从10年前就开始想搞清楚,当时见人就问,可是向到过的人没一个能说清楚,得到最接近的一句回答是“CPU内部就是个加法器”。而这句话,我深理心中十余年,也零零散散地探索了十余年,直到近几年,才慢慢搞清楚一点皮毛,不敢独享,愿与大家分享之。
## 1.2 从 1 + 1 = 2 开始
CPU是怎么算1+1=2的,这的确值得思考和深究。CPU天生是不可能知道1+1=2的,一定是人类告诉它,1+1必须等于2,或者0+1必须等于1。
....
# 第 2 章 解脱人手——程序控制计算机
我们修改该 txt 文件的后缀为 md,表明这是一个 Markdown 文件。
然后我们在该文件右键,选择打开方式为 Typora :
效果:
左侧是目录,右侧是编辑器,可以直接码字。
入门案例就到这了,其实非常简单。平时我们都是打开记事本或 Word 来码字,而用 Markdown 也是一样的,只不过换成了打开 Markdown 编辑器。
使用 Markdown 的优点
接下来讲讲优点:
- 专注你的文字内容而不是排版样式,安心写作。
- 轻松的导出 HTML、PDF 和本身的 .md 文件。
- 纯文本内容,兼容所有的文本编辑器与字处理软件。
- 随时修改你的文章版本,不必像字处理软件生成若干文件版本导致混乱。
- 可读、直观、学习成本低。
应不应该使用 Markdown?
简单介绍了下常见的语法以及编辑器,那么我们到底是否应该使用 Markdown 呢?
首先,Markdown 是一门很简单的语言,上手难度低,试用一下花不了多少时间。
此外,目前很多网站都支持 Markdown(GitHub、简书、知乎等),很多笔记软件也支持用 Markdown 做笔记(印象笔记,Notion,语雀,wolai,思源笔记等)。如果你学会了 Markdown,不用担心无用武之地。
如果你已经习惯了 txt 或 Word 来码字,并且试用后觉得 Markdown 也不过如此,那么也没必要专门为了用而用。
Markdown 的诞生
Markdown 是由 Swartz 和 Gruber 共同开发,并在 2004 年 3 月 19 日推出初代 Markdown。
据说格鲁伯厌倦了使用标准 HTML 格式化网页内容的复杂性,因此提出了 Markdown。
“Markdown 格式语法的首要设计目标是使其尽可能具有可读性。我们的想法是,一个 markdown 格式的文档应该是可发布的,就像纯文本一样,而不是看起来像是被标记了标签或者格式说明。”- 约翰 · 格鲁伯
Markdown 为什么会流行?
这里引用一篇知乎回答。
Markdown 为什么会流行? - 灵狐技术的回答 - 知乎
大家一开始以为,文档处理不过就是写写字,然后 txt(文本)诞生了。
后来文秘们发现,文档并不只是文字,还要各种排版,然后增强版的 rtf(富文本)诞生了。
再后来文秘们发现,文档并不只是排版,还包括页眉页脚,数学公式等排版,然后威力增强版的 doc(文档)诞生了。
再后来网络开发人员发现,上面的文档在网页上直接呈现在网络传输中太笨重了,大家并不需要这么丰富的排版功能,然后精简版的 html(超文本标记语言)诞生了。
再后来开发人员发现,其实我在写开发文档的时候,只是想简单写个纪要,只需要最简单的几个标识而已,html 还是太笨重了,然后 markdown(轻量级标记语言)诞生了。
上面各种格式都一直共存,大家只是通过实践发现,原来我们的编辑需求可以细分这么多的场景。
编辑于 2022-04-13 17:27
最后
Markdown 在 20 年前就有了,一开始还很小众,不过后来以其独到的优势火了起来,很多主流的博客平台、笔记软件都支持 Markdown。它尤其深受技术人员的喜爱:可以用来编写说明文档,写技术博客,格式转换方便,还能进行版本控制(例如 Git)。
接下来几篇博客,将会介绍 Markdown 的常见语法、流行的 Markdown 编辑器以及其他用法。
延伸阅读
3 Reasons Why Everyone Needs to Learn Markdown,中文:为什么我们要学习 Markdown 的三个理由_博客园
标签:教程,Markdown,全网,标题,编辑器,文档,格式,文本 From: https://www.cnblogs.com/PeterJXL/p/18327985