2024.11最新Hexo+GitHub搭建个人博客

2024.11最新Hexo+GitHub搭建个人博客

一、Hexo介绍

Hexo 是一个快速、简洁且高效的博客框架,有丰富的主题和插件可供使用。 Hexo 使用 Markdown(或其他标记语言)解析文章,在几秒内,即可利用靓丽的主题生成静态网页。这篇文章讲述如何使用Hexo+GitHub Pages搭建个人博客。

以下是我基于 Hexo 搭建的个人博客:

木林小辞🥝 - RationalDysaniaer的个人博客

二、环境搭建

安装 Hexo 需要先安装以下两个应用程序:

  1. Node.js(官方建议使用 Node.js 12.0 及以上版本)
  2. Git

Hexo 是基于 Node.js 的框架,同时我们要用到 git 进行部署,这里我推荐两个都安装最新版本

安装 Node.js

下载地址:Node.js — 下载 Node.js®

可根据自己操作系统,按照官网提示安装

windows 系统安装时,请确保勾选 Add to PATH 选项(默认已勾选)

安装 Git

  • Windows安装地址:Git - Downloading Package
  • Mac:使用 Homebrew, MacPorts ,或者下载程序:git-osx-installer (abandoned) download | SourceForge.net
  • Linux (Ubuntu, Debian):sudo apt-get install git-core
  • Linux (Fedora, Red Hat, CentOS):sudo yum install git-core

测试是否安装成功

打开终端输入以下指令判断是否安装成功且正确配置环境变量,如下图,如果成功看到版本号,代表安装成功

在这里插入图片描述

若安装过程中遇到问题,可百度解决,这里不做过多讲解

三、本地搭建 Hexo 博客

先将博客在本地搭建起来,新建一个文件夹用来存放博客程序,文件名和位置任意。

我这里是在 D 盘下新建了一个 Blog 文件夹,在该文件夹下,右键->显示更多选项,点击 Open Git Bash here,如果无此选项,请检查环境搭建时候成功

在这里插入图片描述

打开后输入以下命令一键安装hexo

$ npm install -g hexo-cli

可能遇到的问题:
输入命令后长时间卡住无法安装成功,可参考以下解决方案
此时按下 Ctrl+C 停止当前命令,输入以下命令配置淘宝镜像

$ npm config set registry https://registry.npmmirror.com

然后重新输入命令安装hexo

完成后输入以下命令初始化并安装组件

$ hexo init
$ npm install

可能遇到的问题:
输入 hexo init 后,如果卡在INFO Install dependencies不动,此时需按下 Ctrl+C 停止此命令,继续输入 npm install 即可。

这是可以发现文件夹中拉取了一些文件,根据日志可以了解到这是从远程仓库 https://github.com/hexojs/hexo-starter.git 中拉去的,打开可以发现是一个名为 hexo-starter 的初始项目

启动服务器(默认情况下,访问网址为: http://localhost:4000/

$ hexo server

在这里插入图片描述

按住Ctrl键,再用鼠标左键点击最下面的网址即可跳转的浏览器,或者直接在浏览器输入地址http://localhost:4000,就能在浏览器中打开预览页面,按下 Ctrl+C 可以关闭服务

在这里插入图片描述

此时博客就已经在本地部署成功

四、部署到 GitHub Pages

创建GitHub仓库

在GitHub新建仓库,仓库名为用户名.github.io,这里的用户名替换为你自己GitHub上的用户名

比如我的用户名是RationalDysaniaer,新建的仓库名就是rationaldysaniaer.github.io

在这里插入图片描述

创建时选择 public 将仓库公开,推荐勾选 Add a REAMD file 为仓库创建描述文件

配置SSH密钥连接GitHub

2021年8月13日 GitHub 取消了对密码身份验证的支持,我们需要使用 GitHub 的个人访问令牌来代替密码,但每次上传都需要输入一次用户名和 token 显然比较麻烦,安全性也较低,配置 ssh 后就可以更加方便的上传文件

打开C盘,进入 Users 文件夹,接着打开电脑用户名文件夹,寻找是否有.ssh文件夹,如果有的话需删除掉,没有就继续进行下面的步骤

在这里插入图片描述

在该文件夹下右键打开Git Bash,输入以下命令生成ssh密钥,中途需按下三次回车键

$ ssh-keygen -t rsa -C "github绑定的邮箱"

成功后在该目录下生成了.ssh文件夹,用记事本打开.ssh文件夹下的id_rsa.pub文件,复制里面的内容

在GitHub设置中点击SSH and GPG keys选项,点击New SSH key

在这里插入图片描述

出现以下界面

在这里插入图片描述

填写 Title项 为 hexo,将复制的内容粘贴到 Key 文本框中,点击 Add SSH key 后需要输入一次 GitHub 密码,即可添加成功

再次打开Git Bush,输入以下命令验证是否能连接成功

$ ssh -T git@github.com

如果询问是否继续连接,输入yes即可,如下图出现successfully即为连接成功

在这里插入图片描述

最后,配置用户名和邮箱

$ git config --global user.name "Github上的username"
$ git config --global user.email "GitHub绑定的邮箱"

到这里已经成功配置好了 ssh 连接,可以将本地博客部署到 GitHub 了·

在刚刚创建的博客文件夹下再次打开 git bush,安装 hexo-deployer-git 插件

$ npm install hexo-deployer-git --save

打开_config.yml文件,更改最后面的 deploy 内容,用户名替换为自己的 github 用户名

deploy:
  type: git
  repository: https://github.com/用户名/用户名.github.io.git
  branch: main

生成静态文件

$ hexo g

上传到GitHub

$ hexo d

上传成功后就可以通过浏览器访问到你的博客网站

博客地址:https://用户名.github.io

将用户名替换为你自己的 GitHub 用户名,就可以通过此网址访问你的博客了,快将自己的博客网址发给你的小伙伴炫耀一下吧!

如果想要时博客更加美观,可以到 hexo 官网下载博客主题,同时查看官方文档修改配置文件,发表博客文章,一点点完善你的博客。

五、使用主题

进入 Hexo 主题页面:Themes | Hexo

挑选一个你喜欢的主题,如果要使用这个主题,就去看该主题 GitHub 上的 readme 文件,最好不要直接自己摸索

如果readme文件没有说明如何使用,则使用一般方法:

  1. 克隆主题项目到 hexo 博客根目录 themes 文件夹下

  2. 更改博客配置文件 _config.yml, theme 选项值设为新的主题名称,这个配置可以用来切换下载到 themes 文件夹下的不同主题

清楚缓存并重新启动项目,就可以看到新的主题界面了

如果要更新主题,进入主题文件夹下使用以下命令

$ cd themes/主题名
$ git pull origin master

使用的主题一般也会有一个自己单独的配置文件,详细配置请看GitHub上该主题作者的readme文档

还有一些并未放在官网上的第三方主题,可能更改了大量博客起始文件的内容,并不是复制到主题文件夹下使用,而是直接克隆到整个博客项目

六、配置

需要在 _config.yml 中修改配置

可查阅官方文档进行配置:配置 |Hexo 系列

接下来是一些进阶内容

七、Hexo目录结构

在初始化博客文件后,项目文件夹将如下所示:

.
├── _config.yml
├── package.json
├── scaffolds
├── source
|   ├── _drafts
|   └── _posts
└── themes

_config.yml

网站的配置文件, 可以在此配置大部分的参数

package.json

应用程序的信息, EJS, Stylus 和 Markdown 渲染引擎已默认安装,可以自由移除

scaffolds

模版文件夹,在新建文章时,Hexo 会根据 scaffold 来创建文件

source

资源文件夹。 是存放用户资源的地方。 除 _posts 文件夹之外,开头命名为 _ (下划线)的文件 / 文件夹和隐藏的文件将会被忽略。 Markdown 和 HTML 文件会被解析并放到 public 文件夹,而其他文件会被拷贝过去。

themes

主题文件夹, Hexo 会根据主题来生成静态页面。

八、常用命令

初始化
$ hexo init [folder]

初始化网站。如果没有提供 folder,Hexo 会在当前目录下搭建一个网站

此命令是运行以下步骤的快捷方式:

  • Git clone hexo-starter including hexo-theme-landscape
  • 安装依赖项
新建文章
$ hexo new <title>
生成静态文件
$ hexo generate

可以简写为:

$ hexo g
部署网站
$ hexo deploy

可以简写为:

$ hexo d
清除缓存
$ hexo clean

可以简写为:

$ hexo cl

清除缓存文件 (db.json) 和已生成的静态文件 (public)。

列出所有路由
$ hexo list <type>
显示版本信息
$ hexo version

九、部署到Vercel加速访问

Vercel 是一个用于静态站点和无服务器函数的云平台,使开发者能够轻松部署他们的项目。

使用Vercel的优点可以阅读下面的文档:

Vercel:前端开发者的最佳部署工具 | 数据学习者官方网站(Datalearner)

Vercel官网:

Vercel: Build and deploy the best web experiences with the Frontend Cloud

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:/a/911613.html

如若内容造成侵权/违法违规/事实不符,请联系我们进行投诉反馈qq邮箱809451989@qq.com,一经查实,立即删除!

相关文章

王道考研之数据结构

数据结构系列 提示&#xff1a;这里可以添加系列文章的所有文章的目录&#xff0c;目录需要自己手动添加 数据结构 数据结构系列1.线性表1.1 线性表的定义和相关概念1.2 线性表的创销 增删查改 判空表长打印 2.顺序表2.1 顺序表定义和相关概念2.2 顺序表的静态实现2.3 顺序表的…

java导出word文件(手绘)

文章目录 代码细节效果图参考资料 代码细节 使用的hutool的WordUtil&#xff0c;WordUtil对poi进行封装&#xff0c;但是这一块的官方封装的很少&#xff0c;很多细节都没有。代码中是常见的绘制段落&#xff0c;标题、表格等常用api Word07Writer writer WordUtil.getWriter(…

LeetCode 0685.冗余连接 II:并查集(和I有何不同分析)——详细题解(附图)

【LetMeFly】685.冗余连接 II&#xff1a;并查集&#xff08;和I有何不同分析&#xff09;——详细题解(附图) 力扣题目链接&#xff1a;https://leetcode.cn/problems/redundant-connection-ii/ 在本问题中&#xff0c;有根树指满足以下条件的 有向 图。该树只有一个根节点&…

git原理与上传

言&#xff1a; git是一个软件&#xff0c;gitee/github是一个网站&#xff0c;这里有什么联系吗&#xff1f;我们身为一个程序员不可能不知道github&#xff0c;但是毕竟这是外国的网站&#xff0c;我们不翻墙的情况下&#xff0c;是无法访问的(或者就是太慢了&#xff0c;或…

Go语言的常用内置函数

文章目录 一、Strings包字符串处理包定义Strings包的基本用法Strconv包中常用函数 二、Time包三、Math包math包概述使用math包 四、随机数包&#xff08;rand&#xff09; 一、Strings包 字符串处理包定义 Strings包简介&#xff1a; 一般编程语言包含的字符串处理库功能区别…

React 入门课程 - 使用CDN编程React

1. 第一个React 注意&#xff1a;在vscode里&#xff0c;使用Live Server来运行html文件。 index.html <html><head><link rel"stylesheet" href"index.css"><script crossorigin src"https://unpkg.com/react17/umd/react.de…

苍穹外卖day09超出配送范围前端不提示问题

同学们在写苍穹外卖项目day09时调用了百度地图api来判断用户地址是否超出配送范围&#xff0c; 但是在黑马官方的课程或资料中&#xff0c;出现这样的问题时只会向用户端的控制台报错并不会提醒用户 如下图&#xff1a; 解决方法&#xff1a; 其实解决方法很简单只需要找到向…

ARXML汽车可扩展标记性语言规范讲解

ARXML: Automotive Extensible Markup Language &#xff08;汽车可扩展标记语言&#xff09; xmlns: Xml name space &#xff08;xml 命名空间&#xff09; xsd: Xml Schema Definition (xml 架构定义) 1、XML与HTML的区别&#xff0c;可扩展。 可扩展&#xff0c;主要是…

【开源项目】经典开源项目数字孪生智慧小镇——开源工程及源码

飞渡科技数字孪生小镇管理平台&#xff0c;依托自研数字孪生引擎平台&#xff0c;将5G、物联网、大数据、人工智能等数字化技术融合应用&#xff0c;采集、整合、应用小镇的规划、运营、管理等数据&#xff0c;实现特色小镇全域管理系统化以及精细化。 基于地理信息系统&#x…

探索 Move 编程语言:智能合约开发的新纪元

目录 引言 一、变量的定义 二、整型 如何在Move中表示小数和负数&#xff1f; 三、运算符 as运算符 布尔型 地址类型 四、什么是包&#xff1f; 五、什么是模块&#xff1f; 六、如何定义方法&#xff1f; 方法访问权限控制 init方法 总结 引言 Move 是一种专为区…

智能提醒助理系列-jdk8升级到21,springboot2.3升级到3.3

本系列文章记录“智能提醒助理”产品建设历程&#xff0c;记录实践经验、巩固知识点、锻炼总结能力。 本篇介绍技术栈升级的过程&#xff0c;遇到的问题和解决方案。 一、需求出发点 智能提醒小程序 当前使用的是jdk8&#xff0c;springboot2.3,升级到jdk21和springboot3.3 学…

算法|牛客网华为机试31-40C++

牛客网华为机试 上篇&#xff1a;算法|牛客网华为机试21-30C 文章目录 HJ31 单词倒排HJ32 密码截取HJ33 整数与IP地址间的转换HJ34 图片整理HJ35 蛇形矩阵HJ36 字符串加密HJ37 统计每个月兔子的总数HJ38 求小球落地5次后所经历的路程和第5次反弹的高度HJ39 判断两个IP是否属于同…

第六十三周周报 GCN-CNNGA

文章目录 week 63 GCN-CNNGA摘要Abstract1. 题目2. Abstract3. 文献解读3.1 Introduction3.2 创新点 4. 网络结构4.1 数据分析4.2 混合深度学习框架的发展4.3 Mul4.4 CNN block4.5 GCN block4.6 GRU block4.7 注意力机制4.8 模型评估标准 5. 实验结果5.1 不同邻接矩阵的性能评价…

人工智能——小白学习指南

知孤云出岫 目录 1. **智能评测系统**2. **个性化学习路径推荐**3. **虚拟学习助手**4. **学习行为分析**5. **数据驱动的教学决策**6. **自动化课程推荐**7. **数据隐私与安全保护** 人工智能知识点的总结和学习路线&#xff0c;以数据表格形式呈现&#xff0c;并附带在教育行…

「Mac畅玩鸿蒙与硬件21」鸿蒙UI组件篇11 - Canvas 组件的静态进阶应用

在鸿蒙应用开发中&#xff0c;Canvas 组件不仅用于基础绘图&#xff0c;还提供了处理复杂路径和渐变效果的多种手段&#xff0c;帮助开发者实现精美的静态图形。本篇将介绍如何在 Canvas 中绘制复杂路径、创建渐变填充效果。 关键词 Canvas 组件复杂路径绘制渐变填充 一、Canv…

【自动化测试】APP UI 自动化(安卓)-本地环境搭建

一、软件准备及版本介绍 软件版本JAVA-SDK1.8.0_181 python 3.10.10 Android SDK Tools 下最新版本即可&#xff0c;无特殊要求 PyCharm 2023.3.5&#xff08;下最新版本即可&#xff0c;无特殊要求&#xff09; 二、安装步骤及环境变量配置 2.1 Java安装及配置 1&am…

【动手学电机驱动】 STM32-FOC(2)STM32 导入和创建项目

STM32-FOC&#xff08;1&#xff09;STM32 电机控制的软件开发环境 STM32-FOC&#xff08;2&#xff09;STM32 导入和创建项目 STM32-FOC&#xff08;3&#xff09;STM32 三路互补 PWM 输出 STM32-FOC&#xff08;4&#xff09;IHM03 电机控制套件介绍 STM32-FOC&#xff08;5&…

鸿蒙进阶篇-网格布局 Grid/GridItem(二)

hello大家好&#xff0c;这里是鸿蒙开天组&#xff0c;今天让我们来继续学习鸿蒙进阶篇-网格布局 Grid/GridItem&#xff0c;上一篇博文我们已经学习了固定行列、合并行列和设置滚动&#xff0c;这一篇我们将继续学习Grid的用法&#xff0c;实现翻页滚动、自定义滚动条样式&…

【笔记】变压器-热损耗-频响曲线推导 - 04 额定功率处损耗特性

0.最大的问题 - 散热 对变压器这类功率器件&#xff0c;最大的问题是散热的效率。因为传统的电路基板热导率并不高&#xff0c;几乎和良性导热材料有近乎两个数量级的导热差异&#xff0c;所以&#xff0c;会采用特殊的导热技术&#xff0c;把热量尽可能快地传导到散热片。 传…

MATLAB中eig函数用法

目录 语法 说明 示例 矩阵特征值 矩阵的特征值和特征向量 排序的特征值和特征向量 左特征向量 不可对角化&#xff08;亏损&#xff09;矩阵的特征值 广义特征值 病态矩阵使用 QZ 算法得出广义特征值 一个矩阵为奇异矩阵的广义特征值 eig函数的功能是求取矩阵特征值…