Markdown-入门介绍(一)
本人最近深感知识不足,之前所学由于没有系统整理,特别容易忘记,听到某些词汇只知道见过,但是说不出所以然,故决定将自己的学习历程记录下来,给自己更多的时间来整理知识,加深印象,方便转为己用!同时分享给感兴趣的读者,一举两得。
既然决定在这方面做些事情,于是选择从可以帮助大家方便记录知识的工具”Markdown“开始学起,阅读此篇内容应该能够帮助许多人了解Markdown 是什么、用来干什么、以及如何使用。
概述
宗旨
Markdown 的目标是实现「易读易写」。
可读性,无论如何,都是最重要的。一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。Markdown语法受到一些既有 text-to-HTML 格式的影响,包括Setext、atx、Textile、reStructuredText、Grutatext和EtText,而最大灵感来源其实是纯文本电子邮件的格式。
总之, Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像强调。Markdown 的列表看起来,嗯,就是列表。Markdown 的区块引用看起来就真的像是引用一段文字,就像你曾在电子邮件中见过的那样。
兼容HTML
Markdown 语法的目标是:成为一种适用于网络的书写语言。
Markdown 不是想要取代 HTML,甚至也没有要和它相近,它的语法种类很少,只对应 HTML 标记的一小部分。Markdown的构想不是要使得 HTML 文档更容易书写。Markdown 的理念是,能让文档更容易读、写和随意改。HTML是一种发布的格式,Markdown 是一种书写的格式。就这样,Markdown 的格式语法只涵盖纯文本可以涵盖的范围。
特殊字符自动转换
Markdown 让你可以自然地书写字符,需要转换的由它来处理好了。如果你使用的&字符是 HTML 字符实体的一部分,它会保留原状,否则它会被转换成&。
所以你如果要在文档中插入一个版权符号©,你可以这样写:
©
Markdown 会保留它不动。而若你写:
AT&T
Markdown 就会将它转为:
AT&T
区块元素
段落和换行
一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。
「由一个或多个连续的文本行组成」这句话其实暗示了 Markdown 允许段落内的强迫换行(插入换行符),这个特性和其他大部分的text-to-HTML 格式不一样(包括 Movable Type 的「Convert Line Breaks」选项),其它的格式会把每个换行符都转成
/>标签。
如果你确实想要依赖Markdown 来插入
标签的话,在插入处先按入两个以上的空格然后回车。
的确,需要多费点事(多加空格)来产生
,但是简单地「每个换行都转换为
/>」的方法在 Markdown 中并不适合, Markdown 中 email 式的区块引用和多段落的列表在使用换行来排版的时候,不但更好用,还更方便阅读。
标题
Markdown 支持两种标题的语法,类Setext和类atx形式。
类 Setext 形式是用底线的形式,利用=(最高阶标题)和-(第二阶标题),例如:
This is an H1
=============
This is an H2
-------------
任何数量的=和-都可以有效果。
类 Atx 形式则是在行首插入 1 到 6 个#,对应到标题 1 到 6阶,例如:
# 这是 H1
## 这是 H2
###### 这是 H6
你可以选择性地「闭合」类 atx 样式的标题,这纯粹只是美观用的,若是觉得这样看起来比较舒适,你就可以在行尾加上#,而行尾的#数量也不用和开头一样(行首的井字符数量决定标题的阶数):
# 这是 H1 #
## 这是 H2 ##
### 这是 H3 ######
区块引用 Blockquotes
Markdown 标记区块引用是使用类似 email 中用>的引用方式。如果你还熟悉在email 信件中的引言部分,你就知道怎么在 Markdown 文件中建立一个区块引用,那会看起来像是你自己先断好行,然后在每行的最前面加上>:
> This is a blockquote with two
paragraphs. Lorem ipsum dolor sit amet,
> consectetuer adipiscing elit. Aliquam hendrerit
mi posuere lectus.
> Vestibulum enim wisi, viverra nec, fringilla in,
laoreet vitae, risus.
>
> Donec sit amet nisl. Aliquam semper ipsum sit
amet velit. Suspendisse
> id sem consectetuer libero luctus adipiscing.
列表
Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或是减号作为列表标记:
* Red
* Green
* Blue
代码区块
和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown会用
和标签来把代码区块包起来。
要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,例如,下面的输入:
这是一个普通段落:
这是一个代码区块。
分隔线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
* * *
***
*****
- - -
---------------------------------------
区段元素
链接
Markdown 支持两种形式的链接语法:行内式和参考式两种形式。
不管是哪一种,链接文字都是用 [方括号] 来标记。
要建立一个行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的title 文字,只要在网址后面,用双引号把 title 文字包起来即可,例如:
This is [an example](http://example.com/
"Title") inline link.
[This link](http://example.net/) has no title
attribute.
强调
Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被*或_包围的字词会被转成用标签包围,用两个*或_包起来的话,则会被转成,例如:
*single asterisks*
_single underscores_
**double asterisks**
__double underscores__
代码
如果要标记一小段行内代码,你可以用反引号把它包起来(```),例如:
Use the `printf()` function.
图片
很明显地,要在纯文字应用中设计一个「自然」的语法来插入图片是有一定难度的。
Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式:行内式和参考式。
行内式的图片语法看起来像是:
![Alt text](/path/to/img.jpg)
![Alt text](/path/to/img.jpg "Optional
title")
其它
自动链接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来,Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
反斜杠
Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用标签),你可以在星号的前面加上反斜杠:
\*literal asterisks\*