VS Code + Github Pages + Hexo 写博客
2021年7月3日修改
准备工作
- 注册Github:建立一个Github repository放博客,reponsitory的名字要是XXX.github.io;
- 安装 VS Code;
- 安装 Node.js;
- 安装Git;
- 打开git bash设置SSH远程连接:
1 | git config --global user.name "XXX" |
生成密钥:
1 | ssh-keygen -t rsa -C"xxx@gmail.com" #注意`C`后面没有空格。 |
如果不需要密码,连续三个回车,得到两个文件id_rsa
和id_rsa.pub
,位置:C:\Users\<用户名>\.ssh
, 打开复制id_rsa.pub
内容到 github上。
安装Hexo
新建一个BLOG文件夹并再VS Code中打开;
在VS Code的终端运行(Ctrl+` 快速打开VS Code TERMINAL):
1 | npm install hexo-cli -g |
编辑配置文件_config.yml:(注意这个是根目录下的,不是/them/next下的)
1 | <!-- deploy: |
安装部署Github插件
1 | npm install hexo-deployer-git --save |
绑定域名
- 申请一个新域名;
- 域名解析里面设置一个CNAME @,WWW,指向XXX.github.io,注意都要设置,这样不论新域名前带不带www都可以访问;当然,你也可以设置为一个二级域名,比如CNAME blog 指向 xxx.github.io;
- 进入https://github.com/XXX/XXX.github.io/settings/pages,设置custom domain(之前是进入blog所在的repository,setting页面,现在进入后会提示转到pages页面设置了)
- custom domain 填入新的域名,并勾选强制
https
,(如果不勾选,浏览器会提示不安全,如果你签名域名解析使用的A记录,不是CNAME,这里也要求你改成CNAME.) - 进入本地blog/source文件夹下,新建一个CNAME不带扩展名的文件,直接再空白文件里面填入新域名,保存即可。注意新域名不要带www,否则访问的时候不带www无法访问。
安装主题
- cd进入blog文件夹下:
1 | git clone https://github.com/next-theme/hexo-theme-next themes/next |
注意,最早的版本是theme-next,但是原作者好久不更新了,next-theme的作者叶是大神,更新比较频繁,所以目前基本上都用next-theme下的hexo-theme-next了。
- 设置hexo配置文件_config.yml(根目录下):
1 | theme:next |
测试本地blog已安装好了。
发布(n g d “三联”)
- hexo clean (如果显示正常不需要)
- hexo n(new) “blog article title”
- hexo g (generate)
- hexo s (server)
- hexo d(deploy)
- hexo new page “page title”
Hexo g和d可以一起使用:
hexo g -d
发布图片
- 使用markdown paste插件插入的本地图片只能在首页显示;
- 有其它方式可以在文章中显示,是在每个发布的文章的文件夹中,建立相同文件名的文件夹存放该文章所用到的图片(待尝试);
- 目前推荐使用picgo插件,直接上传到github,粘贴链接
模板修改
由于theme会经常更新,如果你直接改theme的配置文件_config.yml
,更新的时候,你之前的设置就会被覆盖。解决方案:
- 在根目录下重新命名一个
_config.next.yml
的文件(next与theme同名); - 人工复制theme/next下的_config.yml的内容到新的_config.next.yml文件中,或者以下命令二选一:
Installed through npm
1 | cp node_modules/hexo-theme-next/_config.yml _config.next.yml |
Installed through Git
1 | cp themes/next/_config.yml _config.next.yml |
以后只在这个文件里面修改主题即可。
注意:YML语言的冒号后面要留一个空格。
升级主题
以下命令二选一:
Install the latest version throuth npm:
1 | $ cd hexo-site |
update to the latest master branch:
1 | $ cd themes/next |
添加评论系统
我使用的是 <www.disqus.com>,注册后取得shortname后,变更hexo配置文件_config.yml:
1 | disqus: |
如果某个页面不需要显示评论,只需要再页面.md文件头部里面增加commens: false
即可,比如,再tags页面不显示评论:
1 | --- |
添加Github猫
方案一: 适用于所有网站
- 访问https://tholman.com/github-corners/#选择样式;
- 将以网站生成代码中href=”XXX”中的XXX换成你自己的网站;
- 将代码添加到:
theme/next/layout/_layout.njk
文件中<div class="headband"></div>
下一行即可;
方案二: 模板自带功能
编辑 _config.next.yml
文件,将 enable: 值改为true即可;
1 | github_banner: |
不过我个人用过一段时间弃用,使用Social里面的连接了。
开启文章打赏
编辑 _config.next.yml
文件,将 .\themes\next\source\images
里面的图片替换成你自己的收款码即可:
1 | reward: |
常见问题
❓ hexo d 后刷新网页没有效果
🗝️hexo clean,然后再hexo g, hexo d, 再清空浏览器缓存,等一会看看。
❓一篇文章如何添加多个标签
🗝️YML语言如下:
1 | tags: [ 'Ruby', 'Perl', 'Python' ] |
or:
1 | tags: |
个人倾向于第一种。
❓发布时提示错误 err: YAMLException: can not read a block mapping entry;
🔑文章开头的部分,:后面要有空格
title: JavaScript交作业:十进制数字转罗马数字
date: 2021-10-24 15:32:40
tags: JavaSrcipt