Knighthana
文章96
标签139
分类7

文章归档

2023年4月折腾Hexo和Node

2023年4月折腾Hexo和Node

2023年4月折腾Hexo和Node

记录一下从白板开发机开始安装Hexo需要经历的事情

build-essentialgit之类的肯定就不用提了,再白板也是开发机

安装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

这其实是一个含有下载的脚本,因此如果网络环境不佳,这一步也需要做好网络状况不佳情况下的处理工作

设置源

Use a mirror of node binaries

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
2
whereis hexo
hexo: /home/knighthana/.nvm/versions/node/v19.9.0/bin/hexo

所以很显然,通过nvm搞起来的环境里面,npm包的安装位置是~/.nvm/version/node/v.x.x.x/bin/

出于好奇心顺便查了一下我的$PATH,不知道是从哪混进来一个/snap/,好在去查询了一下根目录,发现没有/snap/这个目录,最终也并不知道是被哪个夹带进来的

准备建站

由于不同的主题配置方式可能有所不同,所以先确定主题,再进行下一步配置

Themes|Hexo挑一个喜欢的主题

配置Volantis

我只关注美观和功能(比如支持搜索)两个部分,所以选择了Volantis

那么接下来就是转到主题配置网站上,跟着教程修改_config.yml文件了

(三天之后)然后改了三天,发现这玩意真难改,

占用老子写文时间,焯!🤡

改到一半试着跑了一下然后启动server,发现视觉效果还行,但是这报错那报错,标题还全都是日期(日期还都是前天)

不是说人家Volantis做得不好吧,其实配置文件写得挺详细的,就是感觉我和这东西的相性不太好,再改配置文件下去拖延症就要犯了,遂换之

老规矩,先明确自己的需求

我需要达成的目标虽然不太多,但好像还挺全方位的(

  1. 我想只负责写markdown,不想操心别的事情,这个模板需要快速根据markdown生成html网页,最好是一键生成

  2. 对中文使用者友好,最好是支持万国语言,打两个日文和俄文字符不要宕机

  3. 支持标签和搜索功能,方便我出门在外用手机解决问题的时候找文章

  4. 优良的数学公式渲染能力,我的博客现在已经有一些数学公式要渲染了,将来估计还有更多

  5. 明了,不要花里胡哨(或者不花里胡哨但是啥都没有半天显示不出来那种)以至于找不到文章在哪

  6. 开箱即用(尽量,我稍微有点技术傍身,但不多)

  7. 美观(尽量美观,做不到美观的话可以明了,不要太难看就行)

尝试nexmoe

之前配volantis配得焦头烂额,然后到处找教程,然后看到了Hexo搭建博客 - nexmoe主题

那还用啥自行车啊,换!

于是去尝试用了hexo-theme-nexmoe

参考这个_config.yml,挑挑拣拣地配好自己的_config.nexmoe.yml文件

(真是给作者mua一个)

配置数学公式渲染功能

这个步骤花费了我很多时间,真的是受够了

先后试了hexo-renderer-mathjax hexo-math,效果不能说是不太理想吧,只能说是啥都渲染不出来

期间还找到了许多草台教程,又是要换渲染引擎,又是教我去修改node_modules\kramed\lib\里面的文件,我看着要改的文件开头那行

1
2
3
4
/**
* DO NOT EDIT THIS FILE
* The code in this file is generated from files in ./src/
*/

就犯嘀咕,这东西真的能改吗???

也可能是我比较蠢配不好设置吧,反正是不太会用这些玩意,那就让它爪巴吧

1
2
npm uninstall hexo-math
npm uninstall hexo-renderer-mathjax

还有那个数学公式都渲染不明白的蠢蛋hexo-renderer-marked也给我爬

1
npm uninstall hexo-renderer-marked

不换功能就换工具

最后找来找去,还是找到好东西了

Hexo Filter MathJax

全后端渲染,不需要任何前端支持,

好东西!真是好东西!

README里面写得清清楚楚,明明白白,一步一步照着来就可以了,灰常完美!

照着下面的推荐,还顺便装上了hexo-renderer-pandoc,只不过这个库需要在本地计算机上安装一个pandoc,还好ubuntu apt的默认源里面有,直接安装就可以了。

把服务器在本地跑起来,页面倒还不错,那个矩阵渲染得漂亮啊,和我在vsc预览界面看到的几乎一模一样啊!

代码高亮

不得不承认,这环境肯定是哪里配错了,总之代码高亮并没有实现,至少实现得不是很漂亮

(对照着Hexo和nexmoe文档折腾了半天,甚至切换到了hexo-theme-next又切换回来之后)

那就没有实现吧,我不管啦!

然后下来就是一个markdown接着一个markdown地痛苦地修改文章格式了

正在做这件事,一袋米要抗几楼!

一袋呦!

Knightana

2023/04/19