Markdown 语法的超快速上手

Posted oberon-zjt0806

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了Markdown 语法的超快速上手相关的知识,希望对你有一定的参考价值。

Why markdown?

Markdown是一种可以使用普通文本编辑器编写的标记语言,通过简单的标记语法,它可以使普通文本内容具有一定的格式
Markdown具有一系列衍生版本,用于扩展Markdown的功能(如表格、脚注、内嵌html等等),这些功能原初的Markdown尚不具备,它们能让Markdown转换成更多的格式,例如LaTeX,Docbook。Markdown增强版中比较有名的有Markdown Extra、
MultiMarkdown、 Maruku等。这些衍生版本要么基于工具,如Pandoc;要么基于网站,如GitHub和Wikipedia,在语法上基本兼容,但在一些语法和渲染效果上有改动。
- Baidu Baike

上述内容告诉你,Markdown是一种标记语言,再粗暴一点说,就是排版用的,再再粗暴一点,就是如何让你看起来如同记事本一般平淡的文本能够变得花里胡哨。

偷偷告诉你:这篇文章就是用Markdown写的。

标记语言??我知道HTML啊,有什么区别么??

他俩啥关系

Markdown是基于HTML所开发的,与HTML不同的是,Markdown(以下简称MD)并不受W3C基金会管理,但本身也是开放的。
Markdown允许内嵌HTML代码(尽管不完全支持HTML标准下的所有标签,这是出于安全考虑,而且这也不是倡用的行为),而在网页显示的时候这些Markdown语法也会被转换成对应的HTML标记文本显示在你的面前。
但是现在的Markdown并不只限于可以转换为HTML,新的技术(Pandoc)标明他们实际上还可以转换成doc或者pdf之类的……

他俩谁好用

这不是一个可以很快下定论的东西,无所谓谁更好或者更糟,如果Markdown和HTML真能像这样一较高下的话恐怕另一个也就不复存在了不是。
他们两个的面向是不同的,HTML专注于一种通用的,能够在各个设备上在一定的文本协议(HTTP/HTTPS)下正确的进行显示,所以论强大的话,HTML可以支持更加花哨强大的功能,但是相对应的,使用起来就要繁琐一些,并且具备一个相当庞大的语法标准和一些协议性的说明。
而Markdown则是面向于快速标记的,而且对程序员非常友好(因为本身针对代码的排版做了相关的处理,可比HTML的<code>再配上一堆乱七八糟的CSS方便多了),因此广受IT行业的青睐,不仅如此,最近的Markdown甚至可以支持部分LATEX语法(当然主要用于写数学公式用,而另一方面用于HTML的MathML似乎没能推广起来的样子)

所以简单来说,Markdown比HTML用起来快,但HTML具有Markdown无法替代的功能。
Markdown 用起来有多快??看看下面这段话就知道了:

万维网联盟创建于1994年,是Web技术领域最具权威影响力的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南

Markdown:

*万维网联盟*创建于**1994**年,是Web技术领域**最具权威**和**影响力**的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南

HTML:

<p><i>万维网联盟</i>创建于<b>1994</b>年,是Web技术领域<b>最具权威</b>和<b>影响力</b>的国际中立性技术标准机构。到目前为止,W3C已发布了200多项影响深远的Web技术标准及实施指南<br /></p>

据上述内容统计,当输入一个HTML标签的时候,你需要按下若干次的Shift+,+Shift+.+←[+/]+标签键位,而在Markdown里至多只需要若干次的Shift+8而已,根据时间复杂度o(n)的分析和人体工学的相关……

How?

本人的资历尚浅,即便如此自己还是能希望通过自己绵薄的力量帮助大家快速上手,自己从大二开始经常使用Markdown记录笔记,因此用的还算方便和熟练。因此这里针对一些非常非常常用的功能

标题文本(是的,这个恰恰就是个标题文本)

标题文本一般用#开始,#的数量决定标题的等级,这和HTML里面的<h1><h6>多少有些类似,尽管Markdown的最终渲染结果取决于各服务器提供的CSS文件但一般来说,层级越高(##...## Title)的标题通常字会越小作为副标题使用。
比如,这段的标题实际上就是这么写的

## 标题文本

是的,根据井号的数量来看,这是个二级标题。
如没有特殊规定,一般标题最大支持到六级(正好对应HTML的<h6>
在有些Markdown系统下,#可以(甚至会要求)成对出现

## 标题文本 ##

但是博客园里的没做这种要求

标题属于行级格式,因此标题只能出现于一行的行首,而不允许在行的中间或结尾出现,而且当某一行被标注为标题的时候,整个一行的文字都会变成标题的格式。位于行中间的井号会被真的处理为#

位于分割线上方的文本会被自动处理为标题

粗体、斜体、粗斜体

影子

正是这样,Markdown提供了一种非常快速方式进行这种文字版式的替换,使用若干个成对的*完成:
一对*斜体*斜体*)(不知何种原因,博客园的MD编辑器似乎不支持斜体,自然,粗斜体也会同样变成粗体
两对*粗体**粗体**
我想又粗又斜怎么办,很简单,1+2=3(***粗斜***

不幸的是,Markdown语法里并未提供下划线,尽管如此可以通过内嵌HTML的<u>标签来实现。

引用

著名的作家鲁迅先生曾经在这里说了很多的东西,比如“我从来没说过这句话”……

引用在Markdown里由一个>开始,值得注意的是,引用是一个块级结构,这意味着引用不会对文段的一部分进行修饰,而是直接作用于一整个文段
如果想要让后文内容脱离引用,则在引用内容的最后一行与非引用内容的第一行之间加个回车比如:

鲁迅说过:……

鲁迅没说过……

用Markdown写出来就是:

> 鲁迅说过:……

鲁迅没说过……

但如果是

> 鲁迅说过:……
鲁迅没说过……

就会变成:

鲁迅说过:……
鲁迅没说过……

和标题类似,引用也可以通过增加>的数量进行嵌套引用:

鲁迅先生曾经说过

世界上本没有路,走的人多了,便成了路

引用内的文段一样可以加上其他的格式标注,比如:

鲁迅先生强调过:真的勇士猛士,敢于直面惨淡的人生,敢于正视淋漓的鲜血。

表格

0 VS 0
×
×
× ×

住手!!你们住手!!不要再下啦!!

Markdown提供了一个非常简单的关于表格的格式支持,尽管这原本并不存在于最初的Markdown语法集当中,Markdown对于表格功能上的支持是无法与HTML的<table>标签抗衡的,因为它支持最完整的表格,也只有这种格式:

表头1 表头2 表头3
左对齐的文本 居中的文本 右对齐的文本
左对齐 居中 右对齐
左对齐 居中 右对齐

只有表格的第一行可以作为表头使用,其他的项只能作为普通的元组使用,表格是向下排开的,所以想写横向表格的话也不是一个很好的选择,和引用类似,表格也是一个块级结构,而表格要求在其前后都要有一个回车,否则内容不被视为表格,表格的基本语法如下(这恐怕是Markdown里最麻烦的语法格式了):

上一段文本……

|表头1|表头2|表头3|
|:---|:---:|---:|
|左对齐的文本|居中的文本|右对齐的文本|
|左对齐|居中|右对齐|
|左对齐|居中|右对齐|

下一段文本

第一行作为表头使用表头的格式与表格其他项会略有不同,他的字更粗而且他所在的单元格与其他的单元格长得也略有不同。
第二行那个很像火星文的东西用于指定整列的对齐方式,横线的数量不限,冒号确定文本的对齐锚点位置,表示如下含义:

|:---|:---:|---:|
 左     中    右

并不一定非要指定成这个样子,也可以全是左的,也可以全是右的……总之是这样。
后面的行就是普通的表格项了,以|分割,不限于3列,可以更多,每列用|分割

以上是关于Markdown 语法的超快速上手的主要内容,如果未能解决你的问题,请参考以下文章

MarkDown 语法

程序员的文档方式:markdown快速上手

Markdown: Basics (快速入门)

Markdown语法

快速上手React:

Markdown 插入图片