1. 前言
在之前的文章《Hexo 疾速搭建指南》中,重点解说了如何搭建以及部署博客。然而在前期写博客的过程中,有可能遇到很多麻烦,比方:
- 我不想手动保护文章的 Categorys,我想以文件目录的模式治理文章分类
- VSCode 编写 Markdown 文件不爽,我想用其余的编辑器来写 Markdown
hexo new
指令生成的模板太拉了,我不想用- 我想把我的 markdown 文档同步到云平台上,不便我的其余设施即时查看
那么这篇文章就会教你应用最舒服的姿态来前期保护你的博客,缩小心智累赘与解决各种不爽的中央。
2. 更好的文章治理计划
2.1 文章以目录分类
当咱们写好一篇文章后,依照 hexo 的默认配置,咱们须要将其放在 source/_post
目录下,等工夫长了之后,_post
目录下的文章就会变得横七竖八,无奈让咱们疾速的 review 到一篇文章。
那么最好的解决方案就是咱们在创立文章的时候以 文章分类
作为文件夹创立咱们的文章,比方:
.
└── source
└── _post
├── 前端
│ ├── Javascript
│ │ └── Javascript 原型链机制.md
│ └── 浏览器
│ └── 浏览器性能优化.md
└── 后盾
├── GoLang
│ └── go 语言简介.md
└── Java
└── Spring MVC 疾速入门.md
2.2 依据文件目录主动生成 categories 信息
尽管咱们把文章放的东倒西歪了,然而每个文章里的 categorys
字段还是要咱们手动本人保护的,比方在 source/_post/ 前端 /Javascript/Javascript 原型链机制.md
文件中,咱们要通过手写 categories
来让 hexo 晓得这篇文章被放在 前端 -Javascript
分类下:
---
title: Javascript 原型链机制
categories:
- 前端
- Javascript
date: 2022-06-05 12:06:47
---
这里是注释
为了省去手动保护 categorys
字段的这个问题,咱们能够应用 hexo-auto-category 这个插件。这个插件在 Hexo 进行 build 的时候会去主动依据文章目录状况来主动修改文章的 categories
信息,更具体的局部能够看作者的文章。
除此之外最好批改一下 _config.yml
中的两处默认配置:
# 批改 permalink 让你的文章链接更加敌对,并且有益于 SEO
permalink: :year/:month/:hash.html
# 规定你的新文章在 _post 目录下是以 cateory
new_post_name: :category/:title
2.3 提交代码时主动生成新文章的 categories
然而这里有一个问题,就是只有 hexo 在执行 hexo generate
或者 hexo server
时候才会去触发 categories
的生成,那么每次咱们创立文章都要经验这样的工作流:
- 创立分类目录,写文章,文件名举荐与文章题目统一(不必关怀
categories
写什么); - 填写
title
、date
、tag
等元信息(这个文章后续再探讨如何省去这一步); - 执行
npx hexo generate
在构建博客的时候触发hexo-auto-category
插件的主动改正categories
性能; - 查看文章中的
categories
是否正确; - 增加 git 工作区变更,并提交并推送代码到 github。
为了简化这些工作,咱们能够应用 git hook,在咱们每次执行 commit
前都主动运行 npx hexo generate
触发主动生成 categories
的行为,并将生成后的变更主动增加到本次提交中,而后一起 push 到 github 下来。这里能够应用 husky 来很不便的设置这样一个 git hook。
GitHook 能够在执行代码的 commit、push、rebase 等阶段前触发,做一些前置行为,比方在每次提交代码时候执行一段 shell 脚本,来做一些代码查看或者告诉 ci 等操作。
Husky 采纳了更简略的一种形式,让治理 GitHook 更加现代化
对于 Husky 的应用能够参考我之前的文章《应用 husky 每次提交时进行代码查看》
你能够依照如下步骤疾速实现设置:
- 装置 huksy:
npm install husky --save-dev
- 执行 huksy 初始化指令:
npx husky install
- 在
package.json
中的scripts
中写入:"prepare": "husky install"
- 在生成的
.husky
目录创立pre-commit
文件(有的话就不必创立),并写入以下内容:
#!/usr/bin/env sh
. "$(dirname --"$0")/_/husky.sh"
npx hexo generate && git add .
如果提交代码的时候,终端呈现相似的构建过程,就阐明由 husky 创立的 git hook 失效了:
这样你新建一篇博客的工作流就简化为:
- 创立分类目录,写文章;
- 填写
title
、date
、tag
等元信息; - 增加 git 工作区变更,并提交并推送代码到 github。
这样就解决了令人头疼的文章分类问题~
3. 应用 Obsidian 来编写和治理文章
Obsidian 是目前个人感觉应用起来最舒服的基于 Markdown 的笔记管理工具,益处不多言,用了就晓得。
3.1 将 Hexo 我的项目导入 Obsidian
这一步很简略,关上 Obsidian 后,它会默认关上上次的存储库,这个时候你须要点击左下角的 关上其余库
icon 来调出欢送面板:
而后在欢送面板关上你的 Hexo 我的项目即可:
因为 hexo 的文章只存在于 source
目录下,咱们须要让 Obsidian 疏忽其余文件的内容以优化性能以及缩小不必要的搜寻后果。具体的操作是在 设置 - 文件与链接 -Exclude Files
,将须要疏忽的文件增加进去(尤其是 node_modules):
同时,在你的 hexo 我的项目的 .gitignore 文件中退出如下内容:
.obsidian/workspace
.obsidian 文件自身是能够同步的,以后存储库的插件以及相干的配置都会下载在这个文件夹中,因而将其同步到 git 记录中也是十分有用的,如果你切换设施就不须要从新为以后的存储库重新配置 Obsidian 了。
3.2 应用 Obsidian 模板疾速创立文章
Obsidian 是反对创立新文件时插入模板的,这就意味着咱们能够不必反复写 Hexo 博客文的 Front-matter 局部。
Front-matter 是文件最上方以
---
分隔的区域,用于指定个别文件的变量,举例来说:—
title: Hello World
date: 2013/7/13 20:46:25
—
首先咱们要创立模板,咱们能够在 source
目录下创立 _obsidian
文件夹,并创立一篇 Post Template
的文章(md 文件),内容为:
---
title: {{title}}
date: {{date}}
tags: []
---
而后进入到 Obsidian 的设置面板,抉择『外围插件』,并启用『模板』性能。同时点击旁边的配置按钮,进入到模板配置的设置中,将配置信息设置为:
之后,咱们再创立新文章的时候,只须要点击侧边栏的『插入模板』按钮就能够疾速生成 Front-matter 信息:
3.3 应用 Obsidian Git 插件
咱们将 Hexo 我的项目导入到 Obsidian 之后就能够写作了,然而当写作实现之后还面临着提交代码、推送代码到 Github 上这一操作。如果咱们在用额定的终端来进行这些操作的话就太割裂了,因而咱们能够应用 Obsidian Git 插件来在 Obsidian 内就能够实现 git commit 以及 push 的操作。
Obsidian Git 属于第三方插件,要想应用它必须在设置中敞开平安模式:
而后浏览插件库,搜寻 Obsidian Git 并点击装置,装置实现之后依据本人须要的设置进行配置即可。
如果想要查看以后的工作区、暂存区,能够应用快捷键 command + p
关上命令面板,输出 open source control view
就能够关上 Git 面板了,这里的面板跟 VSCode 的面板操作相似,并且我它会主动帮你生成 commit 信息(你能够自行在 Obsidian Git 设置面板里配置默认的 commit 信息):
当然你也能够懒得看 source control view,本人间接用 command+p
关上命令面板,别离执行 git commit
命令与 git push
即可。
3.4 应用 File Tree 插件
Obsidian 很不好的一点就是会把所有的文件都列在左侧的文件列表中,然而对于咱们的 Hexo 我的项目写文章来说,咱们只会批改 _post
目录下的文件,因而咱们心愿左侧的文件列表中只显示 _post
文件夹,然而目前为止 Obsidian 并没有推出相似『聚焦』到某一文件夹内的性能。
好在 Obsidian 弱小的插件库中有一个 File Tree Alternative Plugin
第三方插件能够满足这一需要。依照 Obsidian Git 雷同的办法去下载这个第三方插件,下载实现之后咱们会发现左侧菜单呈现了一个 File Tree
的 Tab 页,点击后就能够看到文件以树形的构造出现:
咱们开展 source
文件夹,并右键 _post
文件夹,抉择 Focuse on Folder
后,左侧的文件列表中就只会显示 _post
文件夹中的内容了:
4. 应用 iCloud 同步
如果你是苹果系用户,齐全能够通过 iCloud 将 Hexo 我的项目作为 Obsidian 库同步到各个设施上,让每个设施都能够通过 Obsidian 实时查看和编辑笔记。
你只须要将你的 Hexo 我的项目复制到 iCloud 的 Obsidian 文件夹即可,然而须要留神的一点是,你我的项目的 node_modules
也同步到 iCloud 上的话就太恐怖了。为了防止这一状况,咱们须要将 node_modules
命名为 node_modules.nosync
这样就不会被 iCloud 同步。然而咱们又须要 node_modules
来让我的项目失常运行,因而咱们能够应用软链来创立一个 node_modules
软链到 node_modules.nosync
就能两全其美。简化成终端指令能够为:
# 重命名 node_modules
mv node_modules node_modules.nosync
# 创立 node_modules 软链
ln -s node_modules.nosync/ node_modules