一、标记语言

曾经,经常有人喜欢编排前端的段子,戏称就前端也算程序员?当然,前端工程师当然算是程序员,甚至在我这个做全栈和OS的看来,前端实在是太难了(大雾

然而,在古早时代,我们对前端的嘲讽并不是空穴来风。在互联网远古洪荒年代,JavaScript和CSS还没有诞生的时代,大家热衷于用HTML,也就是超文本标记语言,这时甚至还没有细分的专业前端程序员出现,大多数都是由后端客串写的前端。

而这个所谓的HTML,也就是目前最出名也是最出圈的一种标记语言,超文本标记语言。它以它的结构化清晰地展现了一个页面应该含有的内容和样式,完美符合当年对于标记语言的定义。

标记语言,即将文本以及文本相关的其他信息结合起来,展现出关于文档结构和数据处理细节的计算机文字编码。与文本相关的其他信息(包括例如文本的结构和表示信息等)与原来的文本结合在一起,但是使用标记进行标志。

而标记语言最初的诞生,则是用于出版行业,用于书籍排版所用,因此,后面引入计算机之后,大家一直对这叫语言又不是计算机语言的东西嗤之以鼻,甚至编排出一系列的段子,类似于两程序员见面,A问B你会什么语言,B说我会HTML,A转头就走云云。

说到底,标记语言,就是用标记(或者说是标签,记号,象征)来规定其中内容的排布方式的语言。

二、何为Markdown

那么,既然HTML既出名,又好用,为什么我们还有选择其他标记语言呢。事实上,经过了四十多年的发展,HTML的标准经过多次迭代,现在的HTML搭配JavaScript与CSS,已然成为了开发届的庞然大物,如今的HTML5更是前端与全栈面试的必考内容。

如此庞大的体系,带来的问题也显而易见,即极大程度的提高了学习的门槛,使得标记语言没有原有的灵活性与便利性,在这种情景下,一种新的技术应运而生,即是轻量级标记语言,脱胎于标记语言,而没有标记语言的繁琐与难度。

而作为轻量级标记语言的代表,Markdown又凭借其十分简单的语法与非常强大的拓展性和应用性,广泛地被应用在多个场景中。

回归初心,即标记语言诞生之初就是为了出版便利,Markdown也正如为当代网络内容生产者专门打造一般,绝大多数博客支持使用Markdown进行创作,就连WordPress这种原生编辑器做的极好的CMS也有着极高质量的Markdown编辑器插件。而支持Markdown语法进行评论与发表的网站更是不计其数,GitHub、简书等等不计其数,更有专业写作软件支持使用Markdown。

Markdown拓展名为.md,如果大家以后见到.md的文件便可知道其是Markdown格式,比如在GitHub上我们下载的源码中的README.md,就是使用Markdown所编写的自述文件。

三、如何优雅地写Markdown

那么,我们现在已经知道什么是标记语言什么是Markdown了,我们就需要挑选一件趁手的兵器,寻找一款适合自己的编辑器。

其实,作为标记语言,和HTML一样,只要是个编辑器就能打开Markdown文件进行查看和编辑。然而,毕竟是标记语言,其也是有一定语法的,如果用普通编辑器打开,并不会对标记进行渲染解析,因此有着一定的阅读障碍。

如果非要选择一个非专业编辑器的话,我的建议是Visual Studio Code。作为一名程序员,我想VS Code应该是每个Windows下开发者的必备编辑器。其以优秀的拓展性和兼容性著称,因此也算是个不错的Markdown编辑器,唯一的问题是不调的话默认显示效果太丑了,而且不支持Markdown编辑代码模式和显示模式的平滑过渡,就很难受。

1641399721498.png

Visual Studio Code打开Markdown的UI

如果论专业Markdown编辑器的话,我其实最喜欢的是Typora,用这么长时间,Typora确实是我用过最顺畅也是最好看的编辑器了。然而Typora刚刚结束测试,发布了正式版,虽然正式版的价格也并不贵,即14.99美元/89元人民币,然而其有使用设备限制,而我又有不止三台电脑,再加上我经常喜欢重装系统,这种类似订阅机制的买断制我有点难以接受。如果这方面没有顾虑的话我的建议还是首选Typora。

1641400038294.png

Typora的编辑器UI

除此之外,我也查了不少编辑器,也有好看的,但是性能不行,也有私有化部署的Web版的,但是用起来十分蹩脚。这里只列出两个我用过的,至于其他需要列位自行探索了。

1641400155075.png

Mark Text

1641400309456.png

Trilium

四、Markdown常用语法表

基本的已经介绍完了,接下来列举以下Markdown基本语法(由于本站已对HTML样式进行了重写因此不展示效果,同时由于本站不支持LaTeX,暂不提供LaTeX语法)

标题类
# H1标题
## H2标题
### H3标题
#### H4标题
##### H5标题
###### H6标题

文字类
**粗体**
*斜体*

无序表
* 无序列表元素1
* 无序列表元素2
+ 无序列表元素3
+ 无序列表元素4
- 无序列表元素5
- 无序列表元素6

有序表
1. 有序列表元素1
2. 有序列表元素2
3. 有序列表元素3

表格
|  表头1   | 表头2  |
|  ----  | ----  |
| 单元格1  | 单元格2 |
| 单元格3  | 单元格4 |

图片
![图片代替文字](图片链接)

链接
[链接显示文字](链接地址)

引用
> 引用的内容

代码
第一行是三个`
然后紧挨着要写代码块所包含的语言
然后换一行写代码
代码结束后另起一行再打三个`
(这里我实在没法展示出来了不然和我博客的编辑器冲突了)

分割线
***
---
___

公式
$$
此处写公式内容
$$

注释
<!-- 使用HTML注释 -->

注:Markdown与HTML语法兼容,可以直接写入HTML代码块

1641401650753.png

按照上面顺序展示在Typora中的效果

本篇内容为原创内容,采用CC BY-NC-SA 4.0协议许可
2022-01-06 00:21
UtopiaXC
于大连


尽管如此,世界依旧美丽