因为工位的电脑没有hexo,只能用飞书的云文档来记录日常的心得,但是那太琐碎了,想要整理到一起的时候还是不够舒服,所以又自然而然地想到要把博客移植到工位的电脑去
这种事挺费力的,我也不知道为什么。就像上次给工位的电脑重装系统,不是很简单的事情吗,可实际上就遇到了很多问题——用了他们的ventory启动盘,结果一直遇到卡在系统安装的界面上,进度条不动,反复排查就半天过去了,最终也没找到问题所在,换了wape做启动盘,一下子就好了
很多事都这样,在底层不出错的情况下,其实是简单的不能再简单的事情,问题就在于底层万一出错了怎么办?
博客的移植只需要以下几步:
1.安装git,去官网下载并配置好环境变量,一般来说是需要把git下的cmd文件夹放进path里,确保git.exe这个程序能够通过环境变量找到。配置好后,右键菜单应该会多出一个git bath here和git gui here
2.安装nodejs,去官网下就行,环境变量也配一下,找一下它的module文件夹,加到path里,命令行输入node -v和npm -v都能输出对应的版本信息即可
3.安装hexo,输入npm install -g hexo-cli,安装好之后hexo -v应该能输出版本信息,找个博客文件,启动hexo init
4.移植之前的scaffolds,themes,source和_config.yml,package.json
5.启动hexo s
看着也很简单吧,实际上踩了很多坑,有些坑甚至现在都还没弄明白为什么
首先安装nodejs,它其实类似于python,python安装的时候你想要用它的解释器,你得把python.exe所在的文件夹放到环境变量里,那么你想要用pip呢,你就得把python目录文件下面的scripts文件也放到环境变量里,而用pip下载的包就会在python目录中的site-package文件夹
nodejs的环境也有类似之处,npm就类似于python的pip,只不过nodejs安装的时候,也会像python一样,自动的把node和npm两个程序所在的目录放进环境变量中,从而方便直接使用
这里容易踩的坑是hexo是对node的版本有一定要求的,如果不小心按照了过于落后的版本,就得重装,自动设置的环境变量容易引发一些问题……比如npm装的包找不到了之类
如果不想把node装在C盘,也不想让node把包安在C盘,就需要手动设置一下node安包的路径
1 | npm config set prefix "创建的node_global文件夹所在路径" |
之后安装的module就会通通进入node_global下的modules里
安装包是用的npm install -g命令
安装hexo的时候容易遇到的问题是:安装好了无非输出hexo -v,这需要找到hexo的安装位置,把该位置的路径放进path
如果不放,只能用npx hexo 这种方式来调起hexo,有点类似python -m
还有一个至今没想明白的问题——我的node等文件都装在C盘,hexo装在E盘,结果我在C和D盘上都可以使用hexo命令,E盘就不行
难道这玩意不能跨硬盘吗?很离谱
之后就是hexo的一些主题和差件,这些都得重新下载一下,然后在blog文件夹里用npm安装,比如hexo-admin,next主题等等
安装完了之后可能会提示有多少个vulnerabilities,这个是漏洞,我一开始还以为是依赖项的版本冲突,其实不用管
各种各样的坑导致本来半小时完成的事情搞了一天……
然后本来想着都完事了,还有最后一个坑等着我——打开博客发现分类和标签都是乱码!
我以为是新版本的next主题解析中文有问题了,或者是新next不认识旧next的设置了,先是重新生成了一下那些页面,没用
然后我耐心地翻了一下,发现分类是显示的,只不过分类这两个字变成了乱码,我猜就是next的语言问题,于是去找next的语言设置
果然要改成zh-Hans才行,改了之后发现还是一样不起作用,我又试着删除了缓存重新构建,没用
彻底疯狂了,后来转念一想,这或许不是乱码,应该是某个其它国家的语言,我就去问了一下gpt,gpt告诉我这是阿拉伯语,是博文的意思
我一下子就明白了,这不是bug,一定是我没设置好,我猜测其它人也会遇到这种问题,就去搜,果然第一个就找到了,那人说,是因为next的中文文档过期了,改zh-Hans已经是老版本的事情了,现在next的简体中文包叫zh-CN,next找不到包,自然就会默认使用第一个语言,也就是阿拉伯语了
后面也是很好地修复了这个错误
搞技术还是要有耐心啊,计算机是人造的科学,当然没有自然科学那般圆满,拿写代码来说,一个人一个样。要意识到人造的东西,充满漏洞也是必然的事情,但也得有信心才行。计算机世界没有玄学,一切现象都有其原因的,就像这个阿拉伯语一样
就当是解谜游戏吧