hexo 学习 0024:hexo 生成文件

将博客文章、主题配置和页面布局转化为访客能看到的网页,这个过程叫做“生成”。Hexo 的核心优势之一就是生成速度极快。你可以把 Hexo 想象成一个高效的“印刷厂”,source 文件夹是原材料仓库,而 public 文件夹就是成品出库区。hexo generate 命令就是启动印刷机的开关。

基础生成命令

最基础的用法是一次性将所有源文件编译成静态网页。

命令示例:

1
hexo generate

或者使用简写:

1
hexo g

作用说明:
执行该命令后,Hexo 会读取 source 目录下的所有文章、页面和资源,结合主题模板,渲染出完整的 HTML、CSS 和 JS 文件,并保存到 public 目录中。如果 public 目录已存在,旧文件会被新生成的文件覆盖。

监视模式:实时自动更新

在开发或写作过程中,每修改一次文章就手动运行一次生成命令是非常低效的。Hexo 提供了“监视模式”,它能像保安一样时刻盯着你的文件,一旦发现变动,立即自动重新生成。

命令示例:

1
hexo generate --watch

或者使用简写:

1
hexo g --watch

核心机制:SHA1 校验
这个功能不仅仅是简单的“文件变动检测”,它还非常智能。Hexo 在生成时会比对文件的 SHA1 checksum(一种文件指纹)。

  • 比喻:就像图书馆管理员给每本书盖了一个唯一的防伪章。每次检查时,管理员只核对防伪章。如果章没变,说明书的内容也没变,管理员就不会重新处理这本书。
  • 实际效果:只有那些真正发生内容变化的文件才会被重新写入 public 目录。未变动的文件会被跳过。这极大地减少了磁盘 I/O 操作,显著提升了生成速度,尤其是在文章数量庞大的博客中。

使用场景:
当你需要长时间写作或调试主题样式时,开启此命令,然后保持终端窗口运行。你在编辑器中保存文件后,只需刷新浏览器即可看到最新效果,无需任何额外操作。按 Ctrl + C 可停止监视。

生成后自动部署

当你完成写作和测试,准备将博客发布到互联网(如 GitHub Pages、VPS 等)时,通常需要先“生成”再“部署”。为了简化流程,Hexo 允许你将这两个步骤合并为一条命令。

命令组合示例:

方式一:在生成命令后附加部署动作

1
hexo generate --deploy

简写:

1
hexo g -d

方式二:在部署命令前附加生成动作

1
hexo deploy --generate

简写:

1
hexo d -g

概念辨析:两种写法的区别

  • 功能结果:完全相同。都是先执行 generate 确保 public 文件夹是最新的,紧接着执行 deploypublic 文件夹的内容推送到远程服务器。
  • 逻辑侧重
    • hexo generate --deploy:侧重于“我主要想生成文件,顺便发出去”。
    • hexo deploy --generate:侧重于“我要发布网站,但在那之前请确保帮我生成好文件”。
  • 建议:在日常使用中,hexo g -d 是最常用的组合,因为它符合“先构建后发布”的逻辑直觉,且输入字符最少。

注意事项

  1. 部署配置:使用 --deploy 参数前,请确保你已经在 _config.yml 文件中正确配置了 deploy 部分(如 type, repo, branch 等),否则命令会报错或无法找到部署目标。
  2. 生产环境:在正式部署到生产环境时,建议不要使用 --watch 参数。生产环境应该是一次性生成确定的静态文件,而不是保持监视状态。
  3. 清理缓存:如果你发现生成的内容异常(例如删除的文章依然显示),可以在生成前加上 clean 命令:hexo clean && hexo generate --deploy。这会先删除 public 文件夹和数据库缓存,确保从头开始全新生成。

通过灵活运用这些命令,你可以实现从“实时写作预览”到“一键发布上线”的高效工作流。