在coding自动化部署hexo

木木木木木的博客上发现两篇有意思的文章,于是决定把博客小小改造下。自动化部署,真的就全web界面写博客了;字体异步加载,提高页面载入速度,很早就有这个想法,这次总算比较优雅地解决了。

博客自动化部署

既然选择了coding作为仓库,顺手采用他家的构建计划,和github actions异曲同工。直接贴出.Jenkinsfile

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
pipeline {
agent any
stages {
stage('检出') {
steps {
checkout([
$class: 'GitSCM',
branches: [[name: env.GIT_BUILD_REF]],
doGenerateSubmoduleConfigurations: false,
extensions: [[$class: 'SubmoduleOption',
disableSubmodules: false,
parentCredentials: false,
recursiveSubmodules: false,
reference: '',
trackingSubmodules: false
]],
submoduleCfg: [],
userRemoteConfigs: [[
url: env.GIT_REPO_URL,
credentialsId: env.CREDENTIALS_ID
]]])
}
}
stage('安装依赖') {
steps {
sh 'npm install -g hexo-cli'
sh 'npm install'
}
}
stage('自动部署') {
steps {
sh 'npx gulp deploy'
}
}
}
}

值得一提的是,next主题需要作为submodule一同checkout,deploy使用gulp脚本,生成、压缩、上传一条龙。这里有个,hexo deploy插件的配置需要使用第二种形式。

异步加载字体文件

只需要在link标签增加两个属性即可解决这个问题。

1
<link rel="stylesheet" href="https://fonts.loli.net/css?family=Source+Sans+Pro:300" media="print" onload="this.media='all'">

参考链接

Hugo + Github Actions 实现自动化部署
添加 Google Fonts 思源宋体
Implicitly loading submodules in Jenkins pipeline stages