一、需求

wordpress是我目前用过的最好的CMS之一,丰富的插件和主题基本可以满足任何常见场景的web网站需求,不过其需要用到动态显示、需要数据库,每年需要购买服务器资源,每年折腾这么一次实在抗不住。所以让写作回归写作本身,准备尝试下静态化网站,通过服务器、云对象存储或github pages\netlify\vercel等去托管,这样访问速度也会更快。

二、SIMPLY STATIC

首先想到的还是最继续使用wordpress,使用SIMPLY STATIC插件实现全站静态化,再托管到其他地方。这样我只需要在我本机搭建下wordpress,每次更新后再把静态内容更新就可以了。

simply static

如上图所示,测试并不如人意,2千个左右的页面,加上tag和翻页等,共9千个pages,而实际静态化需要11个小时左右,在更新内容后,发现其并不能增量更新,而是又重来一次,显然这太让人崩溃了。所以该方案被否决掉。

三、WordPress to Hugo Exporter

再次尝试换用 Gohugo 静态站,首先安装 wordpress-to-hugo-exporter 插件,通过该插件导出 wordpress 的内容。

安装到 /wp-content/plugins/ 目录后,执行如下命令:

1php hugo-export-cli.php

导出文件会保存为 /tmp/wp-hugo.zip 。该文件的post目录里存放的就是我们对应的站点文章内容,类似如下:

 1---
 2id: 8439
 3title: OpenAI人工智能应用场景
 4date: '2022-12-20T01:42:14+08:00'
 5author: admin
 6layout: post
 7guid: 'https://www.361way.com/?p=8439'
 8url: /openai-application-scenarios/8439.html
 9categories:
10    - 大数据/AI/ML
11tags:
12    - AI
13---
14
15### 一、简介
16
17…………正文内容

导出内容保持原有的 tag 和 categories格式,还是不错的。增加个主题就是本地预览和静态站点发布。

四、WordPress to Jekyll Exporter

Jekyll 是比较早的静态站程序了,当前github pages 默认支持的还是 jekyll。同样的,先安装 wordpress-to-jekyll-exporter 插件,安装完成后可以在 wordpress 的 console 管理界面进行导出,也可以通过命令行的方式导出,这里选择以命令方工导出:

1php jekyll-export-cli.php > jekyll-export.zip

导出的文件格式内容如下:

 1yang@yang:~/jekyll$ ls
 2about-me.md  _config.yml  donate.md  _drafts  edu.md  onlinemanual.md  sample-page.md  sitemap.md  wp-content
 3yang@yang:~/jekyll$ cat _drafts/ssh自动补全.md
 4---
 5id: 3824
 6title: ssh自动补全
 7date: '2014-09-25T00:49:19+08:00'
 8author: admin
 9layout: post
10guid: 'http://www.361way.com/?p=3824'
11permalink: '/?p=3824'
12categories:
13    - 未分类
14tags:
15    - ssh
16---

格式和上面 hugo的格式差不多。

五、问题

测试发现使用静态网站生成程序去生成站点内容时有两个问题有点难搞,一个是站内搜索,一个是评论系统。

  • 搜索方案可以选择的有:Algolia、Bonsai、Fuse.js 、lunr等;
  • 评论系统可以使用的方案有:Disqus、Utterances、Valine、Waline、Twikoo、Gitalk等

当然说起来简单,实际配置过程中还是比较繁琐的,如果预算充足,wordpress还是最好的选择。