MarkDown使用总结
前言:写CSDN博客的时候有一个切换到MarkDown编辑器这一模式,但是我不常用。不过促使我深入了解MarkDown的原因是编写GitHub上的README.md文件,.md后缀其实就是MarkDown的缩写,因此在这里系统的总结一下。
Markdown 官方文档:
创始人 John Gruber 的 Markdown 语法说明:http://daringfireball.net/projects/markdown/syntax
Markdown 中文版语法说明:http://wowubuntu.com/markdown/
一、简介
Markdown 是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。
Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件 Word 或 Pages 有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。
目前来看,支持 Markdown 语法的编辑器有很多,包括很多网站(例如简书)也支持了 Markdown 的文字录入。Markdown 从写作到完成,导出格式随心所欲,你可以导出 HTML 格式的文件用来网站发布,也可以十分方便的导出 PDF 格式,这种格式写出的简历更能得到 HR 的好感。甚至可以利用 CloudApp 这种云服务工具直接上传至网页用来分享你的文章,全球最大的轻博客平台 Tumblr,也支持使用 Mou 这类 Markdown 工具进行编辑并直接上传。
使用 Markdown 的优点:
- 专注你的文字内容而不是排版样式。
- 轻松的导出 HTML、PDF 和本身的 .md 文件。
- 纯文本内容,兼容所有的文本编辑器与字处理软件。
- 可读,直观。适合所有人的写作语言
可以使用MarkDown的工具很多,网上自己可以搜到。在这里推荐一下Windows平台下的Atom与Web端的简书。
二、Markdown 语法的简要规则
Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然。比如:在文字两旁加上星号,看起来就像*强调*。Markdown 的列表看起来,嗯,就是列表。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 提供的链接或是图像标签语法。
2.1 区块元素
2.1.1 段落和换行
一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。
如果你确实想要依赖 Markdown 来插入 <br /> 标签的话,在插入处先按入两个以上的空格然后回车。
的确,需要多费点事(多加空格)来产生 <br /> ,但是简单地「每个换行都转换为 <br />」的方法在 Markdown 中并不适合, Markdown 中 email 式的 区块引用 和多段落的 列表 在使用换行来排版的时候,不但更好用,还更方便阅读。
2.1.2 标题
在 Markdown 中,如果一段文字被定义为标题,只要在这段文字前加 # 号即可,如下:
- # 一级标题
- ## 二级标题
- ### 三级标题
以此类推,总共六级标题。
注意:在井号后加一个空格,这是最标准的 Markdown 语法。
你可以选择性地「闭合」标题,这纯粹只是美观用的,若是觉得这样看起来比较舒适,你就可以在行尾加上 #,而行尾的 # 数量也不用和开头一样(行首的井字符数量决定标题的阶数):
2.1.3 区块引用 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.
- > 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.
- > This is the first level of quoting.
- >
- > > This is nested blockquote.
- >
- > Back to the first level.
- > ## 这是一个标题。
- >
- > 1. 这是第一行列表项。
- > 2. 这是第二行列表项。
- >
- > 给出一些例子代码:
- >
- > return shell_exec("echo $input | $markdown_script");
2.1.4 列表
与Html的类同,包含有序列表与无序列表:
- 无序列表使用星号、加号或是减号作为列表标记
- 有序列表则使用数字接着一个英文句点
技巧:针对有序列表所使用的数字完全不影响显示效果,换句话说:你写的顺序是错的,或者连数字都不写,输出结果也是有序的。
如果列表项目间用空行分开,在输出 HTML 时 Markdown 就会将项目内容用 <p> 标签包起来,举例来说:
- * Bird
- * Magic
- <ul>
- <li>Bird</li>
- <li>Magic</li>
- </ul>
- * Bird
- * Magic
- Magic
- <ul>
- <li><p>Bird</p></li>
- <li><p>Magic</p></li>
- </ul>
- 1. This is a list item 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.
- 2. Suspendisse id sem consectetuer libero luctus adipiscing.
如果要在列表项目内放进引用,那 > 就需要缩进:
如果要放代码区块的话,该区块就需要缩进两次,也就是 8 个空格或是 2 个制表符:
- * 一列表项包含一个列表区块:
- <代码写在这>
- 你在列表标记上使用的数字并不会影响输出的 HTML 结果,你可以完全不用在意数字的正确性。不过建议第一个项目最好还是从 1. 开始,因为 Markdown 未来可能会支持有序列表的 start 属性。
- 点号是必须的,并且点号后面必须包含一个空格或制表符。
- 列表项目标记通常是放在最左边,但是其实也可以缩进,最多 3 个空格。
2.1.5 代码区块
和程序相关的写作或是标签语言原始码通常会有已经排版好的代码区块,通常这些区块我们并不希望它以一般段落文件的方式去排版,而是照原来的样子显示,Markdown 会用 <pre> 和 <code> 标签来把代码区块包起来。
要在 Markdown 中建立代码区块很简单,只要简单地缩进 4 个空格或是 1 个制表符就可以,例如,下面的输入:
- 这是一个普通段落:
- 这是一个代码区块。
Markdown 会转换成:
- <p>这是一个普通段落:</p>
- <pre>
- <code>这是一个代码区块。</code>
- </pre>
- Here is an example of AppleScript:
- tell application "Foo"
- beep
- end tell
会被转换为:
一个代码区块会一直持续到没有缩进的那一行(或是文件结尾)。 在代码区块里面, & 、 < 和 > 会自动转成 HTML 实体,这样的方式让你非常容易使用 Markdown 插入范例用的 HTML 原始码,只需要复制贴上,再加上缩进就可以了,剩下的 Markdown 都会帮你处理。
代码区块中,一般的 Markdown 语法不会被转换,像是星号便只是星号,这表示你可以很容易地以 Markdown 语法撰写 Markdown 语法相关的文件。
2.1.6 分隔线
你可以在一行中用三个以上的星号、减号、底线来建立一个分隔线,行内不能有其他东西。你也可以在星号或是减号中间插入空格。下面每种写法都可以建立分隔线:
- * * *
- ***
- *****
- - - -
- ---------------------------------------
2.2 区段元素
2.2.1 链接
Markdown 支持两种形式的链接语法: 行内式和参考式两种形式。不管是哪一种,链接文字都是用 [方括号] 来标记。
<行内式>
要建立一个行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的 title 文字,只要在网址后面,用双引号把 title 文字包起来即可,例如:
- This is [an example](http://example.com/ "Title") inline link.
- [This link](http://example.net/) has no title attribute.
- <p>This is <a href="http://example.com/" title="Title">an example</a> inline link.</p>
- <p><a href="http://example.net/">This link</a> has no title attribute.</p>
<参考式>
参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记:
接着,在文件的任意处,你可以把这个标记的链接内容定义出来:
链接内容定义的形式为:
- 方括号(前面可以选择性地加上至多三个空格来缩进),里面输入链接文字
- 接着一个冒号
- 接着一个以上的空格或制表符
- 接着链接的网址
- 选择性地接着 title 内容,可以用单引号、双引号或是括弧包着
下面这三种链接的定义都是相同:
- [foo]: http://example.com/ "Optional Title Here"
- [foo]: http://example.com/ 'Optional Title Here'
- [foo]: http://example.com/ (Optional Title Here)
链接网址也可以用尖括号包起来:
注意:你也可以把 title 属性放到下一行,也可以加一些缩进,若网址太长的话,这样会比较好看。
网址定义只有在产生链接的时候用到,并不会直接出现在文件之中。
链接辨别标签可以有字母、数字、空白和标点符号,但是并不区分大小写,因此下面两个链接是一样的:
隐式链接标记功能让你可以省略指定链接标记,这种情形下,链接标记会视为等同于链接文字,要用隐式链接标记只要在链接文字后面加上一个空的方括号,如果你要让 "Google" 链接到 google.com,你可以简化成:
注意:由于链接文字可能包含空白,所以这种简化型的标记内也许包含多个单词。
链接的定义可以放在文件中的任何一个地方,我比较偏好直接放在链接出现段落的后面,你也可以把它放在文件最后面,就像是注解一样。
参考式的链接其实重点不在于它比较好写,而是它比较好读。
使用 Markdown 的参考式链接,可以让文件更像是浏览器最后产生的结果,让你可以把一些标记相关的元数据移到段落文字之外,你就可以增加链接而不让文章的阅读感觉被打断。
2.2.2 强调
Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 <em> 标签包围,用两个 * 或 _ 包起来的话,则会被转成 <strong>,例如:
- <em>single asterisks</em>
- <em>single underscores</em>
- <strong>double asterisks</strong>
- <strong>double underscores</strong>
强调也可以直接插在文字中间:
注意:如果你的 * 和 _ 两边都有空白的话,它们就只会被当成普通的符号。
如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:
2.2.3 代码
如果要标记一小段行内代码,你可以用反引号把它包起来(`),例如:
会生成:
代码区段的起始和结束端都可以放入一个空白,起始端后面一个,结束端前面一个,这样你就可以在区段的一开始就插入反引号:
- <p>A single backtick in a code span: <code>`</code></p>
- <p>A backtick-delimited string in a code span: <code>`foo`</code></p>
2.2.4 图片
很明显地,要在纯文字应用中设计一个「自然」的语法来插入图片是有一定难度的。
Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式: 行内式和参考式。
行内式的图片语法看起来像是:
- 一个惊叹号 !
- 接着一个方括号,里面放上图片的替代文字
- 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 'title' 文字。
参考式的图片语法则长得像这样:
注意:到目前为止, Markdown 还没有办法指定图片的宽高,如果你需要的话,你可以使用普通的 <img> 标签。
2.3 其它
2.3.1 自动链接
Markdown 支持以比较简短的自动链接形式来处理网址和电子邮件信箱,只要是用尖括号包起来, Markdown 就会自动把它转成链接。一般网址的链接文字就和链接地址一样,例如:
Markdown 会转为:
邮址的自动链接也很类似,只是 Markdown 会先做一个编码转换的过程,把文字字符转成 16 进位码的 HTML 实体,这样的格式可以糊弄一些不好的邮址收集机器人,例如:
在浏览器里面,这段字串(其实是 <a href="mailto:address@example.com">address@example.com</a>)会变成一个可以点击的「address@example.com」链接。
(这种作法虽然可以糊弄不少的机器人,但并不能全部挡下来,不过总比什么都不做好些。不管怎样,公开你的信箱终究会引来广告信件的。)
2.3.2 反斜杠
Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 <em> 标签),你可以在星号的前面加上反斜杠:
2.3.2 表格
表格是我觉得 Markdown 比较累人的地方,例子如下:
- | Tables | Are | Cool |
- | ------------- |:-------------:| -----:|
- | col 3 is | right-aligned | $1600 |
- | col 2 is | centered | $12 |
- | zebra stripes | are neat | $1 |
这种语法生成的表格如下:
  
博客发表时间:
最后修改时间:
********************************************************************************结束语********************************************************************************************
我在写这篇博客的时候也是一名初学者,有任何疑问或问题请留言,或发邮件也可以,邮箱为:577328725@qq.com,我会尽早的进行更正及更改。
在我写过的博客中有两篇博客是对资源的整理,可能对大家都有帮助,大家有兴趣的话可以看看!!
下载资料整理——目录:http://blog.csdn.net/fanxiaobin577328725/article/details/51894331
这篇博客里面是我关于我见到的感觉不错的好资源的整理,里面包含了书籍及源代码以及个人搜索的一些资源,如果有兴趣的可以看看,我会一直对其进行更新和添加。
优秀的文章&优秀的学习网站之收集手册:http://blog.csdn.net/fanxiaobin577328725/article/details/52753638
这篇博客里面是我对于我读过的,并且感觉有意义的文章的收集整理,纯粹的个人爱好,大家感觉有兴趣的可以阅读一下,我也会时常的对其进行更新。
********************************************************************************感谢********************************************************************************************
原文地址:http://blog.csdn.net/fanxiaobin577328725/article/details/53445493




浙公网安备 33010602011771号