2023年4月折腾Hexo和Node
2023年4月折腾Hexo和Node
记录一下从白板开发机开始安装Hexo需要经历的事情
build-essential
和git
之类的肯定就不用提了,再白板也是开发机
安装nvm
首先,在Linux下,“不要通过系统包管理器安装一个包管理器”。
我想gems那边的教训已经足够深刻了。
文章 Resolving EACCES permissions errors when installing packages globally 也提到了
If you see an EACCES error when you try to install a package globally, you can either:
Reinstall npm with a node version manager (recommended),
or
Manually change npm's default directory
谨慎才能保护好开发环境
那就先装一个nvm罢。
下载并安装nvm
下载nvm
1 | wget https://raw.githubusercontent.com/nvm-sh/nvm/v0.39.3/install.sh |
如有必要,注意打上“网络环境稳定维持器前缀”
安装nvm
1 | bash ./install.sh |
这其实是一个含有下载的脚本,因此如果网络环境不佳,这一步也需要做好网络状况不佳情况下的处理工作
设置源
To use a mirror of the node binaries, set $NVM_NODEJS_ORG_MIRROR:
export NVM_NODEJS_ORG_MIRROR=https://nodejs.org/dist
To use a mirror of the io.js binaries, set $NVM_IOJS_ORG_MIRROR:
export NVM_IOJS_ORG_MIRROR=https://iojs.org/dist
也就是说,为了一个小程序,我还得去改一下我每次开机都会自动执行一遍的.zshrc
,不知道为什么要这么设计
那就改吧
打开.zshrc
在最下面一行添加注释
1 | # setting NVM mirrors (bon-NO-jour) 2023-04-17 |
然后添加内容
1 | export NVM_NODEJS_ORG_MIRROR=https://npmmirror.com/mirrors/node/ |
安装Node
鉴于Node.js 版本限制说了
我们强烈建议永远安装最新版本的 Hexo,以及 推荐的 Node.js 版本。
那我不仅hexo要装最新版本,node也装最新版本
老夫装环境,不管什么稳定性,最新版,给我装! (bushi)
1 | nvm ls-remote |
2023年4月17日,node的最新版本是v19.9.0
,最新版给我装!
1 | nvm install 19.9.0 |
回车!!!
然后就装好了
下一步是给npm换源,找一下,
1 | npm config get registry |
和
1 | npm config set regisry https://whatisthatidontknowandyoudontcopy.unsc |
分别是查询当前镜像设定和修改镜像设定的命令,目前国内最大的npm源那肯定是原淘宝源现npmmirror.com
顺便提一下,首页写着
📢📢 「重要通知」原淘宝 npm 域名即将停止解析 📢📢,
抄过时教程抄成taobao.org
的记得改一下源
那就很简单了, 1
npm config set registry https://registry.npmmirror.com/
1
npm config get registry
更新npm
更新npm的命令非常地递归
1 | npm install npm |
作为一名工科男我觉得太酷了,很符合我对包管理器的想象,科技并......
禁止释放何武器!!!(捂嘴)
安装Hexo
参考 安装 Hexo 不难发现,只需要一条命令
1 | npm install -g hexo-cli |
对了,这种情况下,npm包的位置在哪?
查了一下你抄我我抄你的草台教程,都说在/usr/local/lib/node_modules/
实际上如果按照推荐方式安装nvm再安装node的话就不是这样的,用一下whereis
命令就知道了,当然,前提是这个路径已经注册到环境变量里面了,不然用whereis
是查不出来的,这里权当满足一下好奇心
1 | whereis hexo |
所以很显然,通过nvm搞起来的环境里面,npm包的安装位置是~/.nvm/version/node/v.x.x.x/bin/
出于好奇心顺便查了一下我的$PATH
,不知道是从哪混进来一个/snap/
,好在去查询了一下根目录,发现没有/snap/
这个目录,最终也并不知道是被哪个夹带进来的
准备建站
由于不同的主题配置方式可能有所不同,所以先确定主题,再进行下一步配置
在Themes|Hexo挑一个喜欢的主题
配置Volantis
我只关注美观和功能(比如支持搜索)两个部分,所以选择了Volantis
那么接下来就是转到主题配置网站上,跟着教程修改_config.yml
文件了
(三天之后)然后改了三天,发现这玩意真难改,
占用老子写文时间,焯!🤡
改到一半试着跑了一下然后启动server,发现视觉效果还行,但是这报错那报错,标题还全都是日期(日期还都是前天)
不是说人家Volantis做得不好吧,其实配置文件写得挺详细的,就是感觉我和这东西的相性不太好,再改配置文件下去拖延症就要犯了,遂换之
老规矩,先明确自己的需求
我需要达成的目标虽然不太多,但好像还挺全方位的(
我想只负责写markdown,不想操心别的事情,这个模板需要快速根据markdown生成html网页,最好是一键生成
对中文使用者友好,最好是支持万国语言,打两个日文和俄文字符不要宕机
支持标签和搜索功能,方便我出门在外用手机解决问题的时候找文章
优良的数学公式渲染能力,我的博客现在已经有一些数学公式要渲染了,将来估计还有更多
明了,不要花里胡哨(或者不花里胡哨但是啥都没有半天显示不出来那种)以至于找不到文章在哪
开箱即用(尽量,我稍微有点技术傍身,但不多)
美观(尽量美观,做不到美观的话可以明了,不要太难看就行)
尝试nexmoe
之前配volantis配得焦头烂额,然后到处找教程,然后看到了Hexo搭建博客 - nexmoe主题
那还用啥自行车啊,换!
于是去尝试用了hexo-theme-nexmoe
参考这个_config.yml,挑挑拣拣地配好自己的_config.nexmoe.yml
文件
(真是给作者mua一个)
配置数学公式渲染功能
这个步骤花费了我很多时间,真的是受够了
先后试了hexo-renderer-mathjax
hexo-math
,效果不能说是不太理想吧,只能说是啥都渲染不出来
期间还找到了许多草台教程,又是要换渲染引擎,又是教我去修改node_modules\kramed\lib\
里面的文件,我看着要改的文件开头那行
1 | /** |
就犯嘀咕,这东西真的能改吗???
也可能是我比较蠢配不好设置吧,反正是不太会用这些玩意,那就让它爪巴吧
1 | npm uninstall hexo-math |
还有那个数学公式都渲染不明白的蠢蛋hexo-renderer-marked
也给我爬
1 | npm uninstall hexo-renderer-marked |
不换功能就换工具
最后找来找去,还是找到好东西了
全后端渲染,不需要任何前端支持,
好东西!真是好东西!
README里面写得清清楚楚,明明白白,一步一步照着来就可以了,灰常完美!
照着下面的推荐,还顺便装上了hexo-renderer-pandoc
,只不过这个库需要在本地计算机上安装一个pandoc
,还好ubuntu apt
的默认源里面有,直接安装就可以了。
把服务器在本地跑起来,页面倒还不错,那个矩阵渲染得漂亮啊,和我在vsc预览界面看到的几乎一模一样啊!
代码高亮
不得不承认,这环境肯定是哪里配错了,总之代码高亮并没有实现,至少实现得不是很漂亮
(对照着Hexo和nexmoe文档折腾了半天,甚至切换到了hexo-theme-next又切换回来之后)
那就没有实现吧,我不管啦!
然后下来就是一个markdown接着一个markdown地痛苦地修改文章格式了
正在做这件事,一袋米要抗几楼!
一袋呦!
Knightana
2023/04/19