博客使用

本文最后更新于:2022年4月5日 早上

博客使用

搭建过程

略,这种东西搭一次要用好久,下一次再搭时,方法已经过时了,找官方搭建方法即可(官方的过时很久了,有坑)

1
2
3
4
5
npm install hexo-cli -g
hexo init blog
cd blog
npm install
hexo server

hexo安装后,安装了fluid主题。然后配置了一下。

hexo官方文档
fluid官方文档

目录结构

1
2
public -- 这是生成的静态页面,hexo g命令生成,hexo clean会删除这个目录
source -- 保存的文章

hexo命令

  • hexo init name
    初始化一个博客

  • hexo new title, 简写hexo n
    新建一个文章,也可以不用这命令,直接去source/_posts目录建md文件,差不太多

  • hexo generate, 简写hexo g
    生成静态文件,可加-d选项,表示生成后部署

  • hexo server,简写hexo s
    启动本地服务器

  • hexo deploy,简写hexo d
    将静态页面部署出去

  • hexo clean
    清理生成的静态文件
    如果已经发布的文章,无法删除,需要删掉.deploy_git目录

分类,标签

markdown文件中添加如下内容

date–创建时间
updated–更新时间

如果不指定时间,将会根据文件的创建修改时间决定

1
2
3
4
5
6
7
8
9
10
11
---
title: 文章名
date: 2017-05-26 12:12:57
updated: 2022-4-3 17:11:27
categories:
- 分类名只能有一个
tags:
- 标签
- 表格
- 表单验证
---

部署

如果是部署到github page,那么hexo g -d提交代码后,大约隔一分钟访问才会刷新,这是gitbub page的编译机制吧。

配置:

1
2
3
4
deploy:
type: git
repo: git@github.com:leon0625/leon0625.github.io.git
branch: main

然后在git仓库里面加开发者秘钥。

自动部署

要在每台电脑上写博客,那么需要在每台电脑上安装hexo。通过nextcloud同步博客数据虽说也不是太麻烦。但笔记本身会在obsidian存一份,需要发布的笔记又要复制一份到blog目录,更新的时候也需要复制,不是很方便。

构想如下:

sequenceDiagram
	autonumber
	participant J as obsidian
	participant N as nextcloud服务器
	participant G as github.io
	N ->> N: 检查是否有md文件修改
	J->>N: 编辑保存后同步过来
	N ->> G:检查到有posthex标志<br/>有的话自动构建部署

nextcloud上的处理流程

flowchart 
	a1((启动)) --> a2(遍历obsidian目录) --> a3(有postHexo标志) -->|是| a4(分析文本)
	a3 --> |否|a2
	a2 --> |遍历结束| b1(监控文件变化)
	a4 --> c2("复制到hexo blog目录(重命名文件,更新updated字段)")
 	b1 --> |文件变化| d1(有postHexo标志) --> |否|b1
 	c1("提取updated字段,提取title")
 	d1 --> |是|c1 --> c2 --> e1(hexo g -d部署)

updated字段使用nextcloud上文件的修改时间。


博客使用
https://leon0625.github.io/2022/04/04/e4fd2d78b4bb/
作者
leon.liu
发布于
2022年4月4日
许可协议