过了这么久,才想起做一个hexo的配置教程,因为帮很多人搭了很多遍,现在总结记录一下吧,也方便下次我复制代码
本文参考猕猴桃大佬的文章,在基础上补充以及修改。
博客搭建与魔改系列教程导航🚥🚥🚥

1.环境与工具准备

本教程主要面对的是Windows用户

  • 操作系统:Windows10
  • Node
  • Git
  • Hexo
  • 文本编辑器(强烈推荐VSCODE)
  • GitHub 帐号
  • 一个域名(强烈推荐买个域名)
  • 云服务器(可选)

    2.Node安装

  1. 打开Node官网,下载和自己系统相配的Node的安装程序,否则会出现安装问题。下载地址:https://nodejs.org/en/download/
  2. 下载后安装,安装的目录可以使用默认目录【D:/Program Files/nodejs/】,也可以自定义路径。
  3. 这个环境路径切换坑也很多,如果大家C盘空间足够可以直接装C盘,如果想切换其他盘或者把环境遍历切换到自定义路径也可以,具体教程百度(不过坑比较多就是了)!
  4. 安装完成后,检查是否安装成功。在键盘按下win + R键,输入CMD,然后回车,打开CMD窗口,执行node -v命令,看到版本信息,则说明安装成功。
  5. 修改npm源。npm下载各种模块,默认是从国处服务器下载,速度较慢,建议配置成淘宝镜像。打开CMD窗口,运行如下命令:
    1
    npm config set registry https://registry.npm.taobao.org
    不过经过我的测试我觉得换成下面的国内告高速镜像源也不错
    1
    npm config set registry https://registry.npmmirror.com
    想要还原默认源的话,执行如下命令:
    1
    npm config set registry https://registry.npmjs.org

    3.Hexo安装

  6. Git BASH输入如下命令安装
    1
    npm install -g hexo-cli
  7. 安装完后输入hexo -v验证是否安装成功。
  8. 这里方便一次性安装和初始化,我们直接使用这个命令即可
    1
    2
    3
    4
    5
    6
    npm install hexo-cli -g
    hexo init blog
    cd blog
    npm install
    hexo server

    4.Github注册与创建仓库

  9. 进入官网 https://github.com/
    Github注册
    点击右上角的 Sign up(注册)
    Github注册
  10. 填写自己的邮箱、密码、用户名等信息,然后用邮箱验证即可完成。
  11. 注册完成后,点击右上角的+按钮,选择New repository,创建一个<用户名>.github.io的仓库。
    注意:
  • 仓库的格式必须为:<用户名>.github.io (注意:前缀必须为用户名,不要等后面404了再来为什么!!!)
  • Description:为描述仓库(选填)
  • 勾选 Initialize this repository with a README 初始化一个 README.md 文件
  • 点击 Creat repository 进行创建

    5. Git安装

  1. 进入官网:https://git-scm.com/downloads ,由于官网下载太慢可以通过淘宝的开源镜像下载 网址:https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.36.1.windows.1/ ,下载版本更具自己的需求选择即可。
  2. 下载后傻瓜式安装Git即可,安装的目录可以使用默认目录【D:/Program Files/Git】,也可以自定义路径。
    Git安装
  3. 点击电脑左下角开始即可看见Git Bash
    Git CMD 是windows命令行的指令风格
    Git Bash 是linux系统的指令风格(建议使用)
    Git GUI是图形化界面(新手学习不建议使用)
  4. 常用命令
    1
    2
    3
    git config -l  //查看所有配置
    git config --system --list //查看系统配置
    git config --global --list //查看用户(全局)配置
  5. 配置用户名和邮箱
    1
    2
    git config --global user.name "你的用户名"
    git config --global user.email "你的邮箱"
    通过git config -l 检查是否配置成功,至此git安装及配置全部完成。

    6.连接至Github

  6. 执行以下命令生成ssh公钥,此公钥用于你的计算机连接Github
    1
    ssh-keygen -t rsa -C "你的邮箱"
    之后打开C盘下用户文件夹下的.ssh的文件夹,会看到 id_rsa.pub
    公钥
    用记事本打开上述图片中的公钥(id_rsa.pub),复制里面的内容,然后开始在github中配置ssh密钥。
    公钥
  7. 将 SSH KEY 配置到 GitHub
    进入github,点击右上角头像 选择settings,进入设置页后选择 SSH and GPG keys,名字随便起,公钥填到Key那一栏。
  8. 测试连接
    1
    ssh -T git@github.com
    如果出现Hi XXX! You've successfully authenticated, but GitHub does not provide shell access.,则说明连接成功,至此完成了环境准备工作。
    如果出现ssh: connect to host github.com port 22: Connection timed out,则说明连接失败,需要检查网络连接。
    如果出现Are you sure you want to continue connecting (yes/no/[fingerprint])?,输入yes即可。

    7.初始化 Hexo 项目

  1. 在目标路径(我这里选的路径为【D:/hexo】)打开cmd命令窗口,执行hexo init初始化项目。
    魔改后不要输入hexo init,否则会重置
    如果第三步安装hexo时你已经做过这个步骤,不需要做此步了,跳到第3点去看即可
    1
    hexo init blog(项目名)
  2. 进入blog ,输入npm i安装相关依赖。
    1
    2
    cd blog  //进入blog文件夹
    npm i
    初始化项目后,blog有如下结构:
  • 【node_modules】:依赖包
  • 【scaffolds】:生成文章的一些模板
  • 【source】:用来存放你的文章
  • 【themes】:主题
  • 【.npmignore】:发布时忽略的文件(可忽略)
  • 【_config.landscape.yml】:主题的配置文件
  • 【config.yml】:博客的配置文件
  • 【package.json】:项目名称、描述、版本、运行和开发等信息
  1. 输入hexo server或者hexo s启动项目
  2. 打开浏览器,输入地址:http://localhost:4000/ ,看到下面的效果,说明你的博客已经构建成功了。
    成功

    8.将静态博客挂载到 GitHub Pages

  3. 安装 hexo-deployer-git上传插件
    1
    npm install hexo-deployer-git --save
    修改 _config.yml 文件
    在blog目录下的_config.yml,就是整个Hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述
    修改最后一行的配置,将repository修改为你自己的github项目地址即可,还有分支要改为main代表主分支(注意缩进)。
    1
    2
    3
    4
    deploy:
    type: git
    repository: git@github.com:用户名/用户名.github.io.git
    branch: main
  4. 修改好配置后,运行如下命令,将代码部署到 GitHub(Hexo三连)。
    Git BASH终端
    1
    hexo clean && hexo generate && hexo deploy
    vscode终端
    1
    hexo clean; hexo generate; hexo deploy
  • hexo clean:删除之前生成的文件,若未生成过静态文件,可忽略此命令。可以用hexo cl缩写
  • hexo generate:生成静态文章,可以用hexo g缩写
  • hexo deploy:部署文章,可以用hexo d缩写

    注意:deploy时可能要你输入 username 和 password。

    如果出现Deploy done,则说明部署成功了。
    稍等两分钟,打开浏览器访问:https://用户名.github.io ,这时候我们就可以看到博客内容了。

    9.无法连接至Github的解决方案

    注意:当你在与Github进行ssh通信时候出现超时或者是连接被关闭的情况,可以尝试以下解决方案。

  1. 挂代理和换网络(这个就不用多说了)
  2. Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”
    这是评论区的朋友提供的,可以解决SSH连接超时等问题
  3. 开源项目Github520
    通过修改Host文件的方法解决访问速度慢的问题

连接有效性检验:

1
2
3
# 任选其一即可
ping github.com
ssh -T git@github.com

10.安装主题

本教程用的 🦋 hexo-theme-butterfly 主题 v4.13.0

本教程用的是npm方式安装的 hexo-theme-butterfly,后续魔改时更改的文件都是【D:/hexo/blog/node_modules/hexo-theme-butterfly】文件夹中的文件。如果你是git clone克隆方式安装的主题,请在【D:/hexo/blog/themes/butterfly】文件夹下修改对应的文件。

注意:此方法只支持 Hexo 5.0.0以上版本!
在你的博客根目录(我这里路径为【D:/hexo/blog】)打开Git BASH命令窗口执行npm i hexo-theme-butterfly

1
npm i hexo-theme-butterfly

安装成功后可在【D:/hexo/blog/node_modules】文件夹下找到hexo-theme-butterfly文件夹

升级方法:在博客根目录下,运行 npm update hexo-theme-butterfly
升级前请将hexo-theme-butterfly文件夹备份,npm更新会直接覆盖成新的包。

在你的博客根目录里(我这里路径为【D:/hexo/blog】),打开Git BASH工具,执行命令即可。

1
git clone -b 4.5.0 https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly

安装成功后可在【D:/hexo/blog/themes】文件夹下找到butterfly文件夹,可以将landscape文件夹删掉。

升级方法:在主题目录下,运行git pull

在你的博客根目录里(我这里路径为【D:/hexo/blog】),打开Git BASH工具,执行命令即可。

1
git clone -b 4.5.0 https://gitee.com/iamjerryw/hexo-theme-butterfly.git themes/butterfly

升级方法:在主题目录下,运行git pull

11.应用主题

  1. 修改站点配置文件_config.yml,把主题改为butterfly
    1
    theme: butterfly
  2. 如果你没有pug以及stylus的渲染器,请下载安装,这两个渲染器是Butterfly生成基础页面所需的依赖包:
    1
    npm install hexo-renderer-pug hexo-renderer-stylus --save
    为了减少升级主题后带来的不便,请使用以下方法(建议,可以不做,高度魔改的一般都不会升级主题了,不然魔改的会被覆盖掉)

把主题文件夹中的 _config.yml 复制到 Hexo 根目录里(我这里路径为【D:/hexo/blog】),同时重新命名为 _config.butterfly.yml。以后只需要在 _config.butterfly.yml进行配置即可生效。Hexo会自动合併主题中的_config.yml_config.butterfly.yml里的配置,如果存在同名配置,会使用_config.butterfly.yml的配置,其优先度较高。

12.快速安装汇总代码

确保Nodejs/Git环境已经安装好,然后打开Git BASH工具或者cmd,执行以下命令安装hexo:

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


安装主题及渲染器、deploy插件、word-count插件:
1
2
3
npm i hexo-theme-butterfly
npm install hexo-renderer-pug hexo-renderer-stylus --save
npm install hexo-deployer-git --save

下载插件(可选):
1
npm install hexo-wordcount --save

13.解决问题

npm国内速度慢

1
npm config set registry https://registry.npmmirror.com

如果是终端安装,提示不能运行npm脚本
1
2
. : 无法加载文件 C:\Users\用户名\Documents\WindowsPowerShell\profile.ps1
因为在此系统上禁止运行脚本。有关详细信息,请参阅

使用下述命令允许所有脚本运行即可
1
Set-ExecutionPolicy RemoteSigned -Scope CurrentUser

配置文件复制

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
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
341
342
343
344
345
346
347
348
349
350
351
352
353
354
355
356
357
358
359
360
361
362
363
364
365
366
367
368
369
370
371
372
373
374
375
376
377
378
379
380
381
382
383
384
385
386
387
388
389
390
391
392
393
394
395
396
397
398
399
400
401
402
403
404
405
406
407
408
409
410
411
412
413
414
415
416
417
418
419
420
421
422
423
424
425
426
427
428
429
430
431
432
433
434
435
436
437
438
439
440
441
442
443
444
445
446
447
448
449
450
451
452
453
454
455
456
457
458
459
460
461
462
463
464
465
466
467
468
469
470
471
472
473
474
475
476
477
478
479
480
481
482
483
484
485
486
487
488
489
490
491
492
493
494
495
496
497
498
499
500
501
502
503
504
505
506
507
508
509
510
511
512
513
514
515
516
517
518
519
520
521
522
523
524
525
526
527
528
529
530
531
532
533
534
535
536
537
538
539
540
541
542
543
544
545
546
547
548
549
550
551
552
553
554
555
556
557
558
559
560
561
562
563
564
565
566
567
568
569
570
571
572
573
574
575
576
577
578
579
580
581
582
583
584
585
586
587
588
589
590
591
592
593
594
595
596
597
598
599
600
601
602
603
604
605
606
607
608
609
610
611
612
613
614
615
616
617
618
619
620
621
622
623
624
625
626
627
628
629
630
631
632
633
634
635
636
637
638
639
640
641
642
643
644
645
646
647
648
649
650
651
652
653
654
655
656
657
658
659
660
661
662
663
664
665
666
667
668
669
670
671
672
673
674
675
676
677
678
679
680
681
682
683
684
685
686
687
688
689
690
691
692
693
694
695
696
697
698
699
700
701
702
703
704
705
706
707
708
709
710
711
712
713
714
715
716
717
718
719
720
721
722
723
724
725
726
727
728
729
730
731
732
733
734
735
736
737
738
739
740
741
742
743
744
745
746
747
748
749
750
751
752
753
754
755
756
757
758
759
760
761
762
763
764
765
766
767
768
769
770
771
772
773
774
775
776
777
778
779
780
781
782
783
784
785
786
787
788
789
790
791
792
793
794
795
796
797
798
799
800
801
802
803
804
805
806
807
808
809
810
811
812
813
814
815
816
817
818
819
820
821
822
823
824
825
826
827
828
829
830
831
832
833
834
835
836
837
838
839
840
841
842
843
844
845
846
847
848
849
850
851
852
853
854
855
856
857
858
859
860
861
862
863
864
865
866
867
868
869
870
871
872
873
874
875
876
877
878
879
880
881
882
883
884
885
886
887
888
889
890
891
892
893
894
895
896
897
898
899
900
901
902
903
904
905
906
907
908
909
910
911
912
913
914
915
916
917
918
919
920
921
922
923
924
925
926
927
928
929
930
931
932
933
934
935
936
937
938
939
940
941
942
943
944
945
946
947
948
949
950
951
952
953
954
955
956
957
958
959
960
961
962
963
964
965
966
967
968
969
970
971
972
973
974
975
976
977
978
979
980
981
982
983
984
985
986
987
988
989
990
991
992
993
994
995
996
997
998
999
1000
1001
1002
1003
1004
1005
1006
1007
1008
1009
1010
1011
1012
1013
1014
1015
1016
1017
1018
1019
1020
1021
1022
1023
1024
1025
1026
1027
1028
1029
1030
1031
1032
1033
1034
1035
1036
1037
1038
1039
1040
1041
1042
1043
1044
1045
1046
1047
1048
1049
1050
1051
1052
1053
1054
1055
1056
1057
1058
1059
1060
1061
1062
1063
1064
1065
1066
1067
1068
1069
1070
1071
1072
1073
1074
1075
1076
1077
1078
1079
1080
1081
1082
1083
1084
1085
1086
1087
1088
1089
1090
1091
1092
1093
1094
1095
1096
1097
1098
1099
1100
1101
1102
1103
1104
1105
1106
1107
1108
1109
1110
1111
1112
1113
1114
1115
1116
1117
1118
1119
1120
1121
1122
1123
1124
1125
1126
1127
1128
# --------------------------------------
# Hexo Butterfly Theme Configuration
# If you have any questions, please refer to the documentation
# Chinese: https://butterfly.js.org/
# English: https://butterfly.js.org/en/
# version:5.4.3 update:20250827
# --------------------------------------

# --------------------------------------
# Navigation Settings
# --------------------------------------

nav:
# Navigation bar logo image
logo: ##logo图片
display_title: true
display_post_title: true
# Whether to fix navigation bar
fixed: false

menu: ##菜单
# Home: / || fas fa-home
# List||fas fa-list:
# Music: /music/ || fas fa-music
# Movie: /movies/ || fas fa-video

# --------------------------------------
# Code Blocks Settings
# --------------------------------------

code_blocks:
# Code block theme: darker / pale night / light / ocean / false
theme: light ##代码框主题颜色
macStyle: false
# Code block height limit (unit: px)
height_limit: false
word_wrap: false

# Toolbar
copy: true
language: true
# true: shrink the code blocks | false: expand the code blocks | none: expand code blocks and hide the button
shrink: false
fullpage: false

# Social media links
# Formal:
# icon: link || the description || color
social: ##社交
# fab fa-github: https://github.com/xxxxx || Github || '#24292e'
# fas fa-envelope: mailto:xxxxxx@gmail.com || Email || '#4a7dbe'

# --------------------------------------
# Image Settings
# --------------------------------------

favicon: /img/favicon.png ##网站图标

avatar:
img: /img/butterfly-icon.png ##头像
effect: false ##true会一直旋转

# Disable all banner images
disable_top_img: false

# If the banner of page not setting, it will show the default_top_img
default_top_img: ##默认顶图

# The banner image of index page
index_img: ##默认主页图

# The banner image of archive page
archive_img:

# Note: tag page, not tags page
tag_img:

# The banner image of tag page, you can set the banner image for each tag
# Format:
# - tag name: xxxxx
tag_per_img:

# Note: category page, not categories page
category_img:

# The banner image of category page, you can set the banner image for each category
# Format:
# - category name: xxxxx
category_per_img:

# The background image of footer
footer_img: false

# Website Background
# Can set it to color or image url
background: ##网站背景

cover:
# Disable the cover or not
index_enable: true
aside_enable: true
archives_enable: true
# When cover is not set, the default cover is displayed
default_cover:
# - xxx.jpg

# Replace Broken Images
error_img:
flink: /img/friend_404.gif
post_page: /img/404.jpg

# A simple 404 page
error_404:
enable: false
subtitle: 'Page Not Found'
background: /img/error-page.png

post_meta:
# Home Page
page:
# Choose: created / updated / both
date_type: created
# Choose: date / relative
date_format: date
categories: true
tags: false
label: true
post:
# Choose: left / center
position: left
# Choose: created / updated / both
date_type: both
# Choose: date / relative
date_format: date
categories: true
tags: true
label: true

# --------------------------------------
# Index page settings
# --------------------------------------

# The top_img settings of home page
# default: top img - full screen, site info - middle
# The position of site info, eg: 300px/300em/300rem/10%
index_site_info_top:
# The height of top_img, eg: 300px/300em/300rem
index_top_img_height:

# The subtitle on homepage
subtitle: ##副标题
enable: true
# Typewriter Effect
effect: true
# Customize typed.js
# https://github.com/mattboldt/typed.js/#customization
typed_option:
# Source - Call the third-party service API (Chinese only)
# It will show the source first, then show the content of sub
# Choose: false/1/2/3
# false - disable the function
# 1 - hitokoto.cn
# 2 - https://api.aa1.cn/doc/yiyan.html
# 3 - jinrishici.com
source: false
# If you close the typewriter effect, the subtitle will only show the first line of sub
sub:
- "欢迎来到我的博客!~"

# Article layout on the homepage
# 1: Cover on the left, info on the right
# 2: Cover on the right, info on the left
# 3: Cover and info alternate between left and right
# 4: Cover on top, info on the bottom
# 5: Info displayed on the cover
# 6: Masonry layout - Cover on top, info on the bottom
# 7: Masonry layout - Info displayed on the cover
index_layout: 3

# Display the article introduction on homepage
# 1: description
# 2: both (if the description exists, it will show description, or show the auto_excerpt)
# 3: auto_excerpt (default)
# false: do not show the article introduction
index_post_content:
method: 2
# If you set method to 2 or 3, the length need to config
length: 500

# --------------------------------------
# Post Settings
# --------------------------------------

toc:
post: true
page: false
number: true
expand: false
# Only for post
style_simple: false
scroll_percent: true

post_copyright:
enable: true
decode: false
author_href:
license: CC BY-NC-SA 4.0
license_url: https://creativecommons.org/licenses/by-nc-sa/4.0/

# Sponsor/reward
reward:
enable: false
text:
QR_code:
# - img: /img/wechat.jpg
# link:
# text: wechat
# - img: /img/alipay.jpg
# link:
# text: alipay

# Post edit
# Easily browse and edit blog source code online.
post_edit:
enable: false
# url: https://github.com/user-name/repo-name/edit/branch-name/subdirectory-name/
# For example: https://github.com/jerryc127/butterfly.js.org/edit/main/source/
url:

# Related Articles
related_post:
enable: true
# Number of posts displayed
limit: 6
# Choose: created / updated
date_type: created

# Choose: 1 / 2 / false
# 1: The 'next post' will link to old post
# 2: The 'next post' will link to new post
# false: disable pagination
post_pagination: 1

# Displays outdated notice for a post
noticeOutdate:
enable: false
# Style: simple / flat
style: flat
# When will it be shown
limit_day: 365
# Position: top / bottom
position: top
message_prev: It has been
message_next: days since the last update, the content of the article may be outdated.

# --------------------------------------
# Footer Settings
# --------------------------------------
footer:
nav:
owner:
enable: true
since: 2025
# Copyright of theme and framework
copyright:
enable: true
version: true
custom_text:

# --------------------------------------
# Aside Settings
# --------------------------------------

aside:
enable: true
hide: false
# Show the button to hide the aside in bottom right button
button: true
mobile: true
# Position: left / right
position: right
display:
archive: true
tag: true
category: true
card_author:
enable: true
description:
button:
enable: true
icon: fab fa-github
text: Follow Me
link: https://github.com/xxxxxx
card_announcement:
enable: true
content: This is my Blog
card_recent_post:
enable: true
# If set 0 will show all
limit: 5
# Sort: date / updated
sort: date
sort_order:
card_newest_comments:
enable: false
sort_order:
limit: 6
# Unit: mins, save data to localStorage
storage: 10
avatar: true
card_categories:
enable: true
# If set 0 will show all
limit: 8
# Choose: none / true / false
expand: none
sort_order:
card_tags:
enable: true
# If set 0 will show all
limit: 40
color: false
# Order of tags, random/name/length
orderby: random
# Sort of order. 1, asc for ascending; -1, desc for descending
order: 1
sort_order:
card_archives:
enable: true
# Type: monthly / yearly
type: monthly
# Eg: YYYY年MM月
format: MMMM YYYY
# Sort of order. 1, asc for ascending; -1, desc for descending
order: -1
# If set 0 will show all
limit: 8
sort_order:
card_post_series:
enable: true
# The title shows the series name
series_title: false
# Order by title or date
orderBy: 'date'
# Sort of order. 1, asc for ascending; -1, desc for descending
order: -1
card_webinfo:
enable: true
post_count: true
last_push_date: true
sort_order:
# Time difference between publish date and now
# Formal: Month/Day/Year Time or Year/Month/Day Time
# Leave it empty if you don't enable this feature
runtime_date:

# --------------------------------------
# Bottom right button
# --------------------------------------

# The distance between the bottom right button and the bottom (default unit: px)
rightside_bottom:

# Conversion between Traditional and Simplified Chinese
translate: ##繁简转换
enable: true
# The text of a button
default:
# the language of website (1 - Traditional Chinese/ 2 - Simplified Chinese)
defaultEncoding: 2
# Time delay
translateDelay: 0
# The text of the button when the language is Simplified Chinese
msgToTraditionalChinese: '繁'
# The text of the button when the language is Traditional Chinese
msgToSimplifiedChinese: '簡'

# Read Mode
readmode: true

# Dark Mode
darkmode:
enable: true
# Toggle Button to switch dark/light mode
button: true
# Switch dark/light mode automatically
# autoChangeMode: 1 Following System Settings, if the system doesn't support dark mode, it will switch dark mode between 6 pm to 6 am
# autoChangeMode: 2 Switch dark mode between 6 pm to 6 am
# autoChangeMode: false
autoChangeMode: false
# Set the light mode time. The value is between 0 and 24. If not set, the default value is 6 and 18
start:
end:

# Show scroll percent in scroll-to-top button
rightside_scroll_percent: false

# Don't modify the following settings unless you know how they work
# Choose: readmode,translate,darkmode,hideAside,toc,chat,comment
# Don't repeat the same value
rightside_item_order:
enable: false
# Default: readmode,translate,darkmode,hideAside
hide:
# Default: toc,chat,comment
show:

# Animation for the bottom right config button
rightside_config_animation: true

# --------------------------------------
# Global Settings
# --------------------------------------

anchor:
# When you scroll, the URL will update according to header id.
auto_update: false
# Click the headline to scroll and update the anchor
click_to_scroll: false

photofigcaption: false

copy:
enable: true
# Add the copyright information after copied content
copyright: ##版权
enable: true
limit_count: 250

# Need to install the hexo-wordcount plugin
wordcount:
enable: true
# Display the word count of the article in post meta
post_wordcount: true
# Display the time to read the article in post meta
min2read: true
# Display the total word count of the website in aside's webinfo
total_wordcount: true

# Busuanzi count for PV / UV in site
busuanzi:
site_uv: true
site_pv: true
page_pv: true

# --------------------------------------
# Math
# --------------------------------------

# About the per_page
# if you set it to true, it will load mathjax/katex script in each page
# if you set it to false, it will load mathjax/katex script according to your setting (add the 'mathjax: true' or 'katex: true' in page's front-matter)
math:
# Choose: mathjax, katex
# Leave it empty if you don't need math
use:
per_page: true
hide_scrollbar: false

mathjax:
# Enable the contextual menu
enableMenu: true
# Choose: all / ams / none, This controls whether equations are numbered and how
tags: none

katex:
# Enable the copy KaTeX formula
copy_tex: false

# --------------------------------------
# Search
# --------------------------------------

search: ##搜索
# Choose: algolia_search / local_search / docsearch
# leave it empty if you don't need search
use: 2
placeholder:

# Algolia Search
algolia_search:
# Number of search results per page
hitsPerPage: 6

# Local Search
local_search:
# Preload the search data when the page loads.
preload: false
# Show top n results per article, show all results by setting to -1
top_n_per_article: 1
# Unescape html strings to the readable one.
unescape: false
CDN:

# Docsearch
# https://docsearch.algolia.com/
docsearch:
appId:
apiKey:
indexName:
option:

# --------------------------------------
# Share System
# --------------------------------------

share:
# Choose: sharejs / addtoany
# Leave it empty if you don't need share
use: sharejs

# Share.js
# https://github.com/overtrue/share.js
sharejs:
sites: facebook,twitter,wechat,weibo,qq

# AddToAny
# https://www.addtoany.com/
addtoany:
item: facebook,twitter,wechat,sina_weibo,facebook_messenger,email,copy_link

# --------------------------------------
# Comments System
# --------------------------------------

comments:
# Up to two comments system, the first will be shown as default
# Leave it empty if you don't need comments
# Choose: Disqus/Disqusjs/Livere/Gitalk/Valine/Waline/Utterances/Facebook Comments/Twikoo/Giscus/Remark42/Artalk
# Format of two comments system : Disqus,Waline
use:
# Display the comment name next to the button
text: true
# Lazyload: The comment system will be load when comment element enters the browser's viewport.
# If you set it to true, the comment count will be invalid
lazyload: false
# Display comment count in post's top_img
count: false
# Display comment count in Home Page
card_post_count: false

# Disqus
# https://disqus.com/
disqus:
shortname:
# For newest comments widget
apikey:

# Alternative Disqus - Render comments with Disqus API
# https://github.com/SukkaW/DisqusJS
disqusjs:
shortname:
apikey:
option:

# Livere
# https://www.livere.com/
livere:
uid:

# Gitalk
# https://github.com/gitalk/gitalk
gitalk:
client_id:
client_secret:
repo:
owner:
admin:
option:

# Valine
# https://valine.js.org
valine:
appId:
appKey:
avatar: monsterid
# This configuration is suitable for domestic custom domain name users, overseas version will be automatically detected (no need to manually fill in)
serverURLs:
bg:
# Use Valine visitor count as the page view count
visitor: false
option:

# Waline - A simple comment system with backend support fork from Valine
# https://waline.js.org/
waline:
serverURL:
bg:
# Use Waline pageview count as the page view count
pageview: false
option:

# Utterances
# https://utteranc.es/
utterances:
repo:
# Issue Mapping: pathname/url/title/og:title
issue_term: pathname
# Theme: github-light/github-dark/github-dark-orange/icy-dark/dark-blue/photon-dark
light_theme: github-light
dark_theme: photon-dark
js:
option:

# Facebook Comments Plugin
# https://developers.facebook.com/docs/plugins/comments/
facebook_comments:
app_id:
# optional
user_id:
pageSize: 10
# Choose: social / time / reverse_time
order_by: social
lang: en_US

# Twikoo
# https://github.com/imaegoo/twikoo
twikoo:
envId:
region:
# Use Twikoo visitor count as the page view count
visitor: false
option:

# Giscus
# https://giscus.app/
giscus:
repo:
repo_id:
category_id:
light_theme: light
dark_theme: dark
js:
option:

# Remark42
# https://remark42.com/docs/configuration/frontend/
remark42:
host:
siteId:
option:

# Artalk
# https://artalk.js.org/guide/frontend/config.html
artalk:
server:
site:
# Use Artalk visitor count as the page view count
visitor: false
option:

# --------------------------------------
# Chat Services
# --------------------------------------

chat:
# Choose: chatra/tidio/crisp
# Leave it empty if you don't need chat
use:
# Chat Button [recommend]
# It will create a button in the bottom right corner of website, and hide the origin button
rightside_button: false
# The origin chat button is displayed when scrolling up, and the button is hidden when scrolling down
button_hide_show: false

# https://chatra.io/
chatra:
id:

# https://www.tidio.com/
tidio:
public_key:

# https://crisp.chat/en/
crisp:
website_id:

# --------------------------------------
# Analysis
# --------------------------------------

# https://tongji.baidu.com/web/welcome/login
baidu_analytics:

# https://analytics.google.com/analytics/web/
google_analytics:

# https://www.cloudflare.com/zh-tw/web-analytics/
cloudflare_analytics:

# https://clarity.microsoft.com/
microsoft_clarity:

# https://umami.is/
umami_analytics:
enable: false
# For self-hosted setups, configure the hostname of the Umami instance
serverURL:
website_id:
option:
UV_PV:
site_uv: false
site_pv: false
page_pv: false
# Umami Cloud (API key) / self-hosted Umami (token)
token:

# https://www.googletagmanager.com/
google_tag_manager:
tag_id:
# optional
domain:

# --------------------------------------
# Advertisement
# --------------------------------------

# Google Adsense
google_adsense:
enable: false
auto_ads: true
js: https://pagead2.googlesyndication.com/pagead/js/adsbygoogle.js
client:
enable_page_level_ads: true

# Insert ads manually
# Leave it empty if you don't need ads
ad:
# Insert ads in the index (every three posts)
index:
# Insert ads in aside
aside:
# Insert ads in the post (before pagination)
post:

# --------------------------------------
# Verification
# --------------------------------------

site_verification:
# - name: google-site-verification
# content: xxxxxx
# - name: baidu-site-verification
# content: xxxxxxx

# --------------------------------------
# Beautify / Effect
# --------------------------------------

# Theme color for customize
# Notice: color value must in double quotes like "#000" or may cause error!

# theme_color:
# enable: true
# main: "#49B1F5"
# paginator: "#00c4b6"
# button_hover: "#FF7242"
# text_selection: "#00c4b6"
# link_color: "#99a9bf"
# meta_color: "#858585"
# hr_color: "#A4D8FA"
# code_foreground: "#F47466"
# code_background: "rgba(27, 31, 35, .05)"
# toc_color: "#00c4b6"
# blockquote_padding_color: "#49b1f5"
# blockquote_background_color: "#49b1f5"
# scrollbar_color: "#49b1f5"
# meta_theme_color_light: "ffffff"
# meta_theme_color_dark: "#0d0d0d"

# The user interface setting of category and tag page
# Choose: index - same as Homepage UI / default - same as archives UI
# leave it empty or index
category_ui:
tag_ui:

# Rounded corners for UI elements
rounded_corners_ui: true

# Stretches the lines so that each line has equal width
text_align_justify: false

# Add a mask to the header and footer
mask:
header: true
footer: true

# Loading Animation ##预加载
preloader:
enable: true
# source
# 1. fullpage-loading
# 2. pace (progress bar)
source: 1
# pace theme (see https://codebyzach.github.io/pace/)
pace_css_url:

# Page Transition
enter_transitions: true

# Default display mode - light (default) / dark
display_mode: light

# Configuration for beautifying the content of the article
beautify:
enable: false
# Specify the field to beautify (site or post)
field: post
# Specify the icon to be used as a prefix for the title, such as '\f0c1'
title_prefix_icon:
# Specify the color of the title prefix icon, such as '#F47466'
title_prefix_icon_color:

# Global font settings
# Don't modify the following settings unless you know how they work
font:
global-font-size: '16px' #15px
code-font-size: '14px'
# -apple-system, BlinkMacSystemFont, "Segoe UI" , "Helvetica Neue" , Lato, Roboto, "PingFang SC" , "Microsoft JhengHei" , "Microsoft YaHei" , sans-serif
# Wenkai, consolas, -apple-system, 'Quicksand', 'Nimbus Roman No9 L', 'PingFang SC', 'Hiragino Sans GB', 'Noto Serif SC', 'Microsoft Yahei', 'WenQuanYi Micro Hei', 'ST Heiti', sans-serif;
font-family: -apple-system, 'Quicksand', 'Nimbus Roman No9 L', 'PingFang SC', 'Hiragino Sans GB', 'Noto Serif SC', 'Microsoft Yahei', 'WenQuanYi Micro Hei', 'ST Heiti', sans-serif;
# consolas, ZhuZiAWan_light, "Microsoft YaHei", Menlo, "PingFang SC", "Microsoft JhengHei", sans-serif
# Consolas_1, ZhuZiAWan_light, "Microsoft YaHei", Menlo, "PingFang SC", "Microsoft JhengHei", sans-serif
code-font-family: Consolas, "Microsoft YaHei", Menlo, "PingFang SC", "Microsoft JhengHei", sans-serif

# Font settings for the site title and site subtitle
blog_title_font:
font_link:
font-family: -apple-system, BlinkMacSystemFont, "Segoe UI" , "Helvetica Neue" , Lato, Roboto, "PingFang SC" , "Microsoft JhengHei" , "Microsoft YaHei" , sans-serif

# The setting of divider icon
hr_icon:
enable: true
# The unicode value of Font Awesome icon, such as '\3423'
icon:
icon_top:

# Typewriter Effect
# https://github.com/disjukr/activate-power-mode
activate_power_mode:
enable: false
colorful: true
shake: true
mobile: false

# Background effects
# --------------------------------------

# canvas_ribbon
# See: https://github.com/hustcc/ribbon.js
canvas_ribbon:
enable: false
# The size of ribbon
size: 150
# The opacity of ribbon (0 ~ 1)
alpha: 0.6
zIndex: -1
click_to_change: false
mobile: false

# Fluttering Ribbon
canvas_fluttering_ribbon:
enable: false
mobile: false

# canvas_nest
# https://github.com/hustcc/canvas-nest.js
canvas_nest:
enable: false
# Color of lines, default: '0,0,0'; RGB values: (R,G,B).(note: use ',' to separate.)
color: '0,0,255'
# The opacity of line (0~1)
opacity: 0.7
# The z-index property of the background
zIndex: -1
# The number of lines
count: 99
mobile: false

# Mouse click effects: fireworks ##点击特效
fireworks:
enable: true
zIndex: 9999
mobile: false

# Mouse click effects: Heart symbol
click_heart:
enable: false
mobile: false

# Mouse click effects: words
clickShowText:
enable: false
text:
# - I
# - LOVE
# - YOU
fontSize: 15px
random: false
mobile: false

# --------------------------------------
# Lightbox Settings
# --------------------------------------

# Choose: fancybox / medium_zoom
# https://github.com/francoischalifour/medium-zoom
# https://fancyapps.com/fancybox/
# Leave it empty if you don't need lightbox
lightbox:

# --------------------------------------
# Tag Plugins settings
# --------------------------------------

# Series
series:
enable: false
# Order by title or date
orderBy: 'title'
# Sort of order. 1, asc for ascending; -1, desc for descending
order: 1
number: true

# ABCJS - The ABC Music Notation Plugin
# https://github.com/paulrosen/abcjs
abcjs:
enable: false
per_page: true

# Mermaid
# https://github.com/mermaid-js/mermaid
mermaid:
enable: false
# Write Mermaid diagrams using code blocks
code_write: false
# built-in themes: default / forest / dark / neutral
theme:
light: default
dark: dark

# chartjs
# see https://www.chartjs.org/docs/latest/
chartjs:
enable: false
# Do not modify unless you understand how they work.
# The default settings are only used when the MD syntax is not specified.
# General font color for the chart
fontColor:
light: 'rgba(0, 0, 0, 0.8)'
dark: 'rgba(255, 255, 255, 0.8)'
# General border color for the chart
borderColor:
light: 'rgba(0, 0, 0, 0.1)'
dark: 'rgba(255, 255, 255, 0.2)'
# Background color for scale labels on radar and polar area charts
scale_ticks_backdropColor:
light: 'transparent'
dark: 'transparent'

# Note - Bootstrap Callout
note:
# Note tag style values:
# - simple bs-callout old alert style. Default.
# - modern bs-callout new (v2-v3) alert style.
# - flat flat callout style with background, like on Mozilla or StackOverflow.
# - disabled disable all CSS styles import of note tag.
style: flat
icons: true
border_radius: 3
# Offset lighter of background in % for modern and flat styles (modern: -12 | 12; flat: -18 | 6).
# Offset also applied to label tag variables. This option can work with disabled note tag.
light_bg_offset: 0

# --------------------------------------
# Other Settings
# --------------------------------------

# https://github.com/MoOx/pjax
pjax:
enable: true
# Exclude the specified pages from pjax, such as '/music/'
exclude:
# - /xxxxxx/

# Inject the css and script (aplayer/meting)
aplayerInject:
enable: true
per_page: true

# Snackbar - Toast Notification
# https://github.com/polonel/SnackBar
# position: top-left / top-center / top-right / bottom-left / bottom-center / bottom-right
snackbar:
enable: false
position: bottom-left
# The background color of Toast Notification in light mode and dark mode
bg_light: '#49b1f5'
bg_dark: '#1f1f1f'

# Instant.page
# https://instant.page/
instantpage: false

# Lazyload ##懒加载
# https://github.com/verlok/vanilla-lazyload
lazyload:
enable: true
# Use browser's native lazyload instead of vanilla-lazyload
native: false
# Specify the field to use lazyload (site or post)
field: site
placeholder:
blur: false

# PWA
# See https://github.com/JLHwung/hexo-offline
# ---------------
pwa:
enable: false
manifest:
apple_touch_icon:
favicon_32_32:
favicon_16_16:
mask_icon:

# Open graph meta tags
# https://hexo.io/docs/helpers#open-graph
Open_Graph_meta:
enable: true
option:
# twitter_card:
# twitter_image:
# twitter_id:
# twitter_site:
# google_plus:
# fb_admins:
# fb_app_id:

# Structured Data
# https://developers.google.com/search/docs/guides/intro-structured-data
structured_data: true

# Add the vendor prefixes to ensure compatibility
css_prefix: true

# Inject ##引入自定义文件
# Insert the code to head (before '</head>' tag) and the bottom (before '</body>' tag)
inject:
head:
# - <link rel="stylesheet" href="/xxx.css">
bottom:
# - <script src="xxxx"></script>

# CDN Settings
# Don't modify the following settings unless you know how they work
CDN:
# The CDN provider for internal and third-party scripts
# Options for both: local/jsdelivr/unpkg/cdnjs/custom
# Note: Dev version can only use 'local' for internal scripts
# Note: When setting third-party scripts to 'local', you need to install hexo-butterfly-extjs
internal_provider: local
third_party_provider: jsdelivr

# Add version number to url, true or false
version: false

# Custom format
# For example: https://cdn.staticfile.org/${cdnjs_name}/${version}/${min_cdnjs_file}
custom_format:

option:
# abcjs_basic_js:
# activate_power_mode:
# algolia_js:
# algolia_search:
# aplayer_css:
# aplayer_js:
# artalk_css:
# artalk_js:
# blueimp_md5:
# busuanzi:
# canvas_fluttering_ribbon:
# canvas_nest:
# canvas_ribbon:
# chartjs:
# click_heart:
# clickShowText:
# disqusjs:
# disqusjs_css:
# docsearch_css:
# docsearch_js:
# egjs_infinitegrid:
# fancybox:
# fancybox_css:
# fireworks:
# fontawesome:
# gitalk:
# gitalk_css:
# giscus:
# instantpage:
# instantsearch:
# katex:
# katex_copytex:
# lazyload:
# local_search:
# main:
# main_css:
# mathjax:
# medium_zoom:
# mermaid:
# meting_js:
# prismjs_autoloader:
# prismjs_js:
# prismjs_lineNumber_js:
# pjax:
# sharejs:
# sharejs_css:
# snackbar:
# snackbar_css:
# translate:
# twikoo:
# typed:
# utils:
# valine:
# waline_css:
# waline_js:

  • post草稿
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    # 标题
    title: {{ title }}
    date: {{ date }}
    author: #作者
    # 简述
    description:
    # 标签
    tags:
    # 分类
    categories:
    # 使用自定义封面
    # img:
    # 是否置顶true,或者去掉
    top:
    # 轮播
    cover: