轻量级标记语言 MarkDown
前言
最近发现轻量级标记语言写笔记的巨大优势,如MarkDown1、reStructuredText2等等。在写这篇文章的时候,起初是要写关于MarkDown的Sublime Text插件,不过在写之前,我打算直接使用MarkDown编写这些文字。
有趣的是,在写的过程中我还发现了一个更加方便快捷的工具:
Mou是一个Mac平台上的免费软件,用于编写基于MarkDown的文档:
界面轻便简洁,编辑界面的左边为原始内容(附带一些着色效果),右边为加上CSS后的HTML实现效果,一目了然
提供了全面的语法帮助。这对初学者来说的确不错,尽管标记语言语法十分简单
另外,在MarkDown语法基础上,Mou还加入了更加方便的脚注功能3
附上Mou的界面:
在安装合适的编辑器之前,还可以使用在线编辑方式直接显示结果,例如Dillinger。这也有助于简单快捷地入门MarkDown的语法。它还支持Dropbox:)
其它平台软件可以参考这里,目前还没有尝试过不做评论了
MarkDown的魔力
由于笔者不通HTML语言,但是又想写出美观工整的博文,怎么办?于是天上掉下来一个轻量级标记语言MarkDown
由于轻量级的标记语言在语法上十分简单,从原始文本就能够读懂内容,相比HTML这样的“重度”标记语言(标记太多了:)就轻量很多了
MD之类的标记语言拥有许多工具可以直接将其转换成自定的HTML样式,因此在写一些读书笔记、心得时可以直接用MarkDown语法编写,省去了考虑文字样式的过程,以免影响思路
像下文一样快捷地添加代码块,并且可以实现不同的着色效果
原始文本与样式之间完全分开,更换前端样式更加简单快捷
之前已近习惯使用Evernote(印象笔记)作为强大的信息收集工具,现在,完全可以直接在Evernote中以标记语言的语法记录心得了。甚至,将转换后美观的HTML页面直接保存在笔记中
Sublime Text 插件
鉴于不同的解释器所表现的HTML效果不尽相同,最好选择一个接近标准的解释器及其广泛使用的额外插件,以免格式过于小众影响不同平台上的转换效果。由于博客使用GitHub推荐的jekyll,因此使用一个编辑器+command tool的方式全自动生成html文件预览最终效果将会更加方便。
Sublime Text很好很强大,我最喜欢用的文本编辑器,因为它还附带了轻量级的编译功能,小段代码的测试很方便。这里不多介绍以免抢了MD风头:)SublimeText拥有MarkDown相应的插件,可以用于快速编辑,详细可见这里的教程
首先需要安装Sublime Text的Package Control。
在控制台( Control+` )中键入:
在Package Control中选择Install Package,查找MarkDownBuild、MarkDownPreview、MarkDownEditing进行安装
安装MarkDownEditing后,只要打开md或者txt等等扩展名的文件即可实现MD相关的快捷编辑功能了,Package Setting中可以找到更详细的设置,例如字体、样式、宽度、对应扩展名等等
安装MarkDownBuild,MarkDownPreview则能直接使用Build生成页面并使用默认浏览器打开,展示效果
脚注
虽然reST与Python有些许渊源,不过我觉得还是MD在语法上更加易用一些。返回 ↩
在博客中利用GitHub Page提供的jekyll工具自动化地编译静态网页,Mou使用的脚注功能在jekyll中没有实现,因为MarkDown的标准语法中没有脚注,参见官方关于脚注的说明(我没看完其实)
在
1
$ jekyll --help
中可以发现,jekyll包含使用不同转换引擎的选项:
1 2 3
--rdiscount Use rdiscount gem for Markdown --redcarpet Use redcarpet gem for Markdown --kramdown Use kramdown gem for Markdown
默认引擎为Maruku,在官方文档的配置说明中发现,kramdown下有一个默认参数footnote_nr: 1,那么显然kramdown是支持脚注功能的,用法参照Mou进行尝试,成功。之后找到其主页,以及脚注的语法。这个解释器还是蛮强大的,对MarkDown语法做了许多扩展。似乎还支持html到md的反向转换?逆天了:
此外,Python实现的MarkDown解释器py-markdown2中也包含对脚注实现的插件(Extra)。 甚至是基于jekyll的Python实现Hyde。返回 ↩