概述
宗旨
Markdown 的目标是实现「易读易写」
易读:一份使用 Markdown 格式撰写的文件应该可以直接以纯文本发布,并且看起来不会像是由许多标签或是格式指令所构成。
易写: Markdown 的语法全由一些符号所组成,这些符号经过精挑细选,其作用一目了然
常用编辑器
-
在线的编辑器:
1.dillinger 漂亮强大,支持md, html, pdf 文件导出。支持dropbox, onedrive,google drive, github. 来自国外,可能不够稳定。
2.MaHua 小众软件推荐,界面有些简陋。
3.简书 一个很不错的博客平台,每几秒钟便会自动存入一个备份。可以直接从本地拖入照片生成链接,一直在不断优化。作为一个博客平台,需要注册账号后方能进行写作。
-
支持多平台:
1.FarBox 一个支持Markdown写作语法的博客平台,让用户通过Dropbox(现在默认是自己的同步服务器)直接建立个人网站。FarBox编辑器免费,支持多平台(无web版,Linux版停止维护),个人认为是Windows平台最优雅的编辑器。多说一句,Farbox服务可以免费试用,在本地编辑器内写作自动同步发布在个人博客
2.Cmd Markdown 作业部落出品,也是一款不错的工具和博客平台兼顾的产品。全平台且提供web版
3.有道云笔记 我比较喜欢用的,它比较方便,支持多种格式文件上传,下载,且免费
-
Windows平台编辑器
1.MarkdownPad 一款全功能的编辑器,被很多人称赞为windows 平台最好用的markdown编辑器
2.Smark 开源软件
-
OS X平台
1.Mou 似乎提到 Mac 和 MD ,接下来的词一定是Mou
2.MacDown 开源免费
兼容 HTML
Markdown 语法的目标是:成为一种适用于网络的书写语言
Markdown 不是想要取代HTML,也没有要和它相近,它的语法种类很少,只对应HTML 标记的一小部分。Markdown 的理念是,能让文档更容易读、写和随意改。
HTML 是一种++发布++的格式,Markdown 是一种++书写++的格式。
特殊字符自动转换
在 HTML 文件中,有两个字符需要特殊处理: < 和 & 。 < 符号用于起始标签,& 符号则用于标记 HTML 实体,如果你只是想要显示这些字符的原型,你必须要使用实体的形式,像是 < 和 &。
Markdown 让你可以自然地书写字符,需要转换的由它来处理好了。如果你使用的 & 字符是 HTML 字符实体的一部分,它会保留原状,否则它会被转换成 &。
所以你如果要在文档中插入一个版权符号 ©,你可以这样写:© Markdown会保留它不动。
而若你写:AT&T
Markdown 就会将它转为:AT&T
反斜杠
Markdown 可以利用反斜杠来插入一些在语法中有其它意义的符号,例如:如果你想要用星号加在文字旁边的方式来做出强调效果(但不用 <em> 标签),你可以在星号的前面加上反斜杠:
Markdown 支持以下这些符号前面加上反斜杠来帮助插入普通的符号:
\ 反斜杠
` 反引号
* 星号
_ 下划线
{} 大括号
[] 中括号
() 小括号
# 井号
+ 加号
- 减号
. 英文句号
! 感叹号
段落和换行
一个 Markdown 段落是由一个或多个连续的文本行组成,它的前后要有一个以上的空行(空行的定义是显示上看起来像是空的,便会被视为空行。比方说,若某一行只包含空格和制表符,则该行也会被视为空行)。普通段落不该用空格或制表符来缩进。
如果你确实想要依赖 Markdown来插入
标签的话,在插入处先按入两个以上的空格然后回车。
段首空格
没有空格
半角空格(英文)
全角空格(中文)
另一种空格
标题
Markdown 支持两种标题的语法,类 Setext 和类 atx 形式。
类 Setext 形式是用底线的形式,利用 =(最高阶标题)和 -(第二阶标题),例如:
This is an H1
This is an H2
任何数量的 = 和 - 都可以有效果。
类 Atx 形式则是在行首插入 1 到 6 个 # ,对应到标题 1 到 6 阶,例如:
这是 H1
这是 H2
....
这是 H6
你可以选择性地「闭合」类 atx 样式的标题,这纯粹只是美观用的,若是觉得这样看起来比较舒适,你就可以在行尾加上 #,而行尾的 # 数量也不用和开头一样(行首的井字符数量决定标题的阶数):
这是 H1
这是 H2
这是 H3
列表
Markdown 支持有序列表和无序列表。
无序列表使用星号、加号或是减号作为列表标记:
- Red
- Green
- Blue
等同于:
- Red
- Green
- Blue
也等同于:
- Red
- Green
- Blue
有序列表则使用数字接着一个英文句点:
- Tom
- Bob
- Jack
很重要的一点是,你在列表标记上使用的数字并不会影响输出的 HTML 结果,上面的列表所产生的 HTML 标记为:
<ol>
<li>Bird</li>
<li>McHale</li>
<li>Parish</li>
</ol>
如果你的列表标记写成:
- Bird
- McHale
- Parish
或甚至是:
- Bird
- McHale
- Parish
你都会得到完全相同的 HTML 输出。重点在于,你可以让 Markdown 文件的列表数字和输出的结果相同,或是你懒一点,你可以完全不用在意数字的正确性。
如果你使用懒惰的写法,建议第一个项目最好还是从 1. 开始,因为 Markdown 未来可能会支持有序列表的 start 属性。
列表项目标记通常是放在最左边,但是其实也可以缩进,最多3个空格,项目标记后面则一定要接着至少一个空格或制表符。
要让列表看起来更漂亮,你可以把内容用固定的缩进整理好:
- 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 支持两种形式的链接语法: 行内式和参考式两种形式。
不管是哪一种,链接文字都是用 [方括号] 来标记。
要建立一个行内式的链接,只要在方块括号后面紧接着圆括号并插入网址链接即可,如果你还想要加上链接的 title 文字,只要在网址后面,用双引号把 title 文字包起来即可,例如:
This is an example inline link. This link has no title attribute.
如果你是要链接到同样主机的资源,你可以使用相对路径:
See my About page for details.
参考式的链接是在链接文字的括号后面再接上另一个方括号,而在第二个方括号里面要填入用以辨识链接的标记:
This is an example reference-style link.
你也可以选择性地在两个方括号中间加上一个空格:
This is an example reference-style link.
接着,在文件的任意处,你可以把这个标记的链接内容定义出来:
强调
Markdown 使用星号(*)和底线(_)作为标记强调字词的符号,被 * 或 _ 包围的字词会被转成用 <em> 标签包围,用两个 * 或 _ 包起来的话,则会被转成 <strong>,例如:
single asterisks
single underscores
double asterisks
double underscores
会转成:
<em>single asterisks</em>
<em>single underscores</em>
<strong>double asterisks</strong>
<strong>double underscores</strong>
你可以随便用你喜欢的样式,唯一的限制是,你用什么符号开启标签,就要用什么符号结束。
强调也可以直接插在文字中间:
unfriggingbelievable
但是如果你的 * 和 _ 两边都有空白的话,它们就只会被当成普通的符号。
如果要在文字前后直接插入普通的星号或底线,你可以用反斜线:
*this text is surrounded by literal asterisks*
图片
很明显地,要在纯文字应用中设计一个「自然」的语法来插入图片是有一定难度的
Markdown 使用一种和链接很相似的语法来标记图片,同样也允许两种样式: 行内式和参考式。
[图片上传失败...(image-d893df-1512716941464)]
详细叙述如下:
- 一个惊叹号 !
- 接着一个方括号,里面放上图片的替代文字
- 接着一个普通括号,里面放上图片的网址,最后还可以用引号包住并加上 选择性的 'title' 文字。
参考式的图片语法则长得像这样:
「id」是图片参考的名称,图片参考的定义方式则和链接参考一样:
图片上传失败...(image-180e8c-1512716941464)
到目前为止, Markdown还没有办法指定图片的宽高,如果你需要的话,你可以使用普通的 <img> 标签。
优点:代码语法简单、专注于撰写内容、排版清晰简洁
中划线