2015-01-13 11:30:42
我在几篇博文中都介绍了markdown, 自己使用它来做工作记录也已经有一段时间了. 现在就将我所用到的工具介绍一下, 供需要的人参考.
markdown基础
可参考我以前的几篇博文.
markdown使用流程
我使用的流程如下:
使用时, 需要编辑文本文件File.md
(文件名只能使用英文字符), 因此需要一个文本编辑器. 我使用的是EmEditor,
它的优点很多, 和markdown相关的主要有以下几个:
- 中文支持好
- 支持列操作
- 大文件读取速度快
- 支持markdown语法高亮
- 支持大纲视图, 处理长文档很方便
- 插件众多, 能满足绝大部分需求
- 可自定义与文件关联的外部命令
- 有专门的HTML工具栏, 插入HTML代码十分方便
由于我对markdown的功能进行了很多扩展, 所以编辑完文件File.md
之后, 需要利用脚本MDawk对File.md
进行处理,
生成makrdown格式的中间文件File_git.md
. MDawk脚本是基于bash开发的, 所以使用时需要系统中安装有bash运行环境.
得到中间文件File_git.md
后, 就可以利用MultiMarkdown程序将其转换为HTML文件File.html
进行查看了.
建议使用谷歌的Chrome浏览器进行查看, 因为它的浏览速度快, 而且对HTML和JavaScript的支持比较好.
此外, Chrome支持直接查看pdf文件, 还支持将HTML文件直接打印成pdf文件. 这样如果你可以很方便地将markdown文件转换为pdf文件.
当然, 大多数时候我们都不需要将markdown文本保存为pdf文件.
虽然上面的整个流程看起来比较复杂, 手动做起来也稍嫌麻烦, 但我们可以将操作过程写在一个批处理文件MMD.bat
中,
并利用EmEditor的自定义外部命令功能实现一键运行MMD.bat
并查看HTML文件. 这和编程中常见的一键编译运行差不多, 使用起来很方便.
markdown扩展功能
markdown只是一种文本格式的名称, 写出来的文本相当于程序的源代码. 如果想看到更好的效果, 或是让它支持更强大的功能,
你可以自己写代码对文本进行处理. 我自己在使用过程中就写了一些脚本扩展markdown的功能, 以满足自己的需要.
这些扩展是通过MDawk
脚本和一些JavaScript脚本完成的. 主要的扩展功能如下:
- 功能更强大的表格
- 幻灯片式的图片浏览
- 各级标题的文档目录
- 基于Prism的代码高亮
- 基于MathJax的LaTex数学公式
- 基于gnuplot的数据作图
- 基于ditaa的ASCII图片
- 基于flowchart.js的流程图
- 基于ChemDoole的三维分子构型及动画
- 基于DZslide的网页幻灯片
程序下载及设置
- markdown处理脚本(必需)
点击这里下载与markdown相关的脚本和程序, 还有测试文档.
解压后, 编辑主文件夹下的MMD.bat
文件, 将下面这几行的路径改为相应的安装路径(注意路径中不能含有空格或中文, 并将路径中的反斜线\
改为斜线/
)
set Pmark="markdown文件夹的路径"
set Pmath="MathJax文件夹的路径"
set MDawk="MDawk文件的路径"
set Gpth="gnuplot.exe文件的路径"
set Gini="gpl.ini文件的路径"
- 文本编辑器EmEditor(必需)
可以直接到EmEditor官网或网上的其他地方下载, 但下载后需要自己配置, 稍嫌麻烦. 更简单的是直接在这里下载我已经打包的好的EmEditor程序, 版本为11.0.5, 稍微有点老, 但不影响使用. 此外, 我还在其中打包了许多常用的插件和一份配置文件.
下载后, 直接解压, 双击主文件夹下的!EmE.reg
导入设置.
为了利用MMD.bat
直接将文件编译成HTML, 你还需要在EmEditor中指定MMD.bat
的路径. 依次点击
工具 --> 外部工具 --> 自定义工具 --> Markdown --> 属性
在外部工具的属性
选项卡下的命令
中指定MMD.bat
文件的位置.
- bash环境mBash(必需)
运行MDawk
脚本需要bash环境, 如果你已经安装了bash运行环境(CygWin或MinGW), 就不需要再安装了.
如果你还没有安装bash环境, 那么你可以在这里下载我已经打包好的一个非常小的bash运行环境mBash. 它是基于CygWin 2.0制作的, 只包含了最常用的一些工具.
为了能在命令行中使用bash工具, 你需要将CygWin的bin目录(如果你使用CygWin), 或mBash目录(如果你使用我打包的mBash)添加到环境变量path中去. 具体的方法可参考善用佳软的介绍最绿色最高效,用win+r启动常用程序和文档.
- 网页浏览器Chrome(可选)
建议使用谷歌的Chrome浏览器查看HTML文件, 它速度快, 兼容性好, 而且支持阅读和输出pdf文件. 当然你也可以使用你喜欢的浏览器.
- Java运行环境(可选)
如果你希望使用ditaa程序将ASCII图转换为png图片, 那你需要安装Java运行环境. 如果你还没有安装Java, 直接到Java官网下载安装即可.
- LaTex数学公式支持MathJax(可选)
如果你像我一样, 经常需要在文档中插入LaTex数学公式, 那么你可以安装使用MathJax. 它可以将网页中的LaTex代码转换为漂亮的数学公式.
你可以到MathJax官网下载并安装, 或直接点击这里下载我已经打包好的2.4版本, 下载后直接解压就可以使用了.
- 数据作图gnuplot(可选)
如果你想在文档中插入gnuplot代码, 并希望能自动绘图, 那你需要安装gnuplot.
你可以到gnuplot官网下载并安装, 或是直接点击这里下载我已经打包好的5.0版本的gnuplot, 下载后直接解压就可以使用了.
如果你使用我打包的gnuplot, 解压后你会发现主目录下会有下面几个文件:
gpl.ini
: 我最常用的gnuplot设置, 作图效果比默认的美观HelveticaNeueLTPro-Hv.otf
: 一种Helvitica字体, 安装后即可使用, 标注效果更漂亮SymbolPi-Normal.ttf
: 一种用于希腊字母的字体, 用于在gnuplot标注中使用希腊字母. 如果Windows系统默认的Symbol字体在你的系统上无法使用, 你可以使用这个字体.moreland.pal
: 一种颜色映射图的调色板文件, 效果比常用的彩虹调色板更好
使用简介
将上面的程序下载并设置好以后, 使用EmEditor打开Markdown目录下的_PaperTest.md
文件,
你应该看到类似下面的效果
依次点击工具-->外部工具-->Markdown
或直接Ctrl+F5
, 即可运行MMD.bat
将文档编译成HTML文件.
如果运行正常, 完成后会出现如下的CMD窗口
直接回车即可看到编译好的HTML文件. 其效果应该类似下面的网页
以同样的方式运行_SlideTest.md
, 你应该得到一个可以播放的网页幻灯片, 其效果类似下面的网页
进阶使用
如果你对那些扩展功能很感兴趣, 建议你仔细看看测试文件_PaperTest.md
和_SlideTest.md
.
如果你想自己增加一些扩展功能, 你可以参考MDawk
脚本.
如果遇到困难或是有什么疑问可以联系我.
欢迎大家试用并给出反馈.
附记
像我在以前的博文中所说, 这种代码和文档放在一起的做法, 越来越为大家认可. 很多程序都支持这种做法. 目前使用较多主要有两个, 一个是基于R的knitr, 另一个是基于Python的IPython Notebook, Nature中有篇文章还专门介绍了IPython Notebook, 科学网的新闻中也编译了这篇文章. 我曾花了一些时间去查阅相关资料, 发现IPython Notebook虽然有优点, 却并没有介绍的那样好. 它基于Pyhton的各种库, 保存的文档虽然是文本格式, 但是格式很复杂, 文件也很大, 不借助IPython的界面基本没有办法直接查看编辑. 这种做法不适合直接阅读和修改, 因此就放弃了文本格式的最大优点, 变得和其他程序没有什么区别了. 我目前的做法是尽量保证源文档的可读性与处理的便捷性. 这个理念我在前面的博文中已有论述, 不再重复.