博客搭建
博客搭建
VVkladg0r这里我使用hexo搭建的个人博客
准备
下载[nodejs](Node.js — 随处运行 JavaScript (nodejs.org))
我是一路next
下载[git](Git - Downloads (git-scm.com))
一样next
node -v
npm -v
git -v
下载hexo
用管理员身份打开cmd
npm install hexo-cli -g |
搭建仓库
成功下载好工具之后,我们开始搭建GitHub存储静态页面的仓库
登录github
新建一个仓库
名字必须是账户名.github.io
要public
勾选 Add a README file
生成SSH key
git执行
ssh-keygen -t rsa -C "邮件地址" |
一直回车(4次)
找到生成的文件
C:\Users\admin\.ssh
用任意文件编辑器打开id_rsa.pub
全选复制
在github的setting中打开ssh
新建一个ssh key
把刚刚复制的粘贴进去
创建
验证:
打开git
输入ssh -T git@github.com
我这里报错:
解决:
错误提示的是连接**github.com
**的22端口被拒绝了。可以简单理解为此门不通,既然这个端口号走不通,那换一个端口号试试看
直接在该文件夹下新建config.txt文件,将下面的命令直接粘贴进去,保存退出后,把此文件的.txt后缀删除(重命名)
Host github.com |
再试 后跟yes
成功
本地生成博客内容
再任意位置新建文件夹
打开 git
输入
hexo init |
初始化
报错 前面加了npx也一样
解决:
错误: git SSL certificate problem: unable to get local issuer certificate
这个问题是由于没有配置信任的服务器HTTPS验证。默认,cURL被设为不信任任何CAs,就是说,它不信任任何服务器验证
执行:
git config --global http.sslVerify false |
再初始化 即可
成功
然后安装
hexo install |
接下来依次输入
hexo g 生成 |
给的这个URL就是在本地部署的博客
给的这个localhost:4000 端口被占用了 请求被拒绝
改一下端口
hexo s -p 5000 |
成功
上线博客
进入之前的Blog文件夹,用打开_config.yml
划到最后
将最后的tpye:”改为:
type: git |
注意首行缩进
回到github
把仓库的连接复制过来
粘贴到repository后面
在博客文件夹中打开git
执行
hexo g 生成
hexo d 上传
这里我也是报错了
解决
要在站点目录下执行以上安装hexo-deployer-git
插件的命令,所谓站点目录就是执行hexo init
的目录
执行:
npm install hexo-deployer-git --save |
再执行hexo d
成功
访问vvkladg0r.github.io
成功
Vercel部署
Github提供的网址在国内的访问速度较慢,所以推荐在搭建完后用Vercel部署,再通过Vercel绑定到自己的域名上,这样会速度会很快。
因为Vercel给我们分配的域名在国内是无法访问的,所以我们需要把在Vercel部署的绑定到自己的域名上,这样就可以访问了。
这里大家可以选择购买域名
用 github连接Vercel账号
点击右上角的Add New Project
创建新的项目,之后导入选项那里选择Continue with Github
,这时候应该能看到你Github账号的仓库,选择你刚刚部署成功的存储静态博客的仓库<username>.github.io
右边的Import
选项,表示你要导入该仓库。
起一个只能有小写字母、数字或者或者连字符的项目名称,然后其他默认,点击Deploy
,等待一分钟即可部署成功
部署成功
然后点Continue to Dashboard
成功
是我们现在还不能访问他给出的域,因为GFW把Vercel屏蔽了
绑定自定义域名:
点控制器里的Domains
查看当前的域,我们可以看到仅有Vercel给你预分配的一个域名,此时我们输入我们要用的域名,添加后他会提示你添加一条DNS解析记录。
接下来在域名解析记录里面添加记录,其中记录类型对应Type
,主机记录对应Name
,记录值对应Value
,其他的设置默认即可。
我这里是腾讯云:
成功
可以用自定义域名访问了
当你有了新的域名之后,需要将[BlogRoot]\_config.yml
文件中的url
配置项改为自己的新域名,这样博客的文章链接才会正确生成。
主题安装
这里我选择的是安知鱼主题
安知鱼主题一款基于Butterfly主题修改的主题
这里还有很多hexo主题
我们根据它的官方文档安装
下载主题:
git clone -b main https://github.com/anzhiyu-c/hexo-theme-anzhiyu.git themes/anzhiyu |
在Blagfile文件中用vscode打开
在vscode中打开终端 执行命令
theme文件夹下出现了安知鱼的相关文件
这是主题的源码 以后更新的时候会覆盖所以源码 不是很方便
覆盖配置可以使主题配置
放置在 anzhiyu 目录之外,避免在更新主题时丢失自定义的配置。
所以执行:
cp -rf ./themes/anzhiyu/_config.yml ./_config.anzhiyu.yml |
将主题的配置文件移出来
但是这是在linux/mac下才能执行的命令
而我们window需要:
复制/themes/anzhiyu/_config.yml
此文件到 hexo 根目录,并重命名为_config.anzhiyu.yml
修改hexo主题配置
将_config.yml文件中的theme属性修改为anzhiyu
安装 pug 和 stylus 渲染插件:
npm install hexo-renderer-pug hexo-renderer-stylus --save |
报错了:
解决:
根据他的提示先更新一下版本呢:
npm install -g npm@10.7.0 |
行
再跑一下刚刚的命令呢
好像没有问题了
本地启用一下hexo看看呢
hexo cl |
网页无变化 说明没安起
换一条命令呢:
npm install hexo-renderer-pug hexo-renderer-stylus --save --registry=http://registry.npmmirror.com |
也有回显
再部署看看
这次好像可以了
应该没问题了
访问一下看看呢
行 本地访问没有问题
自定义域名访问没变
解决:
可能是更新花了一点时间
现在访问就是没问题的
网站配置
一般都在_config.yml
中修改
主题的相关配置的话在_config.anzhiyu.yml
里面 大家就自行修改吧
上传文章
我们在Blog文件夹中打开git bash,输入下方代码就可以生成新的文章md文件
hexo new 文章标题 |
文章是.md格式,在我们的Blog文件夹中的source/_posts中
然后我们用Typora软件打开该.md文件就可以开始写文章了
Front-matter
Front-matter
是 markdown 文件最上方以---
分隔的区域,用于指定个别档案的变数。
- Page Front-matter 用于页面配置
- Post Front-matter 用于文章页配置
如果标注可选的参数,可根据自己需要添加,不用全部都写
Page Front-matter:
MARKDOWN |
写法 | 解释 |
---|---|
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:
MARKDOWN |
写法 | 解释 |
---|---|
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) |
写好以后,我们还是一样打开git bash生成、上传
hexo g |
问题解决
在网站配置这里遇到了相当多的问题 有些问题很快解决了 有些就真的花了很多时间
访问/about路由 回显配置的md文档
这是这个博客搭建遇到的最大的问题
我按照anzhiyu官网文档搭建关于页面
搭好了访问发现不能访问yaml的前端页面 只能访问它的配置页面
这个问题我卡了两三天
这个问题出现的原因主要是配置文档存在隐藏字符 因为这个文档不是直接生成的 我是从别的博客上复制了一部分下来 所以有隐藏字符
这里最好是直接生成 或者手打 复制的话要检查有没有隐藏字符
hexo d时遇到的问题
主要就是这个
FATAL Something's wrong. Maybe you can find the solution here: https://hexo.io/docs/troubleshooting.html |
对应这个报错 目前我还没有非常完美的解决方法
遇到过几次了 用的是不同的解决放到 但是都不能完全解决这个问题 都是当时解决了 后面配置的时候又出现了
法1:
不管他 他过一会就会自己好 但是这个过一会没有非常精确的数据、
法2:
执行
hexo cl |
这个方法有时奏效
法3:
更新npm
执行
npm update |
法4:
清除npm缓存 并重构依赖
先执行 清除缓存
npm cache clean --force |
再执行
npm install |
法5
这是我用的最离奇的方法 可能就是法1
当时是我查看hexo的报错日志 然后就直接好了
执行
hexo deploy --debug |
很好又遇到这个问题 且上面的方法都不管用了 又找了个新方法
法6:
改_config.yml文件
# Deployment |
可以 直接治本
图床配置
之前是用的picgo+github 但是他不是很稳定 所以这次我用的是去不图床
这个比较便宜10块1G
用的时候直接上传 找URL就行
如果是去不图床的话 在连接typora的时候不能用picgo(不支持) 要用Upgit
Upgit:
Upgit 可以快捷地将文件上传到去不图床并得到其直链。简洁跨平台不常驻内存。可作为 Typora 自定义上传器使用
将下面代码保存为 config.toml
文件,其中 TOKEN
项,需改成自己的。注意 TOKEN
前的 Bearer
不要忘记添:
default_uploader = "lskypro2" |
另外创建文件夹 extensions
,并将下面代码保存为文件 lskypro.jsonc
:
{ |
拿token:
这里我只启用了上传图片
使用方法:
cmd到upgit目录下 执行:
upgit.exe FILENAME |
就可以将图片上传到图床
连接Typora:
转到 Image 选自定义命令作为图像上传器,在命令文本框中输入 Upgit 程序位置,然后就可以使用了: