可以直接在文章的front-matter区域里添加 sticky: 1 属性来把这篇文章置顶。数值越大,置顶的优先级越大。
同样,在Front-matter添加cover,并填上要显示的图片地址。

如果不想在首页显示 cover, 可以设置为 false。

文章封面的获取顺序 Front-matter 的 cover > 配置文件的 default_cover > false

1
2
3
4
5
6
7
8
9
10
cover:
# 是否显示文章封面
index_enable: true
aside_enable: true
archives_enable: true
# 封面显示的位置
# 三个值可配置 left , right , both
position: both
# 当没有设置cover时,默认的封面显示
default_cover:

如何网站加载速度优化

压缩静态资源
  静态资源,顾名思义,就是不会变化的资源。当然这个不会变化并不是指这个资源永远不会变,而是在网站更新前不会自己发生变动。最常见的静态资源包括但不限于:HTML文件、多媒体文件(图片、影音……)、字体文件、JS/CSS文件……

  我们先说HTML以及JS/CSS文件,这一类由代码构成的文件,在我们进行编写时,为了提高可读性,会插入很多的空格、换行等等字符。这些字符有些看得见有些看不见,其存在与否都不会影响运行结果,但其是确确实实占用着空间的,所以使用工具删掉这些字符就能减小一部分体积。

方法:
  接下来就是说明我是用的压缩方案,我是使用gulp来压缩静态资源。
  首先,我们要安装gulp,在博客根目录打开终端,输入:

1
2
3
npm install --global gulp-cli
npm install gulp -g
npm install gulp --save

  接下来,我们要安装gulp插件,小伙伴根据自己需要进行安装即可,不需要全部安装:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
# 压缩HTML
npm install gulp-htmlclean --save-dev
npm install gulp-html-minifier-terser --save-dev

# 压缩CSS
npm install gulp-cssnano --save-dev

# 压缩JS
npm install gulp-terser --save-dev

# 压缩TTF
npm install gulp-fontmin --save-dev

# 压缩图片
npm install --save-dev gulp-imagemin

然后在根目录下创建【gulpfile.js】文件,并输入以下内容:

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
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
const gulp = require("gulp")
// 用到的各个插件
const htmlMin = require('gulp-html-minifier-terser')
const htmlClean = require('gulp-htmlclean')
const terser = require('gulp-terser')
const cssnano = require('gulp-cssnano')
const fontmin = require('gulp-fontmin')

// 压缩js
// 参数 doc:https://github.com/terser-js/terser#minify-options
gulp.task('minify-js', () =>
gulp.src(['./public/**/*.js'])
.pipe(terser({
compress: {
/** @see https://blog.csdn.net/weixin_39842528/article/details/81390588 */
sequences: 50,
unsafe: true,
unsafe_math: true,
pure_getters: true,
ecma: true
}
}))
.pipe(gulp.dest('./public'))
)

// 压缩css
// 参数 doc:https://cssnano.co/docs/what-are-optimisations/
gulp.task('minify-css', () =>
gulp.src(['./public/**/*.css'])
.pipe(cssnano({
mergeIdents: false,
reduceIdents: false,
discardUnused: false
})).pipe(gulp.dest('./public'))
)

// 压缩html
// 参数 doc:https://github.com/terser/html-minifier-terser#readme
gulp.task('minify-html', () =>
gulp.src('./public/**/*.html')
.pipe(htmlClean())
.pipe(htmlMin({
removeComments: true, // 清除html注释
collapseWhitespace: true, // 合并空格
collapseBooleanAttributes: true, // 压缩布尔类型的 attributes
noNewlinesBeforeTagClose: false, // 去掉换行符
removeAttributeQuotes: true, // 在可能时删除属性值的引号
removeRedundantAttributes: true, // 属性值与默认值一样时删除属性
removeEmptyAttributes: true, // 删除值为空的属性
removeScriptTypeAttributes: true, // 删除 `type="text/javascript"`
removeStyleLinkTypeAttributes: true, // 删除 `type="text/css"`
minifyJS: true, //压缩页面 JS
minifyCSS: true, //压缩页面 CSS
minifyURLs: true //压缩页面URL
}))
.pipe(gulp.dest('./public'))
)

//压缩字体
function minifyFont(text, cb) {
gulp
.src('./public/fonts/*.ttf') //原字体所在目录
.pipe(fontmin({
text: text
}))
.pipe(gulp.dest('./public/fontsdest/')) //压缩后的输出目录
.on('end', cb);
}

gulp.task('minify-ttf', (cb) => {
var buffers = [];
gulp
.src(['./public/**/*.html']) //HTML文件所在目录请根据自身情况修改
.on('data', function (file) {
buffers.push(file.contents);
})
.on('end', function () {
var text = Buffer.concat(buffers).toString('utf-8');
minifyFont(text, cb);
});
});

//压缩
gulp.task("zip", gulp.parallel('minify-js', 'minify-css', 'minify-html', 'minify-ttf'))

最后配置下命令,在【package.json】找到“scripts”,在其下server添加’&& hexo gulp’

1
2
3
4
5
"scripts": {
"build": "hexo generate",
"clean": "hexo clean",
"deploy": "hexo deploy",
"server": "hexo gulp && hexo server" # 这里把gulp 添加在前面

每次运行hexo s就会自动执行。