之前假期看到有人表示文章数量破千编译时会报out of memory……虽然我这个站更新不定,也不确定以后能坚持多久,但这才 60 多篇文章 Hexo 的编译速度就已有些慢了。

虽然 Hexo 官方一直在改进,但消耗的资源还是不小。5.0 版本之后编译时可以在最后添加-c参数以限制线程数,譬如:

1
hexo generate -c 10

除开这个问题,Hexo 在二次开发、调试等情况下还存在着一定的不便。

Hugo 的编译速度确实飞快,但至少目前我对 Go 不太感兴趣。Jekyll 有 Github 近乎原生的支持,但我目前没有需要使用 Ruby 的地方,不想装太多环境。至于动态博客,起码我是不愿为此支出主机费用的。

现在,让我们有请:Valaxy

介绍

https://valaxy.site/

Valaxy = V + Galaxy 旨在成为下一代静态博客框架,提供更好的热更新与用户加载体验、更强大更便捷的自定义开发可能性。

Valaxy 基于 Vite 提供热更新与打包等功能,基于 Vue 实现视图(如主题、自定义组件)等客户端功能。因此 Valaxy 兼容并可自由使用 Vite 与 Vue 生态的所有插件。

如何使用

前置条件

  • 为描述方便,下文默认项目根目录为Blogroot,初始化选择的目录名称为valaxy-blog
  • 本文默认您已将 Git、Node.js 配置完成且可正常使用
  • 为了较快的速度,建议使用pnpm,可使用以下命令安装:
    1
    2
    3
    npm install -g pnpm # 全局安装 pnpm
    pnpm -v # 检查安装版本
    pnpm set registry https://registry.npmmirror.com # (可选)更换 pnpm 镜像源为 npmmirror(原淘宝镜像源)
  • 善用搜索引擎

初始化

创建一个目录用于存放 Valaxy(例如Blogroot),在该目录下打开终端(Windows 设备建议使用 Git Bash),执行以下命令:

1
pnpm create valaxy # 或 npm init valaxy

接下来的终端窗口中会出现选项,通过键盘的上下箭头进行选择,使用【Enter】确认。

通常情况下:

  • Select a type选择Blog - For Most Users
  • Project name默认即可
  • Install and start it now输入y
  • Choose the agent选择pnpm

每次选择后需按下【Enter】键,之后继续跟随命令行提示完成创建。

随后进入该目录并初始化项目:

1
2
cd valaxy-blog # 进入生成的目录
pnpm i # 或 npm i

启动预览

valaxy-blog目录下打开终端,执行:

1
pnpm dev # 或 npm run dev

(其实上一节创建完 Valaxy 项目后程序也会自动启动预览)

默认启动端口为4859,待启动完成后,可访问http://localhost:4859/查看预览。

您可以编辑valaxy-blog目录下的valaxy.config.ts文件,参考 Config 进行站点配置。由于它支持热更新,因此可以直接编辑 config 文件,页面会随之自动更新(如果配置不出错)。在pages目录下创建、编辑文章同样也会在页面热更新。

更新程序

valaxy-blog目录下打开终端,执行命令:

1
2
3
4
# upgrade valaxy
pnpm add valaxy@latest # 或 npm i valaxy@latest
# upgrade theme
pnpm add valaxy-theme-yun@latest # 或 npm i valaxy-theme-yun@latest

使用 pnpm 也可以执行这条命令更新:

1
pnpm up --latest -i

更多详细使用教程参见官方文档,此处略

使用体验

目前已测试编写文章、配置文件修改、增添 CSS 等基本功能。将原来 Hexo 目录下的 MD 文件直接丢进pages/posts目录,稍作等待页面便自动将其渲染(由于 Hexo 及其主题与 Valaxy 的配置项有些许出入,文章需作轻微调整才可达到预期。具体格式可见初始化后该目录下的hello-valaxy.md文件)。反观 Hexo,渲染同样六十多篇文章需要 8 秒左右,这个速度差别也是比较明显的了。

同时,Hexo 虽然有hexo-browsersync这样的插件可供调试,但页面修改后大多需要刷新才能看到效果(程序会自动刷新),但貌似仅限于source目录,起码修改项目根目录下的_config.yml之类的文件它是不能立即生效的,需要退出预览后重新编译。Valaxy 不需要,修改完配置文件后页面可以自动更新上,对于调试和开发、修改预览而言非常方便。

由于这个框架还比较新,插件和主题还不多,但它可以直接使用现有的 vue 和 vite 插件,且项目本身的基础体验已经不错。如果有需要的,这也是一个不错的选择。

不过由于迁移比较麻烦,变化较大,故本站目前仍使用 Hexo。