超级纯文本转换为HTML的工具Markdown Extra

和[JunChen][]一样,我也不喜欢所见即所得的编辑器(WYSIWYG,What you see is what you got),虽然他们能够实现大部分“文字处理”工作,但是对于像我这样以技术性blog为主的人来说,经常要贴代码或者是一些特殊的文本,离开对HTML代码的直接控制是不可能的。并且大部分WYSIWYG所生成的HTML代码可读性都比较差,所以就养成了直接写HTML代码的习惯,虽然麻烦些,但是我写的每一个字符都是按原样存储的,每个回车,每个<都不会被编辑器改变。

如果你曾经参与过[WikiPedia][]的编写,肯定会被它简明的编辑方式所打动,[]就是链接,==就是标题等等,如果平时写文档也这么方便就好了,呵呵。开源世界的美妙就在于你的大部分需求都有人去解决,[Markdown][]就是这样的一个工具,你按照特定的语法书写纯文本文件,它就可以将其转换为标准的html代码。虽然不一定能写出让领导满意的格式公文,用来写blog或者文档说明书还是足够而且方便的。最关键的是,即使不转换为html代码,这种标记形式的txt纯文本文件可读性也是非常好的。

[Markdown官方网站][markdown]上有它的[基本语法][markdown_syntax],我还找到了一份[jjgod翻译的中文版][markdown_cn],[Wikipedia][wikipedia_markdown]上也列出了各种语言的[Markdown][]实现——由于[Markdown][]只是一种对格式的定义,所以不管用哪种语言都可以写出解析这种语法的工具。

但是相对于wikipedia的语法来说,markdown的功能相对少一些,所以[Markdown Extra][]就出现了,它不仅用php语言实现了[Markdown][]语法的解析,而且还添加了一些额外的扩展,同样也可以方便的嵌入各种cms,比如wordpress。[Markdown Extra][]的主要改进有:

  • 可以在行中任意地方嵌入任何HTML代码,只要行开头的缩进不超过3个空格。
  • 可以在table或者div等“块”元素中使用标记语言。
  • 可以为标题创建id,这些id可以像链接的id一样使用,方便在标题之间跳转。
  • 支持表格。
  • 支持定义列表。
  • 支持脚注,并且可以在脚注和正文之间来回跳转。
  • 支持缩写。
  • _在词中使用不再代表加重。
  • 可转义字符中增加了冒号:和管道符号|。

可以看出[Markdown Extra][]相对于原版除了完全的兼容,还更加灵活和强大了一些。另外虽然[Wordpress官方不支持Markdown或者Textile标记语言](http://faq.wordpress.com/2006/04/20/markdown-textile/),[Markdown Extra][]本身就是按照wp的插件方式设计的,安装非常简单,基本上就是三步:

  1. 下载,并把markdown拷贝到wp的wp-content/plugins/目录。
  2. 在管理页面激活Markdown插件。
  3. 在发帖时要关闭可视化编辑功能,有了Markdown,还要他们作甚。

现在,[Markdown Extra][]就可以作用于wp的文章和留言啦。

通过简单的使用,我发现[Markdown Extra][]发掘了txt文本的真正威力,简单、实用,无论是源文件还是生成的HTML文档,格式和可读性都非常好,尤其是在*nix这些经常要用到字符界面的操作系统中,更能体现出纯文本的优越性来。

另注几点:

使用了*[HTML]: Hyper Text Markup Language之后,调用会出现Segmentation fault错误,已经向作者反映了,不过贴到blog里好像又可以了。

作为wp的plugin使用时,对于我原来使用纯HTML编写的文章,由于包含很多代码或者输出片段,格式会乱掉,要是能定义哪篇文章用Markdown语法,哪篇文章不用就好了。我目前的办法是手工修改markdown.php文件,把第88行的:

remove_filter(‘the_content’, ‘wpautop’);

注释掉,恢复wp自己的段落划分功能,和markdown一起使用就没事了。当然在使用<div>贴代码的时候,<div></div>都要占用单独的一行才行。如果你发现还有其他文章格式乱了,请告诉我。

还发现了另外一个更强大的txt转HTML工具:[texy][],居然把css什么的功能也作进来了,不过好像刚刚起步,还不是很成熟,支持的应用和各种语言的实现也不多,对unicode的处理也不尽人意,暂时观望。

*[HTML]: Hyper Text Markup Language

2 thoughts on “超级纯文本转换为HTML的工具Markdown Extra”

Leave a Reply

Your email address will not be published. Required fields are marked *