提到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 的好感。 Tumblr,也支持使用 Mou 这类 Markdown 工具进行编辑并直接上传。当然,如果你用过HTML的话,你会发现HTML 对格式还是有一些要求的,例如标签的开合、成对出现等。Markdown 的简单和灵活性可以让你产生更少的错误,而且很容易找到错误所在。综上,概况来说主要有以下几方面:
<pre>
- 纯文本,所以兼容性极强,可以用所有文本编辑器打开。
- 让你专注于文字而不是排版。
- 格式转换方便,Markdown 的文本你可以轻松转换为 html、电子书等。
- Markdown 的标记语法有极好的可读性。
- (相比于HTML等)更少的错误,更少的学习成本。
</pre>
T(选择合适的编辑工具)
<pre>
在线的Markdown编辑器
Paste_Image.png2. 小众软件推荐,界面有些简陋
Paste_Image.png
3. 一个很不错的博客平台,每几秒钟便会自动存入一个备份。可以直接从本地拖入照片生成链接,一直在不断优化。作为一个博客平台,需要注册账号后方能进行写作。
Paste_Image.png
4. 和 也有web版,下文有介绍。
支持多平台
Paste_Image.png2. 作业部落出品,也是一款不错的工具和博客平台兼顾的产品。全平台且提供web版。
Paste_Image.png
3. 界面简约大方,定位专业。可以免费试用,价格稍贵,70美元。
Paste_Image.png
4. github出的编辑器;功能十分强大,支持各种编程语言;安装后会在添加右键菜单,图标丑;全平台,程序猿专用。
Paste_Image.png
Windows平台
Markdown编辑器 Markdown编辑器 Markdown编辑器 Markdown编辑器OS X平台
Paste_Image.png Markdown编辑器 Markdown编辑器Linux平台
用Linux的程序员根本就不屑于看这种文章。
H(如何使用Markdown)
段落、标题、区块代码
输出 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>
链接
图片
图片的语法和链接很像。
行内形式(title 是选择性的):
参考形式:
![alt text][id][id]: /path/to/img.jpg "Title"
上面两种方法都会输出 HTML 为:
<code>
69488.png
</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>