标签归档:静态博客

不建议选择Jekyll等静态博客

上次在介绍WordPress博文转换成Jekyll和Farbox博客需要的Markdown格式一文中,我说过,不建议普通博客主选择Jekyll这样的静态博客生成器,后来有博友抱怨起WordPress的不是。关于这个问题,我其实在“工具是工具、问题是问题”中也提到过。

我见过太多的人说起Jekyll静态博客的好处,我就来说说相比WordPress程序,Jekyll静态博客的缺点与不是。

用着WordPress,可以考虑随时转出到其它博客平台,但是用着其它平台,谁还能保证能转出到哪儿?比如用Jekyll的话,一堆Markdown纯文本文档能方便地转到哪去?

如果要进行批量修改博文,还有哪种方法有MySQL等数据库的方式那样方便与快捷?程序员们会说,我们可以写脚本、写程序去批量修改,可是,大部分人不是程序员,程序员用额外的手段去实现非程序员常规手段就能实现的事情,有什么意义?难道不是浪费生命?

许多人说WordPress写博客是杀鸡用牛刀,WordPress既然是牛刀,杀鸡应该很方便,一刀就将鸡杀死,如果拿个小剪子,虽然剪刀的确轻巧方便,难道没有可能要好几下?

像Jekyll, OctorPress, Farbox这些程序或服务,谁能保证它们能像WordPress这样有成熟商业模式的长远发展规划与前景?如果没有,又有谁知道能用到哪一天?有人会说,Github提供的“不限流量”的“免费主机”不会死,别忘了 sourceforge.net 这样的服务五年前不也挺火吗?谁又曾想到过Live Space, Google Reader这样的服务不也是说关了就关了,它们的后台是Microsoft, Google。Github如果关掉page功能给Jekyll有什么商业和逻辑上的问题?更关键的是,Jekyll这些程序本身都可能没有人会持续维护。

还有,Jekyll这类静态博客有两个最大的缺点:

  1. 对于普通用户,Jekyll等搭建过程实在是复杂与痛苦,充满了安装Ruby环境和Git命令;
  2. 文章一多,生成时间太长太慢,并且需要好几分钟才能看到网页效果。

这与安装WordPress不需要任何命令的难易程序不可同日而语,毕竟前者的目的是所谓的“像黑客一样写博客”……正如Farbox的开发者所说:

(静态博客)它远比你想象中要不方便

另外,博客本来就是网站的一种形式,有了WordPress等专业化程序,可以实现复杂的功能——总有些人需要一些强大的功能。即使是Jekyll静态博客最大的优点:静态网页带来的极快速度,WordPress不也能通过缓存插件轻松实现静态页面吗?

当然,我并不是说Jekyll等静态博客不好,它让人们多了一个选择,当然是一件好事,我只是说,它并不适合普通博客主,更不能以静态博客方式的出现,就说动态博客WordPress方式就不再适合写博客。

可能,下面是你该向我开炮的时候了,欢迎留下评论轻拍土木坛子……

WordPress博文转成Jekyll和Farbox博客最简单方法

最近两年来,所谓的静态博客有抬头的趋势,尤其是在程序员博客这个圈子里,大有WordPress动态博客程序就是垃圾的感觉。

如果你也想使用静态博客,比如用Jekyll, OctoPress建立博客,可能会发现建立过程并不容易。对于WordPress博主而言,博客迁移转换也不容易,官方推荐exitwp使用Git命令去完成转换。这对于不懂Git命令有没有相应Rubby程序环境的人来说,无异于天书。

WordPress导出为Jekyll的MarkDown格式

这里推荐一个很简单的办法,将WordPress格式博客文章转换成Jekyll静态博客需要的Markdown格式:在WordPress中安装WordPress to Jekyll Exporter插件。不需复杂步骤,不需运行任何命令,最适合非程序员博客主。

对于中文博客,在安装插件前需要对数据库进行操作一下(为防止出错,操作前请备份数据库)。进入博客对应的MYSQL数据库,进入到wp_posts数据表,选择Structure模式,然后找到post_name列表,点击Drop,即删除这个列表下的所有项值,如此操作后,WordPress to Jekyll Exporter插件导出的Markdown文件会以纯数字为博文名称,避免乱码和长文件名的问题。

完成以上操作后,点击此处在github上下载此插件,安装到需要转换的WordPress博客中,在“工具”栏里,点击”Export to Jekyll”,插件即会将所有博文和页面自动转换成Jekyll要求的Markdown格式,然后自动打包下载到本地电脑上。解压下载文件后,将整个文件夹放到Jekyll, OctoPress等博客文件夹中,就完成了转换过程。

Jekyll的MarkDown格式博文+FarBox

虽然上述方法是针对Jekyll静态博客,但我个人强烈建议普通博主不要选择Jekyll静态博客,相反,可以选择Farbox.com,这是一个很强大的博客平台。Farbox其实支持纯文本文件,更不消说Jekyll版本的Markdown格式。

用Dropbox账号在Farbox上建立博客后—简单得不需要介绍,将上面转换得到的Jekyll版Markdown格式博文复制到Dropbox下面的Farbox博客文件夹中(建议Farbox博客后会在Dropbox中自动生成),你的博客立马就在Farbox中生成—绑定域名等事情当然是完美支持的。

土木坛子@FarBox

作为范例,欢迎在土木坛子的每篇博文链接“tumutanzi”后面添加“.farbox.”,即:https://tumutanzi.farbox.com(支持HTTPS SSL),就会发现Farbox的美。当然,我虽然欣赏Farbox, 但土木坛子依然会坚持使用WordPress, Farbox只是用来备份而己。

Farboxb其实提供在线WordPress XML转换成Markdown格式服务,但有严重的问题:引用格式后面的标点符号会丢失。我这里介绍的方法除了iFrame语法不支持外,其它HTML语法均完美支持。另外,中文博文名称可能会乱码—系统编码的原因,需要自行下载软件批量修改文件名。

工具是工具、问题是问题

考虑网站速度的时候,估计很多人像我一样,纠结过虚拟主机还是VPS服务器。像我这种180美元的虚拟主机,肯定会有很多人觉得没有必要,还不如直接购买VPS。

我认为,高端虚拟主机好用的话可能更好。VPS太费精力去维护,也不容易维护。好的虚拟主机(通常也贵)不只是一款主机,更多的是主机后面的技术人员提供的专业服务,专业的事情就应该交给专业人员去做——除非你为了学习服务器原理。

我以前曾试图用Jekyll等静态博客方法生成博客,但发现操作起来对非程序员们并不简单。并且,纯静态页面的方法功能过于简单,虽然对于大部分写博客的人来说是足够的。

但是,用WordPress等CMS程序维护博客网站,具有灵活的功能和配置,同时利用缓存插件,又能实现网站全部静态化,大大提高访客访问速度,降低主机负担。动态网站实现静态网页速度。这并不是一个坏的方案架构。

有人抱怨WordPress越来越复杂,不适用于博客。把一个苍蝇拍变成一个高射炮,固然把事情搞复杂了,但是用这个高射炮来打苍蝇,应该比原来的苍蝇拍更厉害才对。所以,用WordPress的话,只坚持使用最基本的功能,不折腾即可。

就WordPress博客而言,完全可以做到既利用它的强大灵活功能,又做到静态化网页的轻便与快捷。因此,它依然适用于博客网站。

在主机和程序上,我们最初的问题就是为了写博客,找到合适、够用的就好。实际上,只不过是国内这种特殊情况,才需要独立的主机空间和程序。像国外,直接用Blogger或者WordPress.com的服务再绑定域名,什么麻烦都省了,没有围墙就不担心红杏出墙。

工具当然重要,但一味地追求工具,就会忘记最初的问题是什么,这就是所谓的“工具是工具、问题是问题”。

提高WordPress博客访问速度:缓存静态化网页

有时候,我也访问博友们的网站。每当网页加载速度很慢的时候,我几乎会第一时间就放弃访问,我没有理由去等待它不知何时才能打开。作为网站的主人,有必要保证网站具有够快的访问速度。

土木坛子在全世界各地的加载速度应该还不错,有朋友说在国内加载几乎秒开。这是怎么做到的呢?说来可能让你失望,我选用的香港主机,每年要180美元左右。这种高端虚拟主机提供了足够的硬件资源,足够一个小博客的访问加载实现秒开的速度。

不过,除了硬件投资外,我也从软件层面配置了一下。和大部分博主一样,我用的是CMS开源博客程序:WordPress,我的设置说起来很简单,使用WP Super Cache缓存插件将博客网页完全静态化。

WP Super Cache是个非常不错的缓存插件,很容易使用,但也有一点小技巧。具体而言,把博客的固定链接形式改成非默认后(即链接里不能带有问号,是否HTML后缀无所谓),然后启用插件的缓存功能,在高级配置选项里面,把推荐的选项都打开。如果愿意,在插件的CDN设置里还可以调用诸如七牛的免费CDN加速服务,至少可以提高图片等静态文件的加载速度。

如此操作后,所有页面在第一次被访问后都会形成静态页面留在服务器上,如果网页内容没有改变,下一次被人访问时服务器就会提供已经形成的缓存静态页面,既减轻服务器的压力,又提高了网页加载速度——至少省略了动态页面生成时间。

那么,能否再提高一点呢?可以。我启用了插件里的预加载配置,即使用预缓存功能(Preload),这个功能是指主机自动将所有网页预先访问,形成静态缓存页面。即使页面第一次被访客访问,也会得到缓存静态页面。如此以来,整个网站就相当于一个静态网站,但又兼有动态网站的功能。所有页面由网站程序通过管理数据库生成,但又实现了自动静态化。

由于静态化是通过自动预缓存实现,该过程对主机不会造成集中负载,主机CPU等开销不但不会变高,相反还会降低——主机几乎不再为访客生成页面而服务,哪怕是第一次访问。

既然搭建网站写字,就应该给访客提供良好的访问速度。资金充沛的话就使用好一点的主机服务器,无法提高硬件也至少在软件上简单配置一下。我就是这么做的,并不难,相信你也可以做到。