惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
O
OpenAI News
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
博客园 - 三生石上(FineUI控件)
Webroot Blog
Webroot Blog
GbyAI
GbyAI
S
SegmentFault 最新的问题
Cyberwarzone
Cyberwarzone
Exploit-DB.com RSS Feed
Exploit-DB.com RSS Feed
J
Java Code Geeks
Google DeepMind News
Google DeepMind News
cs.CV updates on arXiv.org
cs.CV updates on arXiv.org
博客园 - 【当耐特】
S
Secure Thoughts
酷 壳 – CoolShell
酷 壳 – CoolShell
AWS News Blog
AWS News Blog
Engineering at Meta
Engineering at Meta
S
Security Affairs
H
Help Net Security
Microsoft Security Blog
Microsoft Security Blog
D
DataBreaches.Net
云风的 BLOG
云风的 BLOG
Hugging Face - Blog
Hugging Face - Blog
Google DeepMind News
Google DeepMind News
Spread Privacy
Spread Privacy
T
Threatpost
Forbes - Security
Forbes - Security
C
Cisco Blogs
Scott Helme
Scott Helme
Attack and Defense Labs
Attack and Defense Labs
Simon Willison's Weblog
Simon Willison's Weblog
腾讯CDC
The Last Watchdog
The Last Watchdog
Cloudbric
Cloudbric
Last Week in AI
Last Week in AI
Recorded Future
Recorded Future
小众软件
小众软件
V
Vulnerabilities – Threatpost
美团技术团队
人人都是产品经理
人人都是产品经理
有赞技术团队
有赞技术团队
Apple Machine Learning Research
Apple Machine Learning Research
Hacker News - Newest:
Hacker News - Newest: "LLM"
I
Intezer
月光博客
月光博客
C
Cyber Attacks, Cyber Crime and Cyber Security
博客园 - 司徒正美
C
Cybersecurity and Infrastructure Security Agency CISA
Martin Fowler
Martin Fowler
博客园 - 聂微东

ZkeqのCoding日志

年度|我的2025年度总结 从想法到落地:我是如何在两个小时的时间里做出一个人格完善站的。(支持大家随意提问情感问题) Golang | 山竹记账 Go 后端版学习笔记 云声计划 | 如何使用宝塔最新版 + Vercel,来部署一个私人的影视站+音乐站 Coding | 分别用2天半和9天,我用 ClaudeCode 写出了自己的影视站和音乐站 Coding | 记一次使用 Claude Code 开发影视站&音乐站的开发历程 年度|我的2024年度总结 日常|IMYAI文本处理工具箱开源随记 项目课 | Vue.js开发印象云笔记 前端体系|Promise专题 - 原理以及是什么 KubeEdge | [进阶] KubeEdge高可用环境搭建 KubeEdge | [基础] KubeEdge架构设计及其环境搭建 KubeEdge | 边缘计算基本功--云原生 KubeEdge | 多视角认识边缘计算 KubeEdge | 边缘计算,其实就在你身边 章节起手式 (转) Kubernetes | 【尚硅谷】Kubernetes(k8s)入门到实战教程丨全新升级完整版 Kubernetes | 高可用的 K8S 集群构建 [完结] Kubernetes | 证书可用时间修改 Kubernetes | Helm 及其它功能性组件
Hexo 博客搭建:一份写给新手的完全指南
Zkeq · 2025-09-07 · via ZkeqのCoding日志

编程,学习编程的过程是最容易建立正反馈的一个学习过程。把自己的想法变成代码之后,在瞬间就可以看到执行结果,这难道不是一个值得兴奋的事情吗?而且它的结果是可以随着思考的深入而朝着好的方向转变的,并不像其他有挑战性的事情一样,努力之后给你一个结果,面对结果无能为力的感觉,我相信大家都体会到过。可是在编程这个方向,遇到的所有问题都是可以用努力解决的。你在这个过程中思考的总和,累加成一个最终的结果,将自己思考的结果变成代码,一步一步的将自己的想法变成现实,一步一步的验证,一步一步的肯定。解决问题的过程其实就是一个正反馈的过程。我其实也没有特别的喜欢编程,我只是享受把想法变成现实的感觉而已。这就是驱动我学习编程的原因。

大部分人学习编程,其实只是卡在了最初的环境问题上,我第1次建博客的时候,经历了20多天,大概是我到现在还记得,16次失败的经历。可是最终还是做到了,当那个命令行应用,第1次成功的运行起来的时候。在那个时候建立正反馈,激励着我在后面一次次遇到挫折的时候。然后在那之后的两个月,我尝试用不同的方法,构建了十几个博客,我只知道那个时候的愉悦感,是我从来都没有经历过的。也就是从那个时候开始,我有了我的博客网站,然后,就在博客上面更新自己的学习编码的历程,最开始学习的语言是Python,那个时候每天大概更新1 200字,每天一个小知识点,可能就是 懵懵懂懂的坚持了好几个月,学编程的门槛之一就在这里,培养编程语言的思想,像代码一样思考问题,我可能又用了三四个月吧,终于可以用自己的思路写一些小脚本了,做过最尽情的一件事是从晚上8点开始写(那个时候也没有AI)写到第二天早上的5点,终于跑通了代码,然后成果就是,我整理出来的题库被23万人用油猴脚本运行,这应该是我第1次正反馈。

下面这篇文章,会尝试用通俗易懂的方式,带你搭建第一个博客网站,希望可以带你建立第一次编程的正反馈。

这篇指南,将以一个“过来人”的视角,带你走过从零到一的全过程。我不仅会告诉你“怎么做”,更会解释“为什么这么做”,并把我踩过的坑、总结的经验都分享给你,希望能帮你绕过一些常见的弯路,更平滑地开启你的创作之旅。

文章原文:https://blog.csdn.net/Zkeq_/article/details/121921150


No.01 写作环境 (本地环境)

在本地搭建的环境,我们称之为“写作环境”。在这里,你可以安心地写作、调试、预览,直到满意为止。

小节1: 环境搭建

核心工具:Node.js 与 Git

  • Node.js: 它为 Hexo 提供了运行环境。你可以把它理解成一片土壤,Hexo 这颗种子需要在这片土壤上才能生根发芽。
  • Git: 这是一个强大的版本控制工具。在建站初期,它主要帮助我们安装主题和部署网站。未来,你会发现它是所有开发者的必备神器。

操作步骤:

  1. 安装 Node.js

    • 官网: Download | Node.js (nodejs.org)
    • 版本建议: Hexo 要求 Node.js 版本不低于 10.13,建议使用 12.0 及以上版本的 LTS (长期支持) 版,它最稳定。
    • 安装注意: 使用官方安装程序时,请确保勾选 Add to PATH 选项(默认已勾选),这会让系统能随时在命令行中找到 Node.js。
  2. 安装 Git

    • 下载地址: Git for Windows 国内镜像 (taobao.org)
    • 请选择列表底部的最新版本进行下载。
    • 安装过程: 直接一路点击“下一步”即可。
    • 验证: 安装完成后,在桌面或任意文件夹点击鼠标右键,如果能看到 “Git Bash Here” 选项,就代表安装成功了。“Git Bash” 是一个模拟 Linux 环境的命令行窗口,功能比 Windows 自带的 CMD 或 PowerShell 更强大,强烈推荐使用。

小节2: 初始化站点

所有工具安装完毕后,我们来安装 Hexo 的核心程序。

  1. 安装 Hexo 脚手架 (hexo-cli)
    打开你的命令行工具 (推荐在任意位置右键 -> Git Bash Here),输入以下命令:
  • npm 是 Node.js 自带的包管理器,用来安装各种工具。
  • -g 代表“全局安装”,这样你在任何地方都可以使用 hexo 命令。
  • 关于 $ 符号: 你在很多教程里看到的 $,其实是 Linux/macOS 命令行里的提示符,你复制命令时不需要复制它
  1. 验证安装
    安装成功后,输入 hexo -version 来检查一下。如果能看到类似下面的版本信息,就说明 Hexo 已经成功安装在你的电脑上了。

小节3: 建站

现在,我们来创建博客项目。

  1. 创建项目文件夹

    • 在你喜欢的位置(例如 D:\Blogs),创建一个新的空文件夹,比如 my-blog
    • 进入这个 my-blog 文件夹,在空白处右键,选择 “Git Bash Here” 打开命令行。
  2. 执行初始化
    依次输入以下命令:

  • hexo init . 会将 Hexo 的所有必要文件下载到当前文件夹. 代表当前目录)。
  • npm install 会根据项目定义,安装所有依赖的模块。
  1. 项目文件结构解析

    • _config.yml: 站点配置文件,博客的“总开关”,大部分全局配置都在这里。
    • themes/: 主题文件夹,决定了你的博客长什么样。
    • source/: 资源文件夹,你写的文章 (_posts 目录)、创建的独立页面、存放的图片等都在这里。
    • scaffolds/: 模板文件夹,当你用 hexo new 创建新文章时,会以这里的 post.md 为模板。
    • package.json: 应用程序信息,记录了项目依赖。
  2. 核心配置 (_config.yml)
    这是最重要的地方,我们来详细看看。用文本编辑器打开它。

    • 网站信息 (Site)
  • 网址 (URL)
  • 关于永久链接 permalink 的重要建议
    默认格式太长,不利于SEO且不美观。强烈建议在建站之初就确定好格式,避免日后修改导致链接失效、访问统计丢失。
    一个更简洁且独一无二的推荐格式是 年份 + 文件名哈希值:

更多格式请参考 Hexo 官方文档

  1. 最佳实践:独立的主题配置文件
    为了方便日后平滑升级主题,强烈建议不要直接修改 themes/[主题名]/_config.yml。正确的做法是:
  • 站点根目录(和 _config.yml 同级)下,创建一个名为 _config.[主题名].yml 的文件。例如,如果你使用 butterfly 主题,就创建 _config.butterfly.yml。 (在后文)
  • themes/butterfly/_config.yml 的所有内容复制过来。
  • 之后,所有关于主题的配置,都在这个新的 _config.butterfly.yml 文件里修改。Hexo 会智能地合~并这两个配置,并优先使用你的配置。

小节4: 解锁预览功能 (常用命令)

现在,我们已经可以预览网站的初始模样了。以下是 Hexo 最常用的几个命令:

  • hexo clean (简写 hexo cl): 清除缓存文件 (db.json) 和已生成的静态文件 (public 目录)。建议每次生成或部署前都执行一次,可以避免很多不必要的麻烦。
  • hexo generate (简写 hexo g): 生成静态文件。当有插件的简写命令冲突时,建议使用全拼。
  • hexo server (简写 hexo s): 启动本地预览服务器。默认地址是 http://localhost:4000/
  • hexo deploy (简写 hexo d): 部署网站。

组合使用:
为了方便,可以把命令用 && 连接起来一次性执行。

  • 本地预览:

执行后,打开浏览器访问 http://localhost:4000,就能看到你的网站了。

  • 生成待部署文件:

注意: hexo d 这个简写在安装了某些插件后(例如豆瓣插件)可能会因为命令重名而失效。届时需要改用 hexo dep 或者全称 hexo deploy。所以更稳妥的写法是 hexo cl && hexo g && hexo dep

如何编写文章呢?

  1. 创建文章:

这条命令会在 source/_posts 目录下创建一个名为 你的文章标题.md 的文件。
2. 编辑文章:
请使用 Markdown 编辑器进行编辑。推荐:

  • Typora: 一个非常优秀的 Markdown 编辑器,我就在用,可以搭配图床插件 Pic Go 上传图片到自己的图床中,并自动生成图片链接。
  • VS Code: 配合插件也是极佳的选择。
  • 在线编辑器: Markdown Editor
  1. 注意事项:
  • 文章顶部的 Front-matter (被 --- 包围的部分) 非常重要,用于配置文章信息。
  • tags (标签) 请注意大小写统一,例如,不要在一篇文章里用 Java,另一篇用 JAVA,这会被识别为两个不同的标签。
  • 文章加密: 如果需要,可以使用插件 hexo-blog-encrypt 对特定文章加密。

小节5: 选择并部署主题 (个性化你的博客)

  1. 挑选主题: 前往 Hexo 官网主题页 挑选你喜欢的主题。

  2. 安装与配置 (以 Butterfly 主题为例):
    每个主题都有自己的安装和配置文档,请务必仔细阅读。这里以热门的 Butterfly 主题为例,分享一些具体的配置经验。

  • 启用: 修改站点配置文件 _config.yml,将 theme 字段改为:
  • 配置: 强烈建议使用上文提到的 “独立的主题配置文件” 方法,在根目录创建 _config.butterfly.yml 并在这里进行所有主题相关的修改。

小节6: 安装外部插件

Hexo 强大的生态系统体现在丰富的插件上。以 hexo-github-calendar 为例:

  • 插件地址: Zfour/hexo-github-calendar
  • 作用: 在页面上生成一个 GitHub/Gitee 的贡献日历图。
  • 安装: 通常插件的安装和使用方法都会在它的 README.md 文件或文档中详细说明。一般遵循 npm install [插件名] --save 然后在站点或主题配置文件中添加相应配置即可。

再次强调: 操作时,请一定分清 站点配置文件 (_config.yml)主题配置文件 (_config.butterfly.yml)

小节7: Windows 环境变量配置问题

如果对 Windows 的环境变量感到困惑,推荐观看此视频: 一个视频 搞懂Windows电脑 环境变量 的知识点 [B站],能帮你彻底理解其原理。


No.02 部署环境 (服务器环境)

本地网站只有你自己能看,部署后才能分享给世界。Hexo 是纯静态博客,部署非常灵活。

方案一: 使用自己的服务器 (如 宝塔面板)

如果你有自己的云服务器,流程相对简单:

  1. 安装宝塔面板。
  2. 在面板中新建一个网站。
  3. 在本地执行 hexo clean && hexo g 生成 public 文件夹。
  4. public 文件夹内的所有内容上传到服务器网站的根目录。
  5. 完成!

方案二: 无服务器部署 (GitHub + Vercel,强烈推荐)

这是目前最流行、免费且强大的方案,支持自动化部署。

小节1: 在 GitHub 托管项目

  • 目的: 我们使用 GitHub 来存放你的整个 Hexo 项目源代码,而不是生成的 public 文件。这相当于云端备份和版本控制。
  • 操作:
    1. 注册并登录 GitHub
    2. 创建一个新的公开 (Public) 仓库,例如 my-hexo-blog
    3. 将本地项目与远程仓库关联并推送。推荐使用 GitHub Desktop 图形化工具,对新手非常友好。如果使用命令行:

小节2: 使用 Vercel 自动部署

  • 目的: Vercel 会关联你的 GitHub 仓库,每当你推送新的代码时,它会自动帮你执行 hexo g 并将网站部署到全球 CDN 网络。
  • 操作:
    1. 访问 Vercel 官网,使用你的 GitHub 账号注册登录。
    2. 选择 “Import Project”,找到并选择你刚刚创建的 my-hexo-blog 仓库。
    3. Vercel 会自动识别出是 Hexo 项目,你无需任何额外配置,直接点击 “Deploy”。
    4. 重要: 如果提示选择团队 (Team),请点击 Skip 跳过,否则试用期后可能会收费。
    5. 稍等片刻,部署成功后 Vercel 会提供一个 .vercel.app 后缀的免费域名。之后你也可以绑定自己的域名。

小节3: (可选) Gitee 创建国内镜像

如果你希望在国内有更快的访问速度,可以同样的方法在 Gitee 上创建一个镜像。流程与 GitHub 类似,但 Gitee Page 需要每次推送后手动去页面点击“更新”。


总结以及备忘

日常发布流程

  1. hexo new "文章标题" -> 写作。
  2. hexo clean && hexo g && hexo s -> 本地预览,检查效果。
  3. 确认无误后,将代码推送到 GitHub:
  1. Vercel 会自动完成线上部署。

Front-matter 详解

文章文件最上方 --- 之间的部分,是文章的配置项,非常重要。

配置选项 描述
title 文章标题 (建议必填)
date 发布时间 (建议必填,且全局唯一)
author 文章作者
img 文章封面图/特色图 URL
top true 时文章置顶
hide true 时文章不在首页列表显示
password 文章阅读密码 (需要主题支持)
toc true/false 控制是否显示文章目录
summary 自定义文章摘要
categories 文章分类 (建议一篇文章只属于一个分类)
tags 文章标签 (一个文章可以有多个标签)

示例:


可能会用到的功能代码片段

  • 内嵌Bilibili视频 (自适应)

只需将 src 中的链接替换为B站分享的嵌入代码中的链接即可。

  • 内嵌视频
  • 内嵌网易云音乐
    • 直链格式: http://music.163.com/song/media/outer/url?id=歌曲ID.mp3 (付费歌曲不可用)
    • HTML 代码:

参考链接