Skip to content

Commit

Permalink
fix: enable local search
Browse files Browse the repository at this point in the history
  • Loading branch information
Kuro-P committed Aug 18, 2023
1 parent 45a8188 commit 5644587
Show file tree
Hide file tree
Showing 6 changed files with 52 additions and 51 deletions.
6 changes: 6 additions & 0 deletions README.md
Original file line number Diff line number Diff line change
@@ -1,6 +1,9 @@
# Kuro-P.github.io
My blog record. [https://kuro-p.github.io/](https://kuro-p.github.io/)


![deploy workflow](https://github.com/Kuro-P/Kuro-P.github.io/actions/workflows/deploy.yml/badge.svg)

## Develop
If there's some files you don't want to commit, please use `.gitignore` but not hexo-deployer-git.

Expand Down Expand Up @@ -55,5 +58,8 @@ __Try to Upgrade `hexo`, `theme-next` and `hexo-douban` 's version__
### 2023 7.27
* feat: enable fancybox

### 2023 7.28
* feat: use github action to automate deployment

### TODO
* Gt commit warning on Windows: `LF will be replaced by CRLF`
28 changes: 0 additions & 28 deletions deploy/build.sh

This file was deleted.

3 changes: 0 additions & 3 deletions package.json
Original file line number Diff line number Diff line change
Expand Up @@ -2,9 +2,6 @@
"name": "kuro-p-hexo-site",
"version": "0.0.0",
"private": true,
"hexo": {
"version": "7.0.0-rc2"
},
"scripts": {
"clean": "hexo clean",
"dev": "hexo server",
Expand Down
2 changes: 2 additions & 0 deletions source/README.md
Original file line number Diff line number Diff line change
@@ -1,2 +1,4 @@
# Kuro-P.github.io
My blog record. [https://kuro-p.github.io/](https://kuro-p.github.io/)

![deploy workflow](https://github.com/Kuro-P/Kuro-P.github.io/actions/workflows/deploy.yml/badge.svg)
62 changes: 43 additions & 19 deletions source/_posts/Hexo-基础使用.md
Original file line number Diff line number Diff line change
Expand Up @@ -15,7 +15,7 @@ node 环境下,全局安装 hexo-cli
npm install hexo-cli -g
````
### 初始化
进入到一个放置blog的**空文件夹**
进入到一个放置 blog 的 **空文件夹**
````
hexo init
hexo generate
Expand All @@ -26,20 +26,22 @@ npm install hexo-cli -g

### 换主题
Hexo 官网提供了一些主题 [https://hexo.io/themes/ ](https://hexo.io/themes/)
* git clone 主题地址到 blog 目录下,将全局_condig.yml中的theme名字改为clone下来的文件夹的名字
* 主题中有可供选择的几套样式,更改主题 _config.yml 里的 scheme
* 设置代码高亮样式 更改主题 _condig.yml 里的 hightlight_theme
* 切换Hexo语言 在全局 _condig.yml 里的 language 改成 zh-Hans 即为主题下的简体中文(默认为英文)
* (更换完主题,需要重启应用,方能生效)
* __由于主题也是一个git仓库,下载后记得删除.git文件,否则主题文件是无法提交的__
* git clone 主题到 blog 项目 `/themes` 文件夹下,将全局 _config.yml 中的 theme 名字更改为 clone 下来的主题文件夹的名字
* 主题中有可供选择的几套样式,更改主题 _config.yml 里的 scheme 属性
* 设置代码高亮样式 更改主题 _config.yml 里的 hightlight_theme 属性
* 切换 Hexo 语言 修改全局 _config.yml 里的 language 属性,值为 zh-Hans (Hexo 3+) / zh-CN(Hexo 4+) 即为简体中文(默认为英文)
* (更换完主题,需要重启&重新编译应用,方能生效)
* __由于主题也是一个 git 仓库,下载后记得删除 .git 文件,否则主题文件是无法提交的__
* 主题更新:
* 由于先前已经删除了主题目录下的 `.git` 文件夹,所以无法通过 `git pull` 来更新。每次更新需要将新的代码 clone 到 `/theme` 文件夹中,再手动迁移,比较麻烦,建议有大版本时再更新...

### 生成文章
````
hexo new "postName" # /source/_post/postName & .md
hexo new page "pageName" # /source/pageName/index & index.md
hexo generate # /source/.md -> /public/.html
hexo server
hexo deploy #将.deploy目录部署到GitHub
hexo deploy # 将 /public 目录部署到 GitHub
````

### 删除文章
Expand All @@ -51,19 +53,17 @@ Hexo 官网提供了一些主题 [https://hexo.io/themes/ ](https://hexo.io/the

### 其他
- **插入本地图片**
每次`hexo new 'postName'`时,都会创建一个与文章名相同的文件夹,将文章所需资源放入该文件夹里,引用的时候直接写文件名即可
每次`hexo new 'postName'`时,都会创建一个与文章名相同的文件夹,将文章所需资源放入该文件夹里,引用时使用 `{% asset_img [文件名] %}` 即可
- **页面增加“阅读更多”按钮**
在 .md 文件中增加`<!--more-->`注释,如果想自动添加“阅读更多”按钮,可在主题下的`_config.yml`中将`auto_excerpt`下的`enable`设置为`true`
在 .md 文件中增加 `<!--more-->` 注释,如果想自动添加“阅读更多”按钮,可在主题下的 `_config.yml` 中将 `auto_excerpt` 下的 `enable` 设置为 `true`

### 插件
* [hexo-deployer-git](https://github.com/hexojs/hexo-deployer-git) 一键部署到 GitPage
* [hexo-douban](https://github.com/mythsman/hexo-douban) 爬取豆瓣相关信息
* 如遇网络问题爬取失败的报错,将 node 回退到 12.18.x 后重试([issue地址](https://github.com/mythsman/hexo-douban/issues/77)
* 如果生成的 /movies 页面访问报错,将 hexo 版本回退到 3.9.0 后重试
* [hexo-douban](https://github.com/mythsman/hexo-douban) 爬取豆瓣个人条目相关信息
* [hexo-generator-search](https://github.com/wzpan/hexo-generator-search) 全文搜索功能

### 部署
`hexo d`部署前,需要安装`npm install hexo-deployer-git --save`
`hexo d` 部署前,需要安装`npm install hexo-deployer-git --save`
修改全局 `_config.yml` 中的配置:
````
deploy:
Expand All @@ -73,11 +73,11 @@ Hexo 官网提供了一些主题 [https://hexo.io/themes/ ](https://hexo.io/the
message: [message]
name: [git user]
email: [git email]
extend_dirs: [extend directory] #其他要提交的目录
ignore_hidden: true #忽略隐藏文件
ignore_pattern: regexp #忽略正则匹配的隐藏文件
extend_dirs: [extend directory] # 其他要部署的目录
ignore_hidden: true # 忽略隐藏文件
ignore_pattern: regexp # 忽略正则匹配的隐藏文件
````
之后,只需要`hexo d -g`一条命令就可以生成和部署了。关于 hexo-deployer-git 这个插件的参数 [hexo官方文档](https://hexo.io/zh-cn/docs/deployment.html) 介绍的并不全面,建议去 [hexo-deployer-git官方文档](https://github.com/hexojs/hexo-deployer-git) 查看相关配置参数。
之后,只需要 `hexo d -g` 一条命令就可以生成和部署了。关于 hexo-deployer-git 这个插件的参数 [hexo 官方文档](https://hexo.io/zh-cn/docs/deployment.html) 介绍的并不全面,建议去 [hexo-deployer-git 官方文档](https://github.com/hexojs/hexo-deployer-git) 查看相关配置参数。

__注意:__
* 默认部署,只将生成的 HTML 相关文件(`/public`文件夹)推送到 github
Expand All @@ -86,7 +86,27 @@ __注意:__
* name、email 的配置信息用来覆盖全局的 git config 中的配置,更改这两项后,需要删除根目录下的 `.deploy_git` ,部署时才会生效
* master 只能放 `/public` 下的文件,将项目所有文件放到 master 分支下,会导致页面 build 失败。若想将本地代码全部提交,可部署在其他分支(在 `_config.yml` 中增加其他分支配置信息,详情参考文档)
* 避免提交 node_modules,需在项目下新建`.gitignore`文件(为什么不使用 extend_dirs ?因为需要添加的文件夹太多...)
* 若遇见 `Error: EACCES: permission denied, unlink /XXX` 相关的错误,大部分是由没权限引起的,使用 `sudo chown -R `whoami`:staff /你的blog目录` 即可
* 若遇见 `Error: EACCES: permission denied, unlink /XXX` 相关的错误,大部分是由没权限引起的,使用 `sudo chown -R `whoami`:staff /blog 目录` 即可

### 自动化部署
1. 使用 github action 脚本自动部署 hexo pages 到目标分支。
当前开发时的源代码在 develop 分支上,静态文件会部署到 master 分支上。 原理其实就是利用 github action events 触发编译操作,在 github 提供的机器上编译后发布到 master 分支。这样就省去了在本地编译的麻烦。
需要注意的是,如果使用 ssh 方式部署,那么需要将 ssh 公钥、秘钥上传到项目中,否则机器没权限提交代码。

部署配置过程参考:https://juejin.cn/post/7014675289728876574

2. 部署后文章的更新时间异常
- __文章更新时间错误__ :github action 默认时区是 UCT 时间 08:00,比北京时间快 8 个小时。因此运行环境要改为北京时间。(PS:中国一共[五个时区](https://zhuanlan.zhihu.com/p/450867597),命名是历史原因,北京所在的时区名字就是 Asia/Shanghai)
```
name: Deploy CI
on:
push
env:
TZ: Asia/Shanghai
```
- 所有文章的更新时间都被更新成最新时间:git 在推送更新时,并不保存文件的访问时间、修改时间等信息,故默认取了 github 推送时间,需要将 文件的 update 时间更改为单个文件在 github 上的推送时间。相关文章↓:
- [hugo 博客 github action 部署后文章更新时间异常修复](https://cloud.tencent.com/developer/article/2298026)
- [修复 CI 构建博客造成的更新时间错误](https://mrseawave.github.io/blogs/articles/2021/01/07/ci-hexo-update-time/)

### 搜索功能
全局安装插件 `npm install hexo-generator-search --save`
Expand All @@ -106,6 +126,10 @@ __注意:__
````

生效:`hexo clean``hexo g``hexo s`

### 图片放大查看功能
`themes/next/_config.yml` 文件中,将 `fancybox` 或者 `mediumzoom` 置为 true。

### Hexo 目录解析
````
├── node_modules # 依赖包-安装插件及所需nodejs模块。
Expand Down
2 changes: 1 addition & 1 deletion themes/next/_config.yml
Original file line number Diff line number Diff line change
Expand Up @@ -742,7 +742,7 @@ algolia_search:
# Local Search
# Dependencies: https://github.com/theme-next/hexo-generator-searchdb
local_search:
enable: false
enable: true
# If auto, trigger search by changing input.
# If manual, trigger search by pressing enter key or search button.
trigger: auto
Expand Down

0 comments on commit 5644587

Please sign in to comment.