您的位置:首页 > 其它

初识 Markdown

2016-12-03 19:18 344 查看

简介

概述

自从接触Markdown编写博客,我就爱上了这个标记语言。原因是它完全是纯文本编写,并且多平台都支持,例如GitHub、CSDN、简书、知乎等,而且非常简单,极易上手。其性质完全与txt文本一样,只是后缀名是md而已。
Markdown
是一种用来写作的轻量级
「标记语言」
,它用简洁的语法代替排版,而不像一般我们用的字处理软件
Word
Pages
有大量的排版、字体设置。它使我们专心于码字,用
「标记」
语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。使用
Markdown
的优点:专注你的文字内容而不是排版样式。
轻松的导出 HTML、PDF 和本身的 .md 文件。
纯文本内容,兼容所有的文本编辑器与字处理软件。
可读,直观。适合所有人的写作语言
创始人
John Gruber
Markdown
语法说明:http://daringfireball.net/projects/markdown/syntax
Markdown
中文版语法说明:http://wowubuntu.com/markdown/

兼容 HTML

Markdown
兼容
HTML
,而不是取代
HTML
Markdown
的语法种类很少,只对应
HTML
标记的一小部分。
Markdown
的理念是,能让文档更容易读、写 和 随意改。
HTML
是一种发布的格式,
Markdown
是一种书写的格式。就这样,
Markdown
的格式语法只涵盖纯文本可以涵盖的范围。不在
Markdown
涵盖范围之内的标签,都可以直接在文档里面用
HTML
撰写。不需要额外标注这是
HTML
或是
Markdown
;只要直接加标签就可以了。要制约的只有一些
HTML 区块元素
– 比如
<div>、<table>、<pre>、<p>
等标签,必须在前后加上空行与其它内容区隔开,还要求它们的开始标签与结尾标签不能用制表符或空格来缩进
Markdown
的生成器有足够智能,不会在
HTML
区块标签外加上不必要的
<p>
标签。注意:在 HTML 区块标签 间的 Markdown 格式语法将不会被处理。 比如,你在
HTML
区块内使用
Markdown
样式的
*强调*
会没有效果。
HTML
区段(行内)标签
– 如
<span>、<cite>、<del>
可以在
Markdown
的段落、列表或是标题里随意使用。依照个人习惯,甚至可以不用
Markdown
格式,而直接采用
HTML
标签来格式化。举例说明:如果比较喜欢
HTML
<a>
<img>
标签,可以直接使用这些标签,而不用
Markdown
提供的链接或是图像标签语法。注意:和处在
HTML
区块标签间不同,
Markdown
语法在
HTML
区段标签间是有效的。

特殊字符自动转换

HTML
文件中,有两个字符需要特殊处理:
<
&
<
符号用于起始标签,
&
符号则用于标记
HTML
实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是
<
&
&
字符尤其让网络文档编写者受折磨,如果你要打
「AT&T」
,你必须要写成
「AT&T」
。而 网址中的
&
字符也要转换 ,转换后才能放到链接标签的
href
属性里。不用说也知道这很容易忽略,这也可能是
HTML
标准检验所检查到的错误中,数量最多的。
Markdown
让你可以自然地书写字符,需要转换的由它来处理好了。如果你使用的
&
字符是
HTML
字符实体的一部分,它会保留原状,否则它会被转换成
&
。类似的状况也会发生在
<
符号上,因为
Markdown
允许
兼容 HTML
,如果你是把 < 符号作为 HTML 标签的定界符使用,那 Markdown 也不会对它做任何转换不过需要注意的是,
code
范围内,不论是行内还是区块,
<
&
两个符号都一定会被转换成
HTML
实体,这项特性让你可以很容易地用
Markdown
HTML code
(和
HTML
相对而言,
HTML
语法中,你要把所有的
<
&
都转换为
HTML
实体,才能在
HTML
文件里面写出
HTML code
。)

Markdown 语法

Markdown
的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。注意:
Markdown
的语法中的符号如果前面或后面有内容的时候,需要有一个空格进行隔开。

区块元素

段落和换行

一个
Markdown
段落是由一个或多个连续的文本行组成,段落前后 需要保证有一个空行【空行的定义是显示上看起来像是空的,便会被视为空行】,并且段落不该用空格或制表符来缩进,我们可以插入
来实现缩进效果。除了添加空行来进行换行,我们也可以使用
Html
标签
<br/>
来进行换行。

标题

在行首插入 1 到 6 个
#
,对应到标题 1 到 6 阶,例如:
# 这是 H1
###### 这是 H6

区块引用 Blockquotes

每行的最前面加上
>
,区块引用可以嵌套(例如:引用内的引用),只要根据层次加上不同数量的
>
>引用
>>引用内的引用
效果如下:引用引用内的引用

列表

Markdown
支持有序列表和无序列表。无序列表
使用星号、加号或是减号作为列表标记
有序列表
则使用数字接着一个英文句点
注意:你在列表标记上使用的数字并不会影响输出的
HTML
结果,换句话说你的数字只是个标识,不是最终结果。不过建议第一个项目最好还是从
1.
开始,因为
Markdown
未来可能会支持有序列表的
start
属性。列表项目 可以包含多个段落,每个项目下的段落都必须缩进 4 个空格或是 1 个制表符:
1. This is a list item with two paragraphs. Lorem ipsum dolor
sit amet, consectetuer adipiscing elit.

Vestibulum enim wisi, viverra nec, fringilla in, laoreet
vitae, risus. Donec sit amet nisl.

2. Suspendisse id sem consectetuer libero luctus adipiscing.
如果你每行都有缩进,看起来会看好很多,当然,再次地,如果你很懒惰,
Markdown
也允许:
* This is a list item with two paragraphs.

This is the second paragraph in the list item. You're
only required to indent the first line.

* Another item in the same list.
如果要在列表项目内放进引用,那
>
就需要缩进:
* A list item with a blockquote:

> This is a blockquote
> inside a list item.
如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符:
* 一列表项包含一个列表区块:

<代码写在这>
当然,项目列表很可能会不小心产生,像是下面这样的写法:
1986. What a great season.
换句话说,也就是在行首出现数字-句点-空白,要避免这样的状况,你可以在句点前面加上反斜杠。
1986\. What a great season.

代码区块

要在
Markdown
中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,例如,下面的输入:
这是一个普通段落:

这是一个代码区块。
Markdown 会将其转换成:
<p>这是一个普通段落:</p>

<pre><code>这是一个代码区块。</code></pre>
一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。在代码区块里面,
&
<
>
会自动转成
HTML
实体,这样的方式让你非常容易使用
Markdown
插入范例用的
HTML
原始码,只需要复制贴上,再加上缩进就可以了,剩下的
Markdown
都会帮你处理不过我更喜欢也是经常使用的是如下方式下文所介绍的多个反引号的形式,这样可以指定代码的类型,可以对应进行高亮。

分隔线

你可以在一行中用 三个以上的星号、减号、底线 来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。

区段元素

链接

Markdown
支持两种形式的链接语法: 行内式参考式 两种形式。行内式:
[链接文字](网址链接 "链接的 title 文字")
示例: [百度](http://www.baidu.com "鼠标悬浮提示")
注意:链接的
title
文字可以省略。参考式:
[链接文字][自定义的此链接ID]

接着,在文件的任意处,你可以把这个标记的链接内容定义出来:
示例:
[百度][id_baidu]
注意:链接网址也可以用尖括号包起来。
你也可以把 title 属性放到下一行,也可以加一些缩进,若网址太长的话,这样会比较好看:
链接辨别标签【自定义链接ID】可以有字母、数字、空白和标点符号,但是并不区分大小写,因此下面两个链接是一样的:
[link text][a]
[link text][A]
隐式链接标记功能 是参考式的一种缩略形式,也就是链接辨别标签【自定义链接ID】为空白的情况,这种情形下,链接标记会视为等同于链接文字。示例:
[Google][]
注:链接的定义可以放在文件中的任何一个地方,我比较偏好直接放在链接出现段落的后面,你可以根据自己喜好而定。参考式的链接其实重点不在于它比较好写,而是它比较好读,使用
Markdown
的参考式链接,可以让文件更像是浏览器最后产生的结果,让你可以把一些标记相关的元数据移到段落文字之外,你就可以增加链接而不让文章的阅读感觉被打断。

强调

Markdown 使用星号(
*
)和底线(
_
)作为标记强调字词的符号,被
*
_
包围的字词会被转成用
<em>
标签包围,用两个
*
_
包起来的话,则会被转成
<strong>
,例如:
*single asterisks*_single underscores_**double asterisks**__double underscores__
会转成:single asterisks
single underscores
double asterisks
double underscores
你可以随便用你喜欢的样式,唯一的限制是,你用什么符号开启标签,就要用什么符号结束强调也可以直接插在文字中间,但是如果你的
*
_
两边都有空白的话,它们就只会被当成普通的符号。如果要在文字前后直接插入普通的星号或底线,你可以用反斜线将其进行转义,或者在其左右都添加一个空白。

代码

如果要标记一小段行内代码,你可以用反引号把它包起来(`),如果要在代码区段内插入反引号,你可以用多个反引号来开启和结束代码区段。注:在代码区段内,
&
尖括号
会被 自动 地转成
HTML
实体,这使得插入
HTML
原始码变得很容易。

图片

图片的形式完全与上面的 链接 类同,不同点是在 链接 的前面添加一个感叹号。示例:
![获取图片失败显示文字](图片URL "Optional title")或者:![获取图片失败显示文字][id]
注:到目前为止,
Markdown
还没有办法指定图片的宽高,如果你需要的话,你可以使用普通的
<img>
标签。

其它

自动链接

Markdown
支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要使用尖括号包起来,
Markdown
就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
<http://example.com/>
Markdown 会转为:
<a href="http://example.com/">http://example.com/</a>
邮址的自动链接也很类似,只是
Markdown
会先做一个编码转换的过程,把文字字符转成 16 进位码的
HTML
实体,这样的格式可以糊弄一些不好的邮址收集机器人,例如:
<address@example.com>
Markdown 会转成:
<a href="mailto:addre
ss@example.co
m">address@exa
mple.com</a>
在浏览器里面,这段字串(其实是
<a href="mailto:address@example.com">address@example.com</a>
)会变成一个可以点击的
「address@example.com」
链接。这种作法虽然可以糊弄不少的机器人,但并不能全部挡下来,不过总比什么都不做好些。不管怎样,公开你的信箱终究会引来广告信件的。

反斜杠

Markdown
可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用
<em>
标签),你可以在星号的前面加上反斜杠进行转义:
\*literal asterisks\*
Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:
\ 反斜线
` 反引号
* 星号
_ 底线
{} 花括号
[] 方括号
() 括弧
# 井字号
+ 加号
- 减号
. 英文句点
! 惊叹号

表格

Tables | Are | Cool
--------------|---------------|------
col 3 is | right-aligned | $1600
col 2 is | centered | $12
zebra stripes | are neat | $1
会形成如下表格
TablesAreCool
col 3 isright-aligned$1600
col 2 iscentered$12
zebra stripesare neat$1
注意:标题下的
-
是没有数量限制的。在我写过的博客中有两篇博客是对资源的整理,可能对大家都有帮助,大家有兴趣的话可以看看!!资源大放送 - 图书与视频教程!
常用软件 — 整理 博客编号:20180131104634​
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: