提到Markdown了解的会觉得很easy,不了解的会觉得又是什么不明觉厉的黑科技;其实,网上关于Markdown的介绍很多,但一来,总还有些人不很清楚;二来每次用到都要东拼西凑,很是不便;这里带大家梳理一下这个最近很火、很神奇的语法;本文将从What 、Why、Tools、 How四个方面对Markdown进行介绍。
What(什么是Markdown)
[Markdown](http://zh.wikipedia.org/wiki/Markdown)是一种轻量级的「标记语言」,它的优点很多,目前也被越来越多的写作爱好者,撰稿者广泛使用。看到这里请不要被「标记」、「语言」所迷惑,Markdown 的语法十分简单。常用的标记符号也不超过十个,这种相对于更为复杂的HTML 标记语言来说,Markdown 可谓是十分轻量的,学习成本也不需要太多,且一旦熟悉这种语法规则,会有一劳永逸的效果。
其实,很多文章这里也是这么介绍,毕竟定义嘛,并没有什么不同;大家只需要知道是一门具有诸多优点的标记语言,那么具体有哪些优点呢?且往下看。
Why(为什么是Markdown)
正如上文所述,Markdown 是一种用来写作的轻量级「标记语言」,它用简洁的语法代替排版,而不像一般我们用的字处理软件*Word*或*Pages*有大量的排版、字体设置。它使我们专心于码字,用「标记」语法,来代替常见的排版格式。例如此文从内容到格式,甚至插图,键盘就可以通通搞定了。目前来看,支持 Markdown 语法的编辑器有很多,包括很多网站(例如[简书](http://jianshu.io/))也支持了 Markdown 的文字录入。Markdown 从写作到完成,导出格式随心所欲,你可以导出 HTML 格式的文件用来网站发布,也可以十分方便的导出 PDF 格式,这种格式写出的简历更能得到 HR 的好感。甚至可以利用[CloudApp](http://www.getcloudapp.com/)这种云服务工具直接上传至网页用来分享你的文章,全球最大的轻博客平台 Tumblr,也支持使用 Mou 这类 Markdown 工具进行编辑并直接上传。当然,如果你用过HTML的话,你会发现HTML 对格式还是有一些要求的,例如标签的开合、成对出现等。Markdown 的简单和灵活性可以让你产生更少的错误,而且很容易找到错误所在。综上,概况来说主要有以下几方面:
- 纯文本,所以兼容性极强,可以用所有文本编辑器打开。
- 让你专注于文字而不是排版。
- 格式转换方便,Markdown 的文本你可以轻松转换为 html、电子书等。
- Markdown 的标记语法有极好的可读性。
- (相比于HTML等)更少的错误,更少的学习成本。
T(选择合适的编辑工具)
在线的Markdown编辑器
1.dillinger 漂亮强大,支持md, html, pdf 文件导出。支持dropbox, onedrive,google drive, github. 来自国外,可能不够稳定。
2.MaHua 小众软件推荐,界面有些简陋
3.简书 一个很不错的博客平台,每几秒钟便会自动存入一个备份。可以直接从本地拖入照片生成链接,一直在不断优化。作为一个博客平台,需要注册账号后方能进行写作。
4.小书匠编辑器 和 Cmd Markdown 也有web版,下文有介绍。
支持多平台
1.FarBox 一个支持Markdown写作语法的博客平台,让用户通过Dropbox(现在默认是自己的同步服务器)直接建立个人网站。FarBox编辑器免费,支持多平台(无web版,Linux版停止维护),个人认为是Windows平台最优雅的编辑器。多说一句,Farbox服务可以免费试用,在本地编辑器内写作自动同步发布在个人博客,对像笔者这样希望有个人博客但却不愿折腾的小白来说,是个不错的选择。
2.Cmd Markdown 作业部落出品,也是一款不错的工具和博客平台兼顾的产品。全平台且提供web版。
3.Sublime Text 2 界面简约大方,定位专业。可以免费试用,价格稍贵,70美元。
4.Atom github出的编辑器;功能十分强大,支持各种编程语言;安装后会在添加右键菜单,图标丑;全平台,程序猿专用。
Windows平台
1.MarkdownPad 一款全功能的编辑器,被很多人称赞为windows 平台最好用的markdown编辑器
2.Smark 开源软件
3.MdCharm 功能完备;长相一般,隐藏菜单栏后也算简约。有Windows 和Linux版本。目前已开源,不再更新。
4.Miu 一款模仿mou 的windows平台markdown编辑器,小众推荐,必属精品,官网无法打开,好在小众提供了百度云下载。界面美观,功能不够成熟
OS X平台
没有Mac 没有试用,也就不做太多评价,下面整理了最受好评的几个。
1.Mou 似乎提到 Mac 和 MD ,接下来的词一定是Mou,因为他们是一个姓么!
2.Typora 有出Windows 和Linux版本的计划
3.MacDown 开源免费
Linux平台
用Linux的程序员根本就不屑于看这种文章。
除了Atom ,UberWriter,RStudio;
还有开源软件ReText ,Editor.MD 等。
H(如何使用Markdown)
段落、标题、区块代码
一个段落是由一个以上的连接的行句组成,而一个以上的空行则会划分出不同的段落(空行的定义是显示上看起来像是空行,就被视为空行,例如有一行只有空白和 tab,那该行也会被视为空行),一般的段落不需要用空白或换行缩进。
Markdown 支持两种标题的语法,Setext 和 atx 形式。Setext 形式是用底线的形式,利用 =(最高阶标题)和 -(第二阶标题) ,Atx 形式在行首插入 1 到 6 个 #,对应到标题 1 到 6 阶。区块引用则使用 email 形式的 '>' 角括号。
Markdown 语法:
A First Level Header====================A Second Level Header---------------------Now is the time for all good men to come tothe aid of their country. This is just aregular paragraph.The quick brown fox jumped over the lazydog's back.### Header 3> This is a blockquote.> > This is the second paragraph in the blockquote.>> ## This is an H2 in a blockquote
输出 HTML 为:
<code>
<h1>A First Level Header</h1>
<h2>A Second Level Header</h2>
<p>Now is the time for all good men to come tothe aid of their country. This is just aregular paragraph.</p><p>The quick brown fox jumped over the lazydog's back.</p>
<h3>Header 3</h3>
<blockquote>
<p>This is a blockquote.</p>
<p>This is the second paragraph in the blockquote.</p>
<h2>This is an H2 in a blockquote</h2>
</blockquote>
</code>
修辞和强调
Markdown 使用星号和底线来标记需要强调的区段。
Markdown 语法:
Some of these words are emphasized.Some of these words are emphasized also.Use two asterisks for strong emphasis.Or, if you prefer, use two underscores instead.
输出 HTML 为:
<code>
<p>Some of these words <em>are emphasized</em>.Some of these words <em>are emphasized also</em>.</p><p>Use two asterisks for <strong>strong emphasis</strong>.Or, if you prefer, <strong>use two underscores instead</strong>.</p>
</code>
列表
无序列表使用星号、加号和减号来做为列表的项目标记,这些符号是都可以使用的,使用星号:
- Candy * Gum * Booze.
加号:
- Candy + Gum + Booze.
和减号
- Candy - Gum - Booze.
都会输出 HTML 为:
<code>
<ul>
<li>Candy.</li>
<li>Gum.</li>
<li>Booze.</li>
</ul>
</code>
有序的列表则是使用一般的数字接着一个英文句点作为项目标记:
- Red2. Green3. Blue
输出 HTML 为:
<code>
<ol><li>Red</li><li>Green</li><li>Blue</li></ol>
</code>
如果你在项目之间插入空行,那项目的内容会用 <p>
包起来,你也可以在一个项目内放上多个段落,只要在它前面缩排 4 个空白或 1 个 tab 。
<p>
- A list item.With multiple paragraphs.* Another item in the list.
</p>
输出 HTML 为:
<code>
<ul><li><p>A list item.</p><p>With multiple paragraphs.</p></li><li><p>Another item in the list.</p></li></ul>
</code>
链接
Markdown 支援两种形式的链接语法: 行内 和 参考 两种形式,两种都是使用角括号来把文字转成连结。
行内形式是直接在后面用括号直接接上链接:
This is an example link.
输出 HTML 为:
<code>
<p>This is an <a href="http://example.com/">example link</a>.</p>
</code>
你也可以选择性的加上 title 属性:
This is an example link.
输出 HTML 为:
<code>
<p>This is an <a href="http://example.com/" title="With a Title">example link</a>.</p>
</code>
参考形式的链接让你可以为链接定一个名称,之后你可以在文件的其他地方定义该链接的内容:
I get 10 times more traffic from [Google][1] than from[Yahoo][2] or [MSN][3].[1]: http://google.com/ "Google"[2]: http://search.yahoo.com/ "Yahoo Search"[3]: http://search.msn.com/ "MSN Search"
输出 HTML 为:
<code>
<p>I get 10 times more traffic from <a href="http://google.com/"title="Google">Google</a> than from <a href="http://search.yahoo.com/"title="Yahoo Search">Yahoo</a> or <a href="http://search.msn.com/"title="MSN Search">MSN</a>.</p>
</code>
title 属性是选择性的,链接名称可以用字母、数字和空格,但是不分大小写:
I start my morning with a cup of coffee and[The New York Times][NY Times].[ny times]: http://www.nytimes.com/
输出 HTML 为:
<code>
<p>I start my morning with a cup of coffee and<a href="http://www.nytimes.com/">The New York Times</a>.</p>
</code>
图片
图片的语法和链接很像。
行内形式(title 是选择性的):
参考形式:
![alt text][id][id]: /path/to/img.jpg "Title"
上面两种方法都会输出 HTML 为:
<code>
<img src="http://upload-images.jianshu.io/upload_images/1368054-e57e7480210e840b.png?imageMogr2/auto-orient/strip%7CimageView2/2/w/1240" />
</code>
代码
在一般的段落文字中,你可以使用反引号 来标记代码区段,区段内的 & 、< 和 > 都会被自动的转换成 HTML 实体,这项特性让你可以很容易的在代码区段内插入 HTML 码: I strongly recommend against using any
<blink>tags.I wish SmartyPants used named entities like
—instead of decimal-encoded entites like
—`.
输出 HTML 为:
<code>
<p>I strongly recommend against using any<code><blink></code> tags.</p><p>I wish SmartyPants used named entities like<code>—</code> instead of decimal-encodedentites like <code>—</code>.</p>
</code>
如果要建立一个已经格式化好的代码区块,只要每行都缩进 4 个空格或是一个 tab 就可以了,而 &、< 和 > 也一样会自动转成 HTML 实体。
Markdown 语法:
If you want your page to validate under XHTML 1.0 Strict,you've got to put paragraph tags in your blockquotes:<blockquote><p>For example.</p></blockquote>
输出 HTML 为:
<code>
<p>
If you want your page to validate under XHTML 1.0 Strict,you've got to put paragraph tags in your blockquotes:<pre><blockquote></blockquote>
</p>
</code>
参考资料和文献
*Markdown 语法说明 (简体中文版) *
blog comments powered by Disqus
认识与入门 Markdown
7 款优秀 Markdown 编辑工具
好用的Markdown编辑器一览
创始人 John Gruber 的 Markdown 语法说明
Markdown 中文版语法说明