Hexo教程
创建网站
一、准备
- 下载nodejs:https://npmmirror.com/mirrors/node/
- 下载git:https://git-scm.com/download
- 在命令行中输入
1 | npm install -g hexo-cli |
二、创建github仓库
- 仓库名以.github.io结尾
- 仓库权限要设置为public
- 仓库名要和你的github用户名一样(受不了了为什么网上一些教程里这些东西提都没提 😭😭😭)
三、生成SSL Keys
-
在桌面git bash here,输入以下代码后enter四次
1 | ssh-keygen -t rsa -C "邮件地址" |
-
进入C:\Users\用户名,在里面进入.ssh文件,随便用一个编辑器打开,全选复制其中内容
-
打开github,进入用户设置,找到SSH keys,新建SSH keys,名称随意,在下面粘贴刚才复制的代码,然后创建
-
git bash here后输入以下代码看是否成功:
1 | ssh -T git@github.com |
回车后如果还有要输入的就输yes
四、创建文件
-
随便找一个地方创建一个文件夹放blog文件的,在这个文件夹里git bash here
-
输入
1 | hexo init |
如果没成功就在前面加上npx,e.g.npx hexo init,下面同理
-
依次输入这三行命令
1 | hexo install |
1 | hexo g |
1 | hexo s |
理论上可以出现
然后选择这个网址右键后open即可,不要ctrl+C去复制否则就退出了
五、上线博客
-
进入之前的Blog文件夹,用记事本打开_config.yml,拉到最下面将deploy后面的全删掉,复制粘贴这段
1 | type: git |
注意缩进格式:每行前面都有两个空格不要删,每个冒号后面都有个空格也不要删!
2. 去github之前生成的仓库页面,点code,复制https链接,将其粘贴到我们记事本中的repository:后面,然后保存退出
3. 回到博客文件夹,git bash here,安装自动部署发布工具(否则会报错"Deployer not found: git"):
1 | npm install hexo-deployer-git --save |
再依次
1 | hexo g(生成) |
然后网站就部署成功了,网址就是:用户名.github.io
基础操作
一、更改网站资料
用记事本打开我们blog文件夹中的_config.yml文件,将#Site下面按自己的需求填上
1 | ## Site |
二、上传文章
在Blog文件夹中打开git bash,输入下方代码就可以生成新的文章md文件
1 | hexo new 文章标题 |
文章是.md格式,在我们的Blog文件夹中的source/_posts中写好以后,我们还是一样打开git bash生成、上传
1 | hexo g |
注意:以后再更新网站文件要连续输入:
1 | hexo cl |
1 | hexo g |
1 | hexo d |
也可以先
1 | hexo cl |
在本地查看
三、文章中添加图片
-
下载插件:
1 | npm install hexo-asset-image --save |
-
修改站点配置文件_config.yml
把站点配置文件_config.yml中的post_asset_folder选项设为true,这样以后每次执行hexo new aaaa
新增文章命令时,都会在_posts
目录下生成aaaa.md
文章和aaaa
文件夹,md文章中引用图片使用相对路径格式,如下:
1 | ![logo](aaaa/logo.png) |
这样在vscode编辑模式下既可以正常预览本地图片,同时,在执行完hexo g;hexo s
命令运行服务后,网页端也能正常显示本地图片。
注意,今后如果修改了aaaa.md
文件名,记得要同步修改同名文件夹。
-
修改hexo-asset-image插件的bug
如果本地图片还不能正常先试试,说明hexo-asset-image
插件的bug仍未修复,需要修改站点目录下node_modules\hexo-asset-image\index.js
文件,找到if(/.*/index.html$/.test(link)) { 字段,大概在17行左右,添加对应的else if字段,如下:
1 | if(/.*\/index\.html$/.test(link)) { |
找到找到$(‘img’).each(function()){代码段,将其中的
1 | $(this).attr('src', config.root + link + src); |
改为相对路径引用:(此步可以不改,即generate后的站点采用的是绝对路径引用图片)
1 | $(this).attr('src', src); |
原文链接:https://blog.csdn.net/kantaiyang/article/details/129159055
四、切换主题
以butterfly为例
-
在git bash 中输入:
1 | npm i hexo-theme-butterfly |
安装成功后可在node_modules文件夹下找到hexo-theme-butterfly文件夹
2. 下载安装pug以及stylus的渲染器,这两个渲染器是Butterfly生成基础页面所需的依赖包
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
在config.yml文件中找到theme项,改为butterfly,然后上传即可其他主题也可以在hexo官方文档中的主题文档中找各自文件的教程
同时为了减少升级主题后带来的不便,请使用以下方法(建议,可以不做,高度魔改的一般都不会升级主题了,不然魔改的会被覆盖掉)把主题文件夹中的 _config.yml
复制到 Hexo
根目录里(我这里路径为【C:/Hexo-Blog/blog-demo】),同时重新命名为 _config.butterfly.yml
。以后只需要在 _config.butterfly.yml
进行配置即可生效。Hexo会自动合併主题中的_config.yml
和 _config.butterfly.yml
里的配置,如果存在同名配置,会使用_config.butterfly.yml
的配置,其优先度较高。
进阶操作
一、Front-matter
Front-matter 是 markdown 文件最上方以—分隔的区域,用于指定个别档案的变数。
-
Page Front-matter 用于页面配置
-
Post Front-matter 用于文章页配置
如果标注可选的参数,可根据自己需要添加,不用全部都写
Page Front-matter:
1 |
|
写法 | 解释 |
---|---|
title | 【必需】页面标题 |
date | 【必需】页面创建日期 |
type | 【必需】标籤、分类和友情链接三个页面需要配置 |
updated | 【可选】页面更新日期 |
description | 【可选】页面描述 |
keywords | 【可选】页面关键字 |
comments | 【可选】显示页面评论模块(默认 true) |
top_img | 【可选】页面顶部图片 |
mathjax | 【可选】显示mathjax(当设置mathjax的per_page: false时,才需要配置,默认 false) |
kates | 【可选】显示katex(当设置katex的per_page: false时,才需要配置,默认 false) |
aside | 【可选】显示侧边栏 (默认 true) |
aplayer | 【可选】在需要的页面加载aplayer的js和css,请参考文章下面的音乐 配置 |
highlight_shrink | 【可选】配置代码框是否展开(true/false)(默认为设置中highlight_shrink的配置) |
Post Front-matter:
1 |
|
写法 | 解释 |
---|---|
title | 【必需】文章标题 |
date | 【必需】文章创建日期 |
updated | 【可选】文章更新日期 |
tags | 【可选】文章标籤 |
categories | 【可选】文章分类 |
keywords | 【可选】文章关键字 |
description | 【可选】文章描述 |
top_img | 【可选】文章顶部图片 |
cover | 【可选】文章缩略图(如果没有设置top_img,文章页顶部将显示缩略图,可设为false/图片地址/留空) |
comments | 【可选】显示文章评论模块(默认 true) |
toc | 【可选】显示文章TOC(默认为设置中toc的enable配置) |
toc_number | 【可选】显示toc_number(默认为设置中toc的number配置) |
toc_style_simple | 【可选】显示 toc 简洁模式 |
copyright | 【可选】显示文章版权模块(默认为设置中post_copyright的enable配置) |
copyright_author | 【可选】文章版权模块的文章作者 |
copyright_author_href | 【可选】文章版权模块的文章作者链接 |
copyright_url | 【可选】文章版权模块的文章连结链接 |
copyright_info | 【可选】文章版权模块的版权声明文字 |
mathjax | 【可选】显示mathjax(当设置mathjax的per_page: false时,才需要配置,默认 false) |
katex | 【可选】显示katex(当设置katex的per_page: false时,才需要配置,默认 false) |
aplayer | 【可选】在需要的页面加载aplayer的js和css,请参考文章下面的音乐 配置 |
highlight_shrink | 【可选】配置代码框是否展开(true/false)(默认为设置中highlight_shrink的配置) |
aside | 【可选】显示侧边栏 (默认 true) |
二、标签页
-
前往你的 Hexo 博客的根目录
-
输入
hexo new page tags
-
你会找到 source/tags/index.md 这个文件
-
修改这个文件:
记得添加 type: “tags”
1 |
|
orderby:name/random/length,注明排序顺序的
order: 1, asc for ascending; -1, desc for descending
三、分类页
-
前往你的 Hexo 博客的根目录
-
输入
hexo new page categories
-
你会找到 source/categories/index.md这个文件
-
修改这个文件:前往你的 Hexo 博客的根目录
记得添加 type: “categories”
1 |
|
四、友链
-
前往你的 Hexo 博客的根目录
-
输入
hexo new page link
-
你会找到 source/link/index.md 这个文件
-
修改这个文件:
记得添加 type: “link”
1 |
|
在Hexo博客目录中的 source/_data(如果没有 _data 文件夹,请自行创建),创建一个文件 link.yml
1 | - class_name: 友情链接 |
五、图库/子页面
图库/子页面只是普通的页面,你只需要 hexo n page xxxxx
创建你的页面就行然后使用标签外挂 galleryGroup,具体用法请查看对应的内容
1 | <div class="gallery-group-main"> |
1 | {% gallery %} |
六、markdown拓展
hexo不支持Markdown的部分语法,比如表情包,所以需要安装其他插件
-
安装:
1 | npm un hexo-renderer-marked --save |
-
配置
_config.yml
文件:
1 | ## markdown 渲染引擎配置,默认是hexo-renderer-marked,这个插件渲染速度更快,且有新特性 |
1 | markdown: |
参考https://blog.xaoxu.cn/archives/hexo-use-emoji 和 https://blog.csdn.net/qq_42951560/article/details/123596899?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522172071017516800186579641%2522%252C%2522scm%2522%253A%252220140713.130102334.pc%255Fall.%2522%257D&request_id=172071017516800186579641&biz_id=0&utm_medium=distribute.pc_search_result.none-task-blog-2~all~first_rank_ecpm_v1~rank_v31_ecpm-2-123596899-null-null.142^v100^pc_search_result_base1&utm_term=hexo没有渲染markdown&spm=1018.2226.3001.4187
七、看板娘
以live2d为例子,先下插件
1 | npm install --save live2d-widget-model-koharu |
打开站点配置文件[BlogRoot]\config.yml
搜索live2d,按照如下注释内容指示进行操作。如果没有搜到live2d的配置项,就直接把以下内容复制到最底部。
1 | # Live2D |
更换:
同样是在Hexo根目录[BlogRoot]下,打开终端,选择想要的看板娘进行安装,例如我这里用到的是 live2d-widget-model-koharu
,一个Q版小正太。其他的模型也可以在模型预览里查看以供选择。
输入:
1 | npm install --save live2d-widget-model-koharu |
然后在站点配置文件[BlogRoot]_config.yml里找到model项修改为期望的模型
1 | model: |
卸载:
卸载插件和卸载模型的指令都是通过npm进行操作的。在博客根目录[BlogRoot]打开终端,输入:
1 | npm uninstall hexo-helper-live2d #卸载看板娘插件 |
卸载后为了保证配置项不出错,记得把[BlogRoot]_config.yml里的配置项给注释或者删除掉
主题配置
直接看大佬写的教程吧因为我懒,注意一下有些功能要下插件就行了
https://www.fomal.cc/posts/3451f874.html 和 https://butterfly.js.org/posts/4aa8abbe/
问题
如果碰到:fatal: unable to access 'https://github.com/Hamilton2718/Hamilton.github.io.git/': Failed to connect to github.com port 443 after 21075 ms: Couldn't connect to server
问题,可以参考这篇https://blog.csdn.net/m0_63230155/article/details/132070860