Hexo博客部署记录

Hexo是一个基于Node.js的静态网站生成器,主要用于创建博客和文档网站。

一、安装环境

  1. nodejs官网

https://nodejs.org/zh-cn

  1. git官网

https://git-scm.com/

  1. 验证
1
2
3
node -v
npm -v
git --version

二、安装Hexo

1
2
3
4
5
6
7
8
9
# 1.全局安装Hexo
npm install -g hexo-cli

# 2.初始化一个站点
hexo init blog.example.com
cd blog.example.com

# 3.安装依赖
npm install

三、生成静态文件并启动本地服务器:

1
2
3
hexo clean      # 清理旧文件
hexo generate # 生成静态文件,可简写 hexo g
hexo server # 启动预览,默认 http://localhost:4000,,可简写 hexo s

四、写文章

Hexo 默认文章都在 source/_posts/ 下。
创建一篇文章:

1
hexo new post "Hexo博客部署记录"

五、推送到Github

新建一个仓库

1
https://github.com/username/blog.example.com.git
1
2
3
4
5
6
7
8
git config --global user.name "YourName"
git config --global user.email "YourEmail@example.com"
git init
git add .
git commit -m "first commit"
git branch -M main
git remote add origin https://github.com/username/my-blog.git
git push -u origin main

六、更换主题

优秀的主题汇总 https://github.com/Ailln/awesome-hexo-theme

https://github.com/theme-next/hexo-theme-next

安装主题,这里需要特别主题仓库地址,新旧版本仓库地址不一样。

版本号 仓库地址
2014~2017 v5 https://github.com/iissnan/hexo-theme-next
2018~2019 v6~v7 https://github.com/theme-next/hexo-theme-next
2020 v8 https://github.com/next-theme/hexo-theme-next
1
git submodule add https://github.com/next-theme/hexo-theme-next themes/next

更新主题

1
2
cd themes/next
git pull

hexo_config.yml 启用主题

1
theme: next

hexo_config.yml 更改语言

1
language: zh-Hans

添加评论插件

1
npm install @waline/hexo-next

_config.next.yml 最后添加评论相关的配置(这里尽可能不修改子模块)

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# Waline
# For more information: https://waline.js.org, https://github.com/walinejs/waline
waline:
enable: true
serverURL: https://waline.bravexist.cn # vercel 域名
placeholder: (发表评论) # comment box placeholder
avatar: mm # Gravatar style
meta: [nick, mail, link] # Custom comment header
pageSize: 10 # Pagination size
lang: zh-cn # Language, available values: en, zh-cn
# Warning: Do not enable both `waline.visitor` and `leancloud_visitors`.
visitor: true # Article reading statistic
comment_count: true # If false, comment count will only be displayed in post page, not in home page
requiredFields: [nick, mail] # Set required fields: [nick] | [nick, mail]
libUrl: # Set custom library cdn url

七、手动bat上传github

deploy.bat

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
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
@echo off
chcp 65001 >nul
setlocal enabledelayedexpansion

echo 正在构建和部署Hexo博客...
echo.

:: 清理和生成静态文件
echo [1/4] 清理旧文件...
call hexo clean

echo [2/4] 生成静态文件...
call hexo generate
if errorlevel 1 (
echo 错误:静态文件生成失败!
pause
exit /b 1
)

:: 获取当前时间(格式化)
for /f "tokens=1-3 delims=/- " %%a in ('echo %date%') do (
set year=%%a
set month=%%b
set day=%%c
)
for /f "tokens=1-2 delims=: " %%a in ('echo %time:~0,5%') do (
set hour=%%a
set minute=%%b
)

:: 处理时间格式(去掉前导空格)
set hour=!hour: =0!
set minute=!minute: =0!

:: Git操作
echo [3/4] 提交源码到GitHub...
git add .
git status --porcelain >nul 2>&1
if errorlevel 1 (
echo 没有需要提交的更改
) else (
git commit -m "!year!-!month!-!day! !hour!:!minute! 更新博客内容"
git push origin main
if errorlevel 1 (
echo 错误:推送到GitHub失败!
pause
exit /b 1
)
echo GitHub推送成功!
)

:: 部署到GitHub Pages
echo [4/4] 部署到GitHub Pages...
call hexo deploy
if errorlevel 1 (
echo 错误:部署失败!
pause
exit /b 1
)

echo.
echo 博客部署完成!
echo 源码已推送到:GitHub仓库
echo 博客已部署到:GitHub Pages
echo.
pause

七、部署到Edgeone

https://console.cloud.tencent.com/edgeone/pages

选择GitHub仓库,选择Hexo构建,绑定自定义域名。

八、参考文献

Welcome to Hexo! This is your very first post. Check documentation for more info. If you get any problems when using Hexo, you can find the answer in troubleshooting or you can ask me on GitHub.

Quick Start

Create a new post

1
$ hexo new "My New Post"

More info: Writing

Run server

1
$ hexo server

More info: Server

Generate static files

1
$ hexo generate

More info: Generating

Deploy to remote sites

1
$ hexo deploy

More info: Deployment

vi、vim的使用

还记得当年第一次使用vim怎么都退不出去的焦灼处境,后来慢慢变得熟悉,但是可能有个完美主义的情结,总想要一次达到很高的完成度,鸟哥的Linux私房菜的相关内容写的很好,发现很适合自己,来记录一遍吧。

vi是一种文本编辑器,大多数主流的Linux机器都会安装vi,vim是vi的进阶版本,拥有更多的功能。首先需要了解的是,vi、vim有三种模式,默认进入后的模式是一般命令模式;编辑文件时是编辑模式;执行命令时是命令模式

vi其实已经很完善了,vim比vi多了对代码文件的语法高亮、代码补全、区块选择,正则表达式搜索、多窗口等。

一、三种模式的切换

一般命令模式是一种中间状态,命令模式和编辑模式无法直接切换。

  • 一般命令模式–>>命令模式
1
2
3
:
?
/
  • 命令模式–>>一般命令模式
1
Esc
  • 一般命令模式–>>编辑模式
1
2
3
4
5
6
i     在光标处插入,进入编辑模式
a 在光标下一个字符处插入,进入编辑模式
o 在光标下一行插入,进入编辑模式
I 在光标所在行第一个非空字符前插入,进入编辑模式
A 在光标所在行最后一个字符后插入,进入编辑模式
O 在光标上一行插入,进入编辑模式
  • 编辑模式–>>一般命令模式
1
Esc

二、一般命令模式

新建一共文件或者打开一共文件,默认就是此模式。

  • 光标的简单移动
1
2
3
4
h     光标左移一个字符,等同于←
j 光标下移一行,等同于↓
k 光标上移一行,等同于↑
l 光标右移一个字符,等同于→
  • 光标的比较大范围的上下移动
1
2
3
4
5
6
7
H     光标移动到屏幕显示的第一行
M 光标移动到屏幕显示的中间一行
L 光标移动到屏幕显示的倒数第5行(鸟哥Linux私房菜里写的是屏幕最后一行)
G 光标移动到最后一行
nG 光标移动到第n行,n是数字
gg 光标移动到文件第一行,相当于1G
n<Enter> n是数字,<Enter>是回车,会向下移动n行
  • 光标的比较大范围的左右移动
1
2
3
0     光标移动到本行的第一列
$ 光标移动到本行的最后一列
n<space> n是数字,<space>是空格,会向右移动n个字符
  • 翻页、翻半页
1
2
3
4
ctrl + f     向下翻一页
ctrl + b 向上翻一页
ctrl + d 向下翻半页
ctrl + u 向上翻半页
  • 进入编辑模式
1
2
3
4
5
6
7
8
i     在光标处插入,进入编辑模式
a 在光标下一个字符处插入,进入编辑模式
o 在光标下一行插入,进入编辑模式
I 在光标所在行第一个非空字符前插入,进入编辑模式
A 在光标所在行最后一个字符后插入,进入编辑模式
O 在光标上一行插入,进入编辑模式
r 替换光标的下一个字符,不会进入编辑模式
R 在光标处开始一直替换字符,会进入替换模式,
  • 剪切、复制、粘贴、撤销
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
x     向后剪切一个字符
X 向前剪切一个字符(不包含本字符)
nx n是数字,代表一次剪切n个字符
dd 剪切本行
ndd n是数字,剪切n行
d0 剪切本行第一个字符到本字符之间的字符串(不包含本字符)
d$ 剪切本字符到本行最后一个字符之间的字符串
d1G 剪切第一行到本行的行
dG 剪切本行到的最后一行
yy 复制本行
nyy n是数字, 复制n行
y0 复制本行第一个字符到本字符之间的字符串(不包含本字符)
y$ 复制本字符到本行最后一个字符之间的字符串
y1G 复制第一行到本行的行
yG 复制本行到的最后一行
pp 在此下一行/字符粘贴,
P 在此上一行/字符粘贴,
#扩展,好像没什么用,已经很容易做到这个操作了
ynG n是数字,表示复制本行到n行之间、或n行到本行之间的行
u 撤销上一步操作
. 重复上一个操作
c 删除数据,10cj代表删除向下删除10行的数据(包括本行)
J 将本行和下一行合并为一行,即删除本行的回车符
ZZ 如果文件未修改则不保存退出,如果已经修改,则保存后退出
q: 查看历史编辑记录

三、命令模式

  • 查找特定关键词
1
2
3
4
/word<Enter>     <Enter>是回车,向下查找第一个`word`关键词
?word<Enter> <Enter>是回车,向上查找第一个`word`关键词
n 如果刚刚查找完,表示继续向这个方向查找
N 如果刚刚查找完,表示继续向另一个方向查找
  • 查找并替换
1
2
3
:n1,n2s/word1/word2/g     n1、n2是数字,向下查找并替换`word1`关键词为`word2`
:n1,n2s/word1/word2/gc 每一次替换都需要确认
:1,$s/word1/word2/g 代表从文件头到文件尾查找并替换
  • 临时退出,执行shell命令
1
:!<command>     <command>是要执行的shell命令
  • 显示/隐藏文件的行数
1
2
:set nu     显示文件的行数
:set nonu 隐藏文件的行数
  • 退出
1
2
3
4
:q     退出文件编辑
:q! 强制退出文件编辑。即不保存文件直接退出
:wq 保存并退出
:wq! 强制保存并退出
  • 保存文件
1
2
3
4
:w                 保存文件
:w 新的文件名 保存文件到另一个文件
:w! 强制保存,权限可变为可写的情况下
:n1,n2 2 新的文件名 保存n1行到n2行之间的内容到另一个文件
  • 读入文件
1
:r 待读的文件     追加待读的文件到光标后
  • 一些环境变量
1
2
3
:set bg=dark      切换背景主题,深蓝色的字体偶尔不明显
:set hlsearch 设置高亮搜索
:set nohlsearch 取消设置高亮搜索
  • 多文本切换的编辑
1
2
3
:files      查看编辑的文件
:n 编辑下一个文件
:N 编辑上一个文件
  • 加密
1
:X         可以加密文件,但是要注意加密后密码错误的情况下不要修改文件.

四、vim额外一些功能

  • 区块选择
1
2
3
v     按照字符选中
V 按照行数选中
ctrl+v 按照矩阵区块选中
  • 多窗口
1
2
3
4
5
6
7
8
9
:sp             默认会另一个横向窗口打开同一个文件
:sp 文件名 新横向窗口打开新的文件
:vsp 默认会另一个纵向窗口打开同一个文件
:vsp 文件名 新纵向窗口打开新的文件
ctrl + w + ↑ 移动到上方的窗口
ctrl + w + j 移动到下方的窗口
ctrl + w + ↓ 移动到下方的窗口
ctrl + w + k 移动到上方的窗口
ctrl + w + q 关闭窗口退出(修改文件后就不能这样了)
  • 关键词补全
1
2
3
ctrl + x ,ctrl + n        当前文件内容补全
ctrl + x ,ctrl + f 当前目录文件名补全
ctrl + x ,ctrl + o 扩展名内置函数补全
  • vim相关文件
1
2
~/.vimrc         记录一些环境变量
~/viminfo 记录vim的操作
  • 分屏打开多个文件
1
2
vim -o file1 file2         横向分屏
vim -O file1 file2 纵向分屏
  • 打开文件并跳转到指定行
1
vim file +n      n是数字,代表行数
  • 只读方式打开文件
1
2
vim -R file       只读方式打开文件,可以强制保存
vim -M file 只读方式打开文件,不可以强制保存
  • 恢复异常的文件
1
vim -r file     恢复异常的文件
  • 打开文件并且光标停留到第一个搜索到的字符串
1
vim +/string  file      打开文件并且光标停留到第一个搜索到的字符串string

五、异常处理

偶尔会发生一些异常情况,比如多人同时编辑一共文件,文件编辑后vim异常退出,都会导致留下一个.swp的文件,此时可以选择恢复或者删除。

六、使用向导

后来查资料才发现,vim有一个引导程序来介绍使用。

1
vimtutor

暂时先就此为止吧,再多用不到的知识也只是徒增烦恼哈

七、关联阅读

八、封面图

vim

0%