2020-07
3

攻克静态blog

By xrspook @ 10:30:05 归类于: 烂日记

上周五我才开始研究静态blog。我选定的基本是hugo,因为这个东西生成网站的速度非常快。暂时我只是在本地操作。一开始的时候我不知道那个生成网站的命令窗口必须一直开着网站才能浏览,关掉的话就开不了了。之所以不了解这个,大概我还没研究过hugo的原理。之所以我在本地测试WordPress的时候可以一直开网站是因为虚拟的那个东西其实一直都常驻我的电脑。同样是本地测试,静态网站的生成速度以及网页打开速度比WordPress快非常多。如果只是几篇文章,生成网站的速度是毫秒级的,基本上就是一眨眼的功夫。昨天我测试了,生成200多篇文章的网站,也非常快,只需0.5秒。但是,如果网站有9000多篇文章呢,到底需要多长时间生成?这个我还没测试出来。因为我那9000多篇文章还没有完全符合的hugo框架的要求。

要用Hugo建立静态网站,如果是从零开始,当然很简单,按照他们的规则去写就可以了,但对我来说,我不是从零开始的,之所以用这个东西是因为生成速度快,而且可以挂在免费的空间上面。因为我的老blog很多,所以我必须要找一个这样的地方。如果我仍然使用WordPress,显然就非常浪费资源了。静态网站跟动态网站最大的区别,我觉得是静态网站不自带评论功能。几乎可以这么说,静态网站如果不外挂,是无法交流的。因为我挂的是老blog已经早就不去更新了,从前那些挂着blog的BSP都已经全部没了。我会在静态blog上留下可以交流的链接,如果有需要,访客可以找到我的blog,然后留言。这样的好处是起码你还能找到我,但坏处就是,你不能在你感兴趣的那个地方直接留言。去到我的blog还得解释你是从哪里来的,这就比较麻烦。但换个思路,我把那些已经不存在的东西重新又翻出来让你见到,其实已经很不容易了。

hugo的建站不难,但是如何把核心内容转化为hugo适配的不容易。我要把XML格式的大文档转化为一篇一边的markdown文档,这个星期我都在折腾这个。我本想直接用一个python脚本解决所有问题,因为理论上这是相当简单的操作,但是我却发现能搜索的python脚本,根本不适合我。有些已经老掉牙了,用的是python 2的版本,我试着转版本,让失败了,因为我实在不知道,里面的某些操作到底在新版本里是怎么个整法。

经历XML转化为另外一种格式的XML之后,我对XML这个东西算是有点了解了,我个人觉得输出markdown其实要比XML格式互转简单一些。XML互转只需要输出一个文件,但是markdown要生成无数个文件。python的操作之中,我最生疏的就是文件处理。输入输出那一章书我觉得自己根本没毕业。现成的python脚本无法满足我,我得自寻出路。幸好有一个叫做html2text python模块拯救了我,这个东西解决了从html到markdown的转换,所以正文最核心的东西的转化已经不成问题了,虽然里面还有一些说不准什么时候会出现的状况,但总体来说效果不错。XML的格式转化如果有一些我不想转义的东西,我还能用cdata把那些都圈起来,圈起来以后就没烦恼了,但是用markdown文件在hugo建站,必须有一个YAML的开头,而那个东西是有严格的格式限制的。篇名、分类和标签都必须严格符合这些要求。因为我的网址输出用的是python的时间戳,完全是数字,所以没烦恼,一开始的时候,文档的文件名我用的是时间加篇名,但因为片名的幺蛾子太多,所以,我选择了用纯粹的时间,单位精确到秒。如果不是手动设置过时间,不会发生重复。接下来我需要做的是整一套替换列表。把里面严格限制不让用的东西全部整理一遍。这样才能保证hugo的网站里能生成了我的全部东西,而不会有些不合规则的直接被屏蔽掉。WordPress没有这种烦恼,顶多出来的东西乱码而已,只要我把可能乱码的东西全部cdata。简直爽歪歪。之所以可以这样,是因为我把数据导入到WordPress的时候,软件默认把我不规范的东西规范化了,现在这个步骤,我完全得靠自己。

虽然现在我生成的文件还不能100%的符合hugo的要求,但从完全不会到可以生成,而且大多还是合格的,能做到这个我已经很满意。

8 条评论

  1. 成功被我带入这个坑里了?欢迎🤝

  2. 使用hugo生成静态博客,我是使用的VSCode来控制版本代码,但写文章还是喜欢用typora。这两个软件Win和linux都能使用,而且很方便。当然,这一切变的如此轻松全部依赖git。

    • 你试过生成有9000多篇文章的静态博客吗?反正我家的64位Win 7内存和CPU崩溃了。(8G内存)还有我家不知道什么鬼电信网络,git在网上连下载都无能。md对我来说最重要的不是如何编写和用什么编写,而是如何把其它东西转换为md,包括yaml的开头。文章本身,我向来是以txt保存,以Notepad++搭配坚果云编辑及保存,无需格式,内容是我的核心所在。

      • 9000篇肯定是没有做过测试的,不过有大佬说问题不大。出问题的地方往往可能不是文章数量本身,而是相应的代码模板冲突,这在日常使用中经常会发现拖慢生成速度。所以,我觉得难点就在主题代码匹配上面了,比如hugo旧的版本与新的版本之间会有一些功能上的差异,hugo本身没有问题,问题就在怎么让主题去适应新的版本,或者不升级。
        关于git,我是日常挂代理上网的,所以基本无忧,我家直连github也是不太行,其实你可以直接在VPS上使用git建立仓库的(不用担心备份,反正本地也是有的)

        • 那些老博客从前是挂BSP的,现在BSP都没了,我也不打算在上面花钱了,所以会找一些免费的地方。那9000篇东西,在我另外一个64为Win7,也是8G的电脑上生成只需19秒,但家里这个却需要360秒以上,差别还是很明显的。即便生成只需19秒的电脑,用浏览器打开测试的时候仍然会卡。两台电脑的站点配置完全一致。

          • 可以的,反正是旧文章存档,生成静态网页完毕打包上传服务器提供访问就是了,在你现在WP的子目录应该也行。

            • 老博客的文章数量多,正文、标题、分类、标签的写法都五花八门,要确认内容适配很不容易。

有话要说

XHTML: You can use these tags: <a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <s> <strike> <strong>

© 2004 - 2020 我的天 | Theme by xrspook | Power by WordPress