首页 > 热门 > 横图列表

Hexo个人博客系统的搭建和使用

横图列表 会员昵称:印修 关注 投稿量: 粉丝量: 关注量:   2024-07-31 18:24:07A+A-

Hexo个人博客系统的搭建和使用

前言

之前本人博客采用Hugo进行安装部署,在更新Hugo版本后发现原来的LoveIt主题与最新版本Hugo无法兼容,导致博客出现故障

由于原来博客部署在阿里云ESC云平台上,操作系统采用的是Centos7版本,统筹考虑将云主机操作系统进行升级并对博客进行翻新改造

最终采用Rocky Linux 9.1 以及Hexo博客系统

Hexo个人博客系统的搭建和使用(图1)

1 Hexo安装部署

Hexo是一款基于Nodejs的,快速、简洁且高效的博客框架,只需要安装Node.js和Git即可

Hexo本质是是将Markdown文件(或其他支持格式)按照自定义主题方式输出为标准化静态文件,这些静态文件才是真正意义上所需要的输出物

静态文件可以部署在类似在阿里云ESC,通过Apache或者Nginx对外提供Web服务器从而实现个人博客站点的内容实现

也可以直接部署在类似Github上直接完成Web实现,前者存在域名解析TLS证书的问题

基本的Hexo工作流详见下图

1.1 环境介绍

本文使用阿里云ESC云主机,操作系统采用:linux 5.14.0-162.23.1.el9_1.x86_64 Rocky Linux 9.1 (Blue Onyx)

注意:本文站点根目录为/root/mysite

1.2 安装Node.js

Hexo是基于Node.js技术,因此需要安装Node.js,官网对于版本的依赖如下:

Hexo 版本最低版本 (Node.js 版本)最高版本 (Node.js 版本)
6.2+12.13.0latest
6.0+12.13.018.5.0
5.0+10.13.012.0.0
4.1 - 4.28.1010.0.0
4.08.68.10.0
3.3 - 3.96.98.0.0
3.2 - 3.30.12未知
3.0 - 3.10.10 或 iojs未知
0.0.1 - 2.80.10未知

Rocky Linux采用yum源安装,Git用系统默认自带版本

1
2
yum install -y nodejs
npm install -g hexo-cli

验证Hexo的版本和安装包信息

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
[root@ethan mysite] hexo version
INFO  Validating config
hexo: 6.3.0
hexo-cli: 4.3.1
os: linux 5.14.0-162.23.1.el9_1.x86_64 Rocky Linux 9.1 (Blue Onyx)
node: 20.2.0
acorn: 8.8.2
ada: 2.4.0
ares: 1.19.0
base64: 0.5.0
brotli: 1.0.9
cjs_module_lexer: 1.2.2
cldr: 43.0
icu: 73.1
llhttp: 8.1.0
modules: 115
napi: 8
nghttp2: 1.52.0
nghttp3: 0.7.0
ngtcp2: 0.8.1
openssl: 3.0.8+quic
simdutf: 3.2.9
tz: 2023c
undici: 5.22.0
unicode: 15.0
uv: 1.44.2
uvwasi: 0.0.16
v8: 11.3.244.8-node.9
zlib: 1.2.13

至此Hexo博客系统就完成了部署

1.3 建立站点

基本的建站步骤,这里采用手动创建站点目录

1
2
cd /root
mkdir mysite

初始化站点根目录

1
hexo init

此时/root/mysite将作为后续Hexo博客系统的站点根目录

相关站点的目录结构如下:

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ethan mysite]# tree -L 1
.
├── _config.landscape.yml            
├── _config.yml             # 最重要的全局站点配置文件
├── db.json
├── node_modules
├── nohup.out
├── package.json
├── package-lock.json
├── public # 存放最终生成的静态文件,用于Apach或者Ngnix进行Document Root的设置进行读取,对外提供Web服务
├── scaffolds
├── source                  # 这里存放需要发布的MD文件
└── themes                  # 这里存放主题文件

这里一个文件和三个文件夹最重要:

1、_config.yml文件:全局配置文件,包括页面标题、页面介绍等基本信息,这里配置的信息最重要就是主题的设置,例如设置theme: next

2、source:这里存放需要发布的MD文件,后续可以直接将MD文件存放在这里,Hexo通过--wathc参数会实时监视该文件夹,生成静态文件

3、themes:这里存放主题文件

4、public:存放最终生成的静态文件,用于Apach或者Ngnix进行Document Root的设置进行读取,对外提供Web服务

1.4 Hexo全局参数配置

这里简单介绍几个必须修改的字段,供参考

1、title: 张先生的深夜课堂,这里作为网页打开标题

2、language: zh-CN,如果选择中文

3、timezone: ‘Asia/Shanghai’时区建议

4、theme: next,主题的配置,这里为了使用next主题,增加一行

特别注意,默认配置文件有一行,主题默认为landscape,建议作为注释,否则运行Hexo进程会报错

#theme: landscape

5、url: https://www.ethanzhang.xyz/,修改为实际的网页地址,注意这里的`http或者https`前缀

如果GitHub Page, 参考修改为 ‘https://username.github.io/project‘

2 主题

类似Hugo,Hexo支持大量主题,这里非常推荐一款主题Next,开箱即用

官网链接:https://github.com/theme-next/hexo-theme-next

2.1 安装

直接采用Git安装或者手动安装方式,前者的好处是在于建立了本地Git仓库并保持远程仓库信息,将来可以使用git pull进行更新

1
2
cd /root/mysite
git clone https://github.com/theme-next/hexo-theme-next themes/next

此时next主题安装完成

这里查看next主题的整个文件框架

1
2
3
4
5
6
7
8
9
10
11
12
13
[root@ethan mysite]# tree themes/next/ -L 1
themes/next/
├── _config.yml
├── crowdin.yml
├── docs
├── gulpfile.js
├── languages
├── layout
├── LICENSE.md
├── package.json
├── README.md
├── scripts
└── source

同样这里最重要的文件仍然是_config.yml主题参数配置文件

2.2 主题参数配置

可参考:https://theme-next.org/docs/theme-settings/

基本上next主题开箱即用,可定义的参数特别多,可玩性较高

2.2.1 备案号

个人博客都应主动向公安主管部门进行备案,因此需要在网站上主动显示备案信息号

在配置参数中footer:下的copyright: 字段信息,可以填入该备案信息号

2.3 升级主题

进入当前主题文件目录下,使用git pull命令进行升级

1
2
cd themes/next
git pull

3 实际使用生成内容

一般使用Typora、Obsidian等写作文件,生成Markdown文件后,直接上传至站点根目录的source目录下

关键步骤,使用hexo二进制文件对source目录下的Markdown文件进行扫描,通过主题文件生成格式化静态文件

hexo具体命令参数如下:

1
2
3
hexo generate
- 简写
hexo g

其他可以使用参数

1
2
3
4
5
-w, --watch	监视文件变动
-b, --bail 生成过程中如果发生任何未处理的异常则抛出异常
-f, --force 强制重新生成文件
Hexo 引入了差分机制,如果 public 目录存在,那么 hexo g 只会重新生成改动的文件。
使用该参数的效果接近 hexo clean && hexo generate

3.1 最佳实践

实际上我们习惯更关注与博客内容的创作,创作后的内容文件希望直接上传至规定目录后,系统自动实时创建更新,刷新页面后将立即获得所见即所得的效果

因此Hexo程序应在后台运行,形成一个后台运行的进程,并实时监测source目录下内容的变化,因此建议使用一下命令:

1
nohup hexo g --w 2>&1 &

3.2 内容创作

这里还有一个非常重要的提示,就是对于内容文件Markdown文件中一些预定义的关键字的说明

例如Hexo如何知道你对于分类标签等内容的识别?

这些预定义的关键字,官网称之为Front-matter 是文件最上方以 --- 分隔的区域,用于指定个别文件的变量

官网参数定义如下:

参数描述默认值
layout布局config.default_layout
title标题文章的文件名
date建立日期文件建立日期
updated更新日期文件更新日期
comments开启文章的评论功能true
tags标签(不适用于分页)
categories分类(不适用于分页)
permalink覆盖文章的永久链接,永久链接应该以 / 或 .html 结尾null
excerpt纯文本的页面摘要。使用 该插件 来格式化文本
disableNunjucks启用时禁用 Nunjucks 标签 {{ }}/{% %} 和 标签插件 的渲染功能false
lang设置语言以覆盖 自动检测继承自 _config.yml

一般使用title、date、tags、categories、description五个参数即可

特别注意是关于description参数,建议最好使用,这样在首页中就能够以省略方式,通过description参数内容去在首页进行展示,而不是将该文章全部进行显示


部分内容需要登录查看

本次有 徐州鑫坤机电设备有限公司 网站:www.xzxkjd.com 展现 转载分享注明本文地址!有疑问,请联系我们:xzxkjd@qq.com 谢谢!

点击这里复制本文地址 以上内容由用户上传和网络在 徐州鑫坤机电设备有限公司 整理呈现,如有侵权请联系站长:xzxkjd@qq.com !

相关内容

加载中~

Copyright © 2012-2024 徐州鑫坤机电设备有限公司 版权所有
苏ICP备2023032739号-1 苏ICP备2023032739号-2 苏公网安备32038202000884
开发中 | 关键词 | 网站地图 | 网站地图 | 网站地图 | TAG集合

今日IP人数 0 今日浏览量(PV) 0 昨日IP人数 0 昨日浏览量(PV) 0 30天浏览量(PV) 0 总访浏览量(PV) 0

网站已运行:

在线客服
服务热线

服务热线

0516-86596070

联系邮箱

服务热线

xzxkjd.@qq.com

微信咨询
我的网站名称
交流群
我的网站名称
返回顶部
X我的网站名称

截屏,微信识别二维码

微信号:xkyinxiu

(点击微信号复制,添加好友)

  打开微信

微信号已复制,请打开微信添加咨询详情!