写给女朋友的计算机教程系列。
这篇文章主要针对非计算机方向从业者。
一种新的工具从投入使用,到被人们所接受,不是没有原因的。工具,帮助人们简化复杂的任务,解放劳动力,Markdown
也是如此。
如果你简单google
一下,你会发现网络中已经充斥着大量的Markdown
语法教程。
所以这篇文章的主要目的并不是教会你如何使用Markdown
,而是想试图让你知道,为什么不是计算机专业的同学,也有了解它的意义。
所以我们面对着什么样的问题?
- 首先,正如你看到的这篇文章一样,我们写作的内容越来越多地在互联网上以网页的形式分享(而不是其他方式)。
- 另一点,我们为了更良好的阅读体验,往往希望赋予文章更多的层次结构与标记,比如段落、标题、粗体、斜体、链接、图片、列表甚至表格。
OK,幸运的是,在 HTML/CSS
和浏览器的帮助下,我们能够完成这两点。
简单的来说,你看到的一段文字:
我是标题
我是正文文字
- 我是列表,斜体
- 我是列表的第二项,
删除线
在浏览器接收到服务器的数据中,看起来是这样:
<html>
<head>
...
</head>
<body>
<h3> 我是标题 </h3>
<p>我是正文文字</p>
<ul>
<li>我是列表,<em>斜体<em></li>
<li>我是列表的第二项,<s>删除线</s></li>
</ul>
</body>
</html>
但是谁愿意直接写这样的代码呢!!??
所以回到问题本质,我们期待一种书写方式:
- 它比纯文本的书写方式能够提供更多的信息
- 它不能像代码那样及其抽象,要对普通用户也具有可读性
为了满足以上要求,一大批标记性语言诞生了。而Markdown
就是其中的佼佼者。
想要达到例子中的效果,你只需要书写:
### 我是标题
我是正文文字
- 我是列表,_斜体_
- 我是列表的第二项,~~删除线~~
没错,是不是看上去好多了。
什么是 Markdown
如果你使用中文搜索,可能大概率会遇到介绍 Markdown 语法的文章,但是这不是这篇文章的重点。
Markdown is a lightweight markup language with plain text formatting syntax.
引自 wikipedia
标记语言
我们注意一个关键词 markup
。如果你知道 HTML
的话,就知道这两者中都含有 Markup
——即 标记
的含义。也就是说,不管是 Markdown
,甚至是 HTML
,他们都与我们接触的 C语言
、 Python
、 Java
等完全不同。如果说后者是用来操纵数据的语言,那么前者更像是用来描述数据的语言。标记
二字的精髓也在于此。
所以你也能够明白为什么 Markdown
对你是有价值的——因为尽管不是人人都需要会操纵数据,但是人们需要更好地描述信息。(正如这篇文章一样,如果都是白底黑字,岂不痛哉?)
属于文本文件而不是二进制文件
请不要忽视另一个关键字plain text
。
plain text 意味着 Markdown 是可直接阅读的,能不局限一种特定的文件格式。
对比 Word 文档,如果没有相应的工具,就很难解析阅读其中的内容。
如何使用 Markdown
看到这里,我假定你已经大致了解了Markdown
,但是也许你会有疑问,我怎样才能使用它呢。换句话说,在什么场合下、用什么工具,才能用好 Markdown
呢。
使用场景
以下是一些恰当的使用场景
- 计算机专业中 文档、教程的写作
- 博客文章
- 需求丰富的个人笔记
- 电子书
- 笔记
- 日记
- 需要团队合作进行版本控制的场景(当然各种云 doc 也是推荐的)
以下是一些不太恰当的使用场景(欢迎补充)
- 学术论文 (请使用 Word 或者 LaTeX)
- 带有大量手工绘图需求的场景
方言与普通话
Markdown 设计于 2004 年。所以随着你的使用,你逐渐会发现:Markdown 似乎缺少一些关键的功能(比如图像的标题)。
没错,你的直觉是正确的,只是因为设计时间太早,使得 Markdown 并不是一个设计精巧的文本结构。(或者反过来说, 为了保持简单,设计的时候不得不删减了很多功能)
所以目前人们为了增强它的功能,提出了很多“方言”。比如:
- Github Flavored Markdown
- Typora (应该也有一些修改)
包括其他的系统可以通过模板编译的方式提供额外的语法。(请忽略)
这里想表达的意思是:如果想要保证 Markdown 完美的可移植性,请注意使用的语法是否具有通用性。
写作工具
- VSCode
- Typora
- 在线写作