2020-07
18

DIY python脚本实现静态网站生成

By xrspook @ 18:05:16 归类于: 烂日记

当所有现成的方法都解决不了问题的时候,我选择了自己写python脚本转换我的静态网站。花了一个下午的时间,居然还真做出来了。之所以可以这样,是因为我是站在巨人的肩膀上的,我用的是gitbook的格式,他们的静态网页是怎么整的,我就怎么整,毕竟在一个网页里面,哪些部分的数据需要动态变化,哪些需部分的数据无需变动是显而易见的。

之所以可以这么快,另外一个原因是我有了调试的利器。这一次,我用的是VS Code调试html代码。VS Code本来就很强大,昨天更新了个新版本以后,还自动内置了自动修改标签功能,之前这个功能需要用插件实现。大概因为要用这个功能的人实在太多了,所以还不如把它变成默认支持。默认也是需要设置的,不过那就不过是打一个勾而已。VS Code版本更新来得很及时,刚好在我需要用到这个功能的时候,他们就更新了。我还安装了美化格式的插件,这样的好处是,缩进空行什么的一键完成,虽然这个东西看上去很美好,但实际上也是有缺陷的,甚至导致我都不敢用了。因为他们为了好看做了一些不该做的事,超连接给我回车分行,并且在a和href之间再加入很多缩进,这样的话,超链接就不再是超链接了。我实在不知道他们是怎么想的,显然这是一个很大的bug。帮助我最大的是一个叫做live server的插件。这个东西可以虚拟出服务器,网页就可以直接在浏览器上实时更新了。这样的好处是显而易见的,因为这样的话,网站上的超链接全部都可用了,而不需要再按一个CTRL。那种感觉就像直接是在服务器上运行了。我觉得这个效果大概跟各种脚本建立虚拟服务器静态网站差不多。那些脚本除了建立静态网页到缓存,还开起了虚拟服务器。现在,我自己写静态网页,live server开启虚拟服务器。

从前用记事本或者Notepad++,写html的时候,标签配对从来是个大问题,虽然写好了以后,他们会提醒你标签到底配对到哪里了,但在写的时候一点都不智能。之所以这样,可能因为我一直没有去找Notepad++的相关插件。VS Code自带了智能配对的功能,当你写完半边标签以后,后半边自动跳出来了,而且标签你不用写全,写一部分他们就会提醒你,你即将要写的是什么,然后选择就可以了。这样的好处是,标签的配对再也不会出状况,而且标签也不可能写错了。当时我是在看某个介绍VS Code的视频的时候知道这个Emmet功能的,也正是因为这个功能吸引我,那天晚上就下载了个便携版。我不知道便携版和安装版有什么不一样,反正后来,VS Coe用得越来越多,安装版是必须的。如果从前就有VS Code,大概我的很多工作就不需要走那么多的弯路了。但话说回来,现在我写的是静态的网站,如果那是动态的,估计就没那么容易了,但是,就标签配对来说,VS Code还是相当棒的。

现成的各种方法用几个小时,甚至根本生成不出来的电子书是静态网站,我用120秒就搞定了。前提是我们的数据源不一样。我配给他们的数据源是9000多个markdown文件,而我自己使用的数据源是一个20多MB的XML文件。可以生成我梦寐以求的静态网页当然是件好事,但这些静态网页加起来,居然有接近8GB的大小,显然这就很逆天,没有哪个地方能供得起这样的数据。根本原因在于我的每一个页面里面都有一个800多KB的目录列表,排除那个目录列表以外,实际上每个网页文件的内容大都只有不到10KB。所以摆在我面前的是,我不能让那个目录存在于每一个页面,我需要做一个目录页,也就是归档页,我要把那个归档页的链接放到现在的目录那里,而现在的链接则放在归档页里面。只放全部文章的归档页又好像非常空旷,所以接下来,我得考虑把从前的点点分类重新带回。最终的目录那里会有全部文章归档,以及各个分类的归档链接。这个过程挺绕,是我让那些分类消失的,现在我又要把那些分类带回来。最简单的方式是我修改点点到wordrpess的转换转换,让那些分类重新回到分类那里,然后下一步的wordpress XML转化为静态网页文件才会流畅。

python已经成为了我的大杀器,我要学更多,让这杀器更厉害!

2020-03
20

偶遇VSCode

By xrspook @ 9:27:33 归类于: 烂日记

昨天晚上但我吃完饭回到宿舍,拖完地要去办公室之前,我跟书桌上的外婆说,今晚总算没那么多板上的任务,我会早点回来。结果我还是很晚才回宿舍,甚至比平时还要晚,因为我洗完澡的时候已经超过了晚上11点。昨天跟之前几天不一样,因为昨天单位有卸船作业,所以我还得在手提电脑上忙一阵单位的事情。我很痛恨自己的拖延症,跟之前几晚相比,昨晚我的确是很闲的,但正是因为我很闲,所以我就去看了一下自己订阅的东西,结果就发现一个,很好玩的跨平台,出自微软,轻量级的编程软件。之前基本上可以这么说,我没用过编程软件,一直用的最多的是Notepad++,但那只是个代替Windows记事本的工具。的确很便携,而且在处理代码的时候也有高亮显示,字体大小和格式很自由,体积很小,我已经用了很多年,一直觉得很爽,因为用那个东西,有后悔药。即便我按了保存,还是可以后退很多步,至于一共能后退多少,我还真没研究过,装上插件以后,可以有跟多形式的自动保存,比如当光标离开软件以后,东西就自动保存了。又或者我可以设置,多少时间就保存一次。写代码这种东西,最慌的就是改完以后才发现,没改之前更好,但是软件不能后退,没有后悔药。跟Office软件比起来,Notepad++的后悔药好用多了。因为Office软件一旦按了保存,之前的东西就后退不了了。而且Notepadd++打开文件的速度非常快,即便是很大的数据文件也没有问题,比如说,几十MB的XML文件。为什么会有那种东西?其实那个就是我WordPress导出的数据,是我10多年来blog的日志数据。我不知道如果那些东西拿去出书的话,那本书得有多少页。其实我还真有想过会不会有一天无聊地把自己的blog拿去出书。但为什么要出纸质版的书呢?电子书其实也行。把我的blog静态打包下来,就是一本电子书。

回到Notepad++加上,虽然那个东西可以用来写代码,但跟专业的写码软件比起来,还是挺不方便的。虽然其实Notepadd++也有不少插件,但是跟别人的插件比起来,好像还是欠缺点什么。如果纯粹是文字,不是代码的话,我觉得它非常优秀了。比如说我经常用来核对字幕哪里修改了。之前我并不觉得Notepad++不适合用来写代码,直到昨天我看到了那个VSCode以后。在那里保存一个后缀为HTML的文件以后,你只需在那里输入一个东西,之前之后的那些格式全部都自动生成了,而且全部都已经标记好颜色,做好了缩进。那个东西自带了emmet功能,快速写码变得易如反掌,因为只需要写一点点东西,一大串成对的代码就出来了,于是,妈妈再也不用担心我丢三落四,因为成对的代码会自动出来,代码可以出来,我觉得自动缩进不会有啥状况。一直我都在搞blog,我一直都只是在做前端的设计,看到这些功能以后,我简直震惊了,用这个东西写码,只要你有思路。只要你有灵感,写一个网页相当快捷简单。不过绝大多数时候,我觉得前端设计还是需要一些脑洞的,比如说你根本没想到可以那样做的话,你怎么可能写得出来。

因为看到那个让我兴奋的软件,而且还是便携的,直接解压使用,无需安装(但是很大,解压后200多MB),所以洗澡的时候我考虑过要不要再写一个WordPress模板,那个blog用来存放我从前做过的那些blog。那些不是我主站的blog,比如说BLF的、JEA的、以及ADR的。那里的东西有些不是我的,但是很大一部分都是我磨出来的。曾经,我在那里倾注了非常多心血。那是我曾经的兴趣所在。那些东西是我人生的一部分,但是,他们以前的家已经消失了。BlogBus没有了,点点也没有了……我觉得我应该让他们重生。

写一个网站的前端需要灵感,但网站的核心是内容。首先,我要考虑怎么把BlogBus和点点导出来的数据转化为WordPress可以理解的内容。

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