Blog代码重构

好长时间没有写blog了,Blog代码还是用3.1x来写的,一直想把功能写得完善一点,弄一个友好一点的后台管理面板。上周VPS也到期了,索性就关了把代码重构了。

重构也很简单,就一个发文章的功能,支持Markdown格式,简单的后台管理,评论想考虑一下使用第三方服务(之前自己写了一个简单的发评论功能 垃圾评论太多),把原数据导过来,想想Rails真方便,弄了个Scaffold搞定Post功能,权限管理使用sorcery,这些都太过简单,没什么好说的,目前还没加缓存,SEO什么的,以后有空再搞。

关于Markdown功能我想做得特别一点。一直喜欢用罗晨写的Mou,有时候记不住Markdown的语法,Mou边写边预览的效果很友好。

我也希望在后台做一个类似Mou的功能,最开始考虑是这样实现,通过ajax把Markdown内容传到后台,然后用”github-markdown/redcarpet”(最后还是用了标准的redcarpet 这个世界不应该这么纠结)解析好然后刷新到预览区,不过这个预览的效果需要很实时,如果网络不给力,那就失去了这个功能的意义。想到的办法是用JavaScript去解析Markdown,直接在浏览器端来实现这个功能,效果就像http://stackoverflow.com/回复的功能一样

找到了两个JavaScript lib:

  1. https://github.com/ujifgc/pagedown

  2. https://github.com/tanakahisateru/js-markdown-extra

测试下来pagedown不能解析Markdown的table标记,然后用js-markdown-extra做好了预览效果,对表格支持也很好,然后跟Mou做测试,效果真的很好,不过后来发现一个很严重的问题时,js-markdown-extra在解析某些中文段络时,Chrome经常卡死,不知道什么原因,近三千行的代码我也没精力去分析它,还是临时先用pagedown的Markdown.Converter.js来实现了,何况也很少在blog里用到表格。

目前还没有加上传图片功能,等做好了上张这个功能的效果图!欧了,就写这么多,比较懒了,省点时间去折腾Raspberry Pi

最后附上代码地址 https://github.com/miclle/forest-chalet