1. 背景
Markdown是一种语法简洁的标记语言 (Markup Language)。Markdown可以使用任何一种纯文本编辑进行编辑,同时可以渲染、生成HTML。Markdown虽然是标记语言,但是和HTML比起来具有更好的可读性。与富文本(Rich Format Text, RTF)格式相比,Markdown的纯文本特性让使用者可以更加关注内容,专注于文字的表达。我多年前在友人的推荐下开始尝试用Markdown写作。我一开始并不习惯这种所写和所得分离的方式,但是之后也慢慢习惯、喜欢上了这种内容与格式分离的文字编辑方式。此文我整理了我关于Markdown的认识(本文也是通过Makrdown书写的),同时我推荐大家开始尝试用Markdown生产笔记、日记、文档、博客等文字信息。
2. 使用Markdown的好处
先说一下Markdown语言的优势:
- 记录速度快:比起其他文字格式,Markdown可以更快地记录信息,编辑过程只需要键盘参与。基本的文字格式 (如标题,粗体,斜体等)可以通过快捷键实现,利用序号、列表功能还可以快速生成层次化的段落结构。
- Markdown是纯文本格式,可以用普通文本编辑器编辑(nano, VIM, Notepad++等),方便修改和共享。
- 可移植性好。工具是不断变迁的,对于富文本工具而言,更换工具就意味着文字格式无法完美保留(当初从写字板到word);而对于Markdown而言,因为源文件本身并没有格式编码,所以更换工具几乎不会影响版式。不同工具的渲染结果也几乎没有差别。
- 重内容,轻版式。很多时候我们会浪费很多精力在文字的排版和格式统一上,而Markdown简单清晰的编辑方式,让我们可以集中于内容的编辑。
- 可以生成HTML。Markdown在设计时就完全兼容HTML,可以直接插入HTML代码(但是不推荐,会影响纯文本的优点)。Markdown配合不同的CSS可以渲染成不同风格的网页,Markdown还可以导出为pdf。除此之外还可以渲染成多种格式(大多数编辑器有导出功能,或者用Pandoc转换)。
- 图文分离,备份或者传播时简单、信息的体积小。
3. 使用Markdown的坏处
然而Markdown也并非完美:
- 所见非所得。编辑器和Live Preview是独立的系统,如果需要实时预览,则需要编辑工具的支持。
- 插图不方便。在富文本系统中可以直接copy + paste,而一般的Markdown系统则需要单独的文件夹存储图片,还需要额外输入图片路径。
- 文字的表示形式有限。相比富文本,Markdown无法随心所欲地修改文字的属性(字体、颜色、大小等)。如果需要特殊的文字格式,需要插入额外的html属性,但是这些会破坏纯文本的移植性。
- 页面版式、布局相对固定。总体来说只能是线性的记录方式。如果需要自由的图文混排,其他工具如Word或者Onenote是更好的平台。
4. 常见Markdown编辑器/写作平台
我将常见的Markdown编辑器整理如下(按照我的个人喜好排序),我本人更倾向使用本地编辑平台,可以和本地工具有更好得融合:
- 本地Markdown编辑器
- Leanote:在线 + Windows客户端,支持MD预览、分类管理、代码高亮、数学公式。是我个人使用最多的笔记编辑和归档工具。
- Haroopad:开源的Markdown编辑器,界面简洁,有多种编辑/预览样式可供使用。这个软件我当前用来编辑本地的Markdown文件。
- MWeb:Mac和iOS平台下的Markdown编辑器。看见很多人推荐,就自己用了iOS下的版本。使用后感觉不错,但是还是有很多Bug需要完善。这个软件的特点是支持直接发布到Wordpress, Hexo, JekyII博客平台。官方说之后会收费。
- MarkdownPad:是我最早使用的Markdown编辑器,刚开始用来编辑Github的Readme。后来觉得还是不够轻便,就没有再继续使用。Windows本地软件,单文件编辑,没有分类和管理功能。高级版需要付费。
- Typora:很有意思的Windows/Mac下的MD编辑器,写作时同步预览。这种实时预览的模式很多Markdown的老用户会不习惯吧。
- Atom + Markdown Preview插件:跨平台,本地Markdown编辑,没有分类和管理功能。Geek的选择。
- Cmd Markdown – 作业部落:功能很多,主要功能免费,在线/有本地客户端。支持版本回退、代码高亮、数学公式。但是对内容组织的支持不够。
- Markdown Edit:一款开源的Markdown编辑器,简洁,支持LaTex公式。目前的功能还比较简单。
- Sublime + Evernote-Packages:Atom现在很大程度取代了Sublime,我并没有实际用过这个方案,所以才放在最后。
- 在线Markdown编辑器
- StackEdit:在线,编辑界面友善、视觉上很舒服,中文支持不错。
- 马克飞象:在线,功能齐全,适合程序员。可以和Evernote连接。但是必须按月付费。
- Dillinger:在线,界面简洁,开源,中文字体显示不太清楚。
- 小书匠:界面有点花哨,软件庞大,载入也比较慢;但好处是免费。也有很多人推荐。
5. 将Markdown与Evernote结合
大部分人使用的主要书写/笔记平台是Evernote,那么Markdown怎么和Evernote集成呢?基于知乎上余知兮等人的回答:知乎 -有哪些 Markdown 编辑器支持保存到印象笔记 Evernote?,我做了一个亲测调查,以下按我的使用体验排序:
- Windows
- 将Markdown源文件作为Evernote笔记的附件,每次修改后将渲染的内容拷贝到Evernote,而MD源文件会自动更新。这是我目前使用的方法,缺点是每次更新md文件后还要拷贝渲染的html网页;并且由于Evernote本身的编辑能力很差,最好每次更新都只通过Markdown软件实现,所以即使是很小的修改也要走这个流程。
- Markdown Here (浏览器插件):之前使用过一段时间。发现如果在Evernote客户端上操作过,而不是一直使用网页端,有时就无法再切换回Markdown模式了。
- 马克飞象/Marxico:功能强大,和Evernote结合紧密,按月收费。
- Cmd Markdown:基础功能免费,同步到Evernote需要收费。
- Markable.in:可以双向同步,实际测试时只有单向同步,并发现不支持中文标题。
- 小书匠Markdown
- Sublime: Evernote-Packages,支持双向读取(没有实际测试)
- MWeb(Mac平台,没有实际测试过,据说是很好的Markdown写作和静态博客生成软件)
- Mac/iOS
- MWeb: 我不是Mac用户,唯一测试的就是这款有iOS版本的编辑器。实测可以成功导出到Evernote。
- Ulysses, Evermark, Byword, Mou, Day One, Alternote, drafts
很多软件将Evernote同步作为收费功能,我个人不太愿意为了这一个功能而订购会员。Evernote正在逐步添加一些对Markdown的支持,有希望哪一天就可以完全支持Markdown语法了。
6. 用Markdown写博客
目前支持用Markdown直接写作的静态博客系统:
- Hugo
- Hexo
- JekyII + Emacs + Git
- Ghost
作为主流的博客平台,Wordpress使用富文本编辑器,对Markdown的支持还不足。如果想要在WordPress中使用Markdown,可以采用以下方法:
- 先用各类Markdown编辑器写作,将结果转化为html,然后paste到Wordpress的源码编辑器中。缺点:需要手动上传图片。
- WordPress 4.3后原生支持Markdown(没有找到相关选项,应该是要使用wordpress官方host服务才有这个功能)
- WordPress JetPack插件
- WP Editor.MD插件
最后给一份Markdown语法说明:CODING – Markdown语法介绍。