写给大家的计算机知识——为什么要用Markdown

写给女朋友的计算机教程系列。

这篇文章主要针对非计算机方向从业者。

一种新的工具从投入使用,到被人们所接受,不是没有原因的。工具,帮助人们简化复杂的任务,解放劳动力,Markdown也是如此。

如果你简单google一下,你会发现网络中已经充斥着大量的Markdown语法教程。 所以这篇文章的主要目的并不是教会你如何使用Markdown,而是想试图让你知道,为什么不是计算机专业的同学,也有了解它的意义。

所以我们面对着什么样的问题?

  1. 首先,正如你看到的这篇文章一样,我们写作的内容越来越多地在互联网上以网页的形式分享(而不是其他方式)。
  2. 另一点,我们为了更良好的阅读体验,往往希望赋予文章更多的层次结构与标记,比如段落、标题、粗体、斜体、链接、图片、列表甚至表格。

OK,幸运的是,在 HTML/CSS 和浏览器的帮助下,我们能够完成这两点。

简单的来说,你看到的一段文字:


我是标题

我是正文文字

  • 我是列表,斜体
  • 我是列表的第二项,删除线

在浏览器接收到服务器的数据中,看起来是这样:

<html>
    <head>
    ...
    </head>
    <body>
        <h3> 我是标题 </h3>

        <p>我是正文文字</p>

        <ul>
            <li>我是列表,<em>斜体<em></li>
            <li>我是列表的第二项,<s>删除线</s></li>
        </ul>
    </body>
</html>

但是谁愿意直接写这样的代码呢!!??

所以回到问题本质,我们期待一种书写方式:

  1. 它比纯文本的书写方式能够提供更多的信息
  2. 它不能像代码那样及其抽象,要对普通用户也具有可读性

为了满足以上要求,一大批标记性语言诞生了。而Markdown就是其中的佼佼者。

想要达到例子中的效果,你只需要书写:

### 我是标题

我是正文文字

- 我是列表,_斜体_
- 我是列表的第二项,~~删除线~~

没错,是不是看上去好多了。

什么是 Markdown

如果你使用中文搜索,可能大概率会遇到介绍 Markdown 语法的文章,但是这不是这篇文章的重点。

Markdown is a lightweight markup language with plain text formatting syntax.

引自 wikipedia

标记语言

我们注意一个关键词 markup。如果你知道 HTML 的话,就知道这两者中都含有 Markup ——即 标记 的含义。也就是说,不管是 Markdown ,甚至是 HTML ,他们都与我们接触的 C语言PythonJava等完全不同。如果说后者是用来操纵数据的语言,那么前者更像是用来描述数据的语言。标记 二字的精髓也在于此。

所以你也能够明白为什么 Markdown 对你是有价值的——因为尽管不是人人都需要会操纵数据,但是人们需要更好地描述信息。(正如这篇文章一样,如果都是白底黑字,岂不痛哉?)

属于文本文件而不是二进制文件

请不要忽视另一个关键字plain text

plain text 意味着 Markdown 是可直接阅读的,能不局限一种特定的文件格式。

对比 Word 文档,如果没有相应的工具,就很难解析阅读其中的内容。

如何使用 Markdown

看到这里,我假定你已经大致了解了Markdown,但是也许你会有疑问,我怎样才能使用它呢。换句话说,在什么场合下、用什么工具,才能用好 Markdown 呢。

使用场景

以下是一些恰当的使用场景

  • 计算机专业中 文档、教程的写作
  • 博客文章
  • 需求丰富的个人笔记
  • 电子书
  • 笔记
  • 日记
  • 需要团队合作进行版本控制的场景(当然各种云 doc 也是推荐的)

以下是一些不太恰当的使用场景(欢迎补充)

  • 学术论文 (请使用 Word 或者 LaTeX)
  • 带有大量手工绘图需求的场景

方言与普通话

Markdown 设计于 2004 年。所以随着你的使用,你逐渐会发现:Markdown 似乎缺少一些关键的功能(比如图像的标题)。

没错,你的直觉是正确的,只是因为设计时间太早,使得 Markdown 并不是一个设计精巧的文本结构。(或者反过来说, 为了保持简单,设计的时候不得不删减了很多功能)

所以目前人们为了增强它的功能,提出了很多“方言”。比如:

包括其他的系统可以通过模板编译的方式提供额外的语法。(请忽略)

这里想表达的意思是:如果想要保证 Markdown 完美的可移植性,请注意使用的语法是否具有通用性

写作工具

  • VSCode
  • Typora
  • 在线写作

参考文献