对于标题的解释:
昨天在某群里我说道:“有点想换Typecho了。”
的确,2010年是我刚开始使用独立博客的时间。那时,我第一眼看中的就是emlog。虽然之后的时间里面写博这件事情并没有一直坚持下来,但使用emlog的习惯倒是一直坚持下来了。至于为什么昨天会说到想换成Typecho,那是因为我主要是看中了Typecho可以使用Markdown写作的这个优点。
在网络上我找到了这样的一段描述:
Markdown的语法简洁明了、学习容易,而且功能比纯文本更强,因此有很多人用它写博客。世界上最流行的博客平台WordPress和大型CMS如joomla、drupal都能很好的支持Markdown。
显然描述是十分正确的。我想,使用Markdown,不仅是写作时,日后的修改,也能够方便很多。
“叛变”工作很快地展开了。我拉下了Typecho的代码,本地搭起测试环境,安装……一气呵成之后准备开始转换数据。我甚至有了写一个emlog转Typecho数据转换脚本的想法——然而最终终结了。为何这么说:我想,人靠衣装马靠鞍呢。头疼的转换工作开始前是不是先弄个好看点儿的模板充一下门面。在Typecho的社区里转了一圈,弄了几个模板下来,调整了不少,还是很不满意。“叛变”就此作罢。我认为模板是主要原因,本地环境不是很好使当然也有些关系。
纵使没用上Typecho,对Markdown的追寻并没有停止。emlog难道不能支持Markdown?显然是不可能的。秉承将折腾精神发扬光大的信念,emlog第N次定制——开始了。
Markdown解析支持功能实现得异常之快。我们采用PHP的Parsedown
类来解析。打开官网,可以很便利地取得源码。我们将源码传至emlog的include/controller
目录中。这里我们假设Parsedown
类文件名为Parsedown.php
。编辑同目录下的log_controller.php
文件,在Log_Controller
类前包含Parsedown.php
文件,即在第7行前加入:
<?php
include 'Parsedown.php';
接着,找到extract($logData);
并在其后面加上:
<?php
$log_content=Parsedown::instance()->parse($log_content);
这时,日志页和页面页的输出内容就是正确的HTML了。列表页的处理相对特殊,我们需要进入对应的模板目录,打开log_list.php
文件,找到$value['log_description']
,替换成Parsedown::instance()->parse($value['log_description'])
。大功告成。 后台编辑器是准备折腾一下的,一直没找到比较好的编辑器,也没有再折腾了,毕竟那会儿比较晚了。网上搜索一下Markdown编辑器可以找到大把大把的在线编辑器,也都比较好使。写完了,复制过去就行。
理所应当地,这篇文章是使用Markdown书写的。