hexo建站程序

hexo是一个静态网站生成器,可直接把网站内容以html页面生成好。不同于动态网站,在你访问的时候由服务器端生成好html页面然后发送到客户端。

类似于hexo这样的网页生成器还有hugo,但hugo的效率可比hexo高多了,要是有上百篇文章的话,hexo生成要等上十来秒钟或者更久,而hugo只需两三秒钟。

虽然hexo比不上hugo的效率,但hexo的主题可比hugo多太多了。一般玩博客的个人站长,在最初期90%都很重视主题,不管是动态博客还是静态博客,无一不是如此。

因此造就了主题丰富者更容易受到用户青睐,至于内容,长期坚持写的也寥寥无几。就拿自个来说,都有三个月没有更新过了。想来成年人的世界,要坚持一件兴趣不高或者没有兴趣的事情,是太不容易了。

hexo主题更新

静态博客不比动态博客,更新主题什么的相对麻烦。这个麻烦是指静态程序得手动更新博客主题的配置文件,如果主题作者改动较大,或者你自己N久没有更新主题,可能会遇上不少麻烦。

动态网站如WordPress就比较好办,因为动态网站都是带有数据库系统的,很多东西如站点标题,网站描述等,都是写入到数据库中,更新的只是程序文件,对比静态网站较为方便。

而静态网站是没有数据库的,一切都是在本地生成好了上传到对象存储即可使用。因此在更新主题的时候,如站点名称,网站描述这些都是在主题配置文件中,需要你去修改的。尽管hexo带有主题配置文件_config.yml和站点配置文件_config.yml,依旧免不了逐字逐句去修改配置文件。

hexo版本

所以说静态网站更新主题是一件想对麻烦的事情,同样麻烦是还有静态网站生成器的程序,比如我现在用的是hexo4.0,现在最新版是hexo4.21,差别倒是不大,如果你是从2.x的版本直接升级到4.x的版本,夸度较大,可能还会面临其他问题,而如果这个时候你使用的主题作者已停止更新,可能会造成不兼容,还得更换主题。当然这个问题,动态网站也是存在的,比如php5.6升级到php7.3可能就会造成旧版主题不适配的情况。

第三方评论系统

我已经大半年没有更新主题了,其实时间也不算长,尽管此主题作者新版本改动了页面布局,似乎更美观。但如上所述,更新主题过于麻烦,因此我没有任何更新的动力,而且自己也过了那个折腾劲的年龄段,精力着实有限。

但最近问题出现在第三方评论系统valine,第三方评论系统无法正常留言。虽然本站文章内容少,至今也没一个留言的,但不能使用总感觉不爽。自己又不是搞开发的,也不懂是哪里出问题,摸索了大半小时后感觉可能是主题的问题。

情况大概是这样的,LeanCloud可能更新了某些设置或者链接不可使用,导致某个链接不能正常加载。于是我想着不更新主题,直接更新valine评论系统,结果发现问题依旧,而valine在4月26号有过更新。因此怀疑是主题没有更新造成的

我也不清楚是什么时候出现这个问题的, 感觉也就一个月左右的事吧。于是更新了主题,结果发现问题依旧,再看主题更新时间为4月11号,故此这个问题只能等作者更新解决。

晚上自己又多测试了几遍,排除了主题问题,而是LeanCloud华东节点引起的,然后想切换到华北节点,结果发现要验证手机号,验证好手机号后创建应用又需要实名认证,这个就有点烦了,万一实名认证又不能搞定呢?为了保险起见,我单独注册了个国际版的LeanCloud,结果再次验证手机号后不需要实名认证,本地测试发现tab.avoscloud.com已经改为us.avoscloud.com,那就应该是OK的。

我在看别人用的这个评论系统发现加载的都是avoscloud.com,说明就是华北节点,而我之前创建的是华东节点,因此导致这个问题,tab.avoscloud.com证书过期都没人处理。

后发现是域名更换了,从https://tab.avoscloud.com换到https://tab.leancloud.cn,好吧!而现在却又可以访问此域名并且还能登录,不知道为什么要搞这一下。

也不想把valine更换为来比力gitalkdisqus等第三方评论系统,主要是因为valine评论比较方便,甚至都可以不用填写邮箱,而另外一些要不就需要账户登录,要不就在国内访问不稳定。另外valine可结合LeanCloud使用,评论数据还在自己手中掌握。

后面发现主题作者新增了迷你版的valine,启用这个倒是没啥问题,但看页面请求数达到了60多个,尽管很多都是表情图片的请求数,倒是很想把表情给禁用掉,无奈又不懂JavaScript最后决定取消评论功能 既然解决了评论问题,那么还是保留此功能吧。

2020年09月23日,国际版的域名us.avoscloud.com在国内外均无法ping通,leancloud的域名总是换来换去的,太影响体验了。看leancloud官方的回复是在5月份的时候已经说us.avoscloud.com是老域名,未来计划下线,那么valine应该在此后就更新一版,也就不会有这么大影响了。

最后自己对Valine.min.js文件做了修复,替换域名为console.leancloud.app即可。

2021年12月18日我才发现,leancloud国际版的域名又变动了,估计在11月底应该就变动了,只是近来都没有注意,也没那么多时间精力去留心。解决的方法倒也不难,把数据导出,用国内的版本即可,但国内版本需要实名制。

故此,另一个办法就是配置主题文件_config.yml中的serverURLs:字段后添加域名,域名为https://leancloud的AppID的前8位字符.api.lncldglobal.com,如果你的主题配置文件没有这个字段,那么还需要修改主题源文件,一般为serverURLs: '<%= theme.valine.serverURLs %>' ,至于写在哪个文件中,就视主题而定了。如果还不行,那么考虑一下是不是主题引入的av-min.js版本太老了的缘故。