建站小记基础篇
前言
- 欢迎来到我的建站笔记,该系列的文章将教你如何使用
Github
搭建自己的博客网站。 - 这个博客网站需要用到
Hexo
框架和Butterfly
主题,网站代码托管于Github
。 Hexo
是一个静态博客网站框架,使用Hexo
以及其提供的诸多配置选项,所有代码以及你的Markdown
博客被转换为静态网页文件后递交到Github
,不需要拥有自己的服务器就可以搭建一个博客网站。虽然静态网站有很多局限性,但这作为博客够用了!这是 Hexo 的官方文档,如果你需要更深入的使用Hexo
可能需要该官方文档。Butterfly
是基于Hexo
的主题,提供了许多相关配置,快速美化你的博客网站。当然使用这类主题使得博客同质化严重。由于Butterfly
的作者是香港人,这意味着你可以看到中文的官方文档。这是 Butterfly的官方主页,右下角有简繁体转换按钮,后面的许多配置本文无法一一介绍,需要你自己查阅官方文档。
在正式开始你的配置之前,请务必确保你会以下技能:
命令行
、Git
、Markdown
。
后面此博客的所有文章都使用Markdown
书写。
建站小记(一)
环境准备
本教程主要面向 Windows
用户
- 操作系统:
Windows10/11
Node
、Git
、Hexo
IDE
(自选,强烈推荐VS code
)GitHub
帐号域名
(可选,但推荐)云服务器
(可选)
安装Node
-
打开Node官网
-
下载稳定版本即可
-
傻瓜式安装,安装路径自选
-
安装完成后,检查是否安装成功。在键盘按下
win + R
键,输入CMD
,然后回车,打开CMD窗口,执行node -v
命令,看到版本信息,则说明安装成功。 -
修改
npm
源。npm
下载各种模块,默认是从国外服务器下载,速度较慢,建议配置成淘宝镜像。
1 | hexo npm config set registry https://registry.npmmirror.com |
安装Hexo
- 在目标路径打开
cmd
窗口 ,输入npm install -g hexo-cli
安装Hexo
环境
1 | npm install -g hexo-cli |
- 安装完输入
hexo -v
验证是否安装成功
1 | hexo -v |
GitHub账号相关
该部分内容为补充内容
-
进入官网 https://github.com/
-
点击右上角的 Sign up(注册)
-
填写自己的邮箱、密码、用户名等信息,然后用邮箱验证即可完成。
-
注册完成后,点击右上角的
+
按钮,选择New repository
,创建一个<用户名>.github.io
的仓库。
-
仓库的格式必须为:
<用户名>.github.io
(注意:前缀必须为用户名,不要等后面404了再来为什么!!!) -
Description:为描述仓库(选填)
-
勾选
Initialize this repository with a README
初始化一个 README.md 文件 -
点击
Creat repository
进行创建(此处借用tzy大佬的图片)
Git安装 && 连接Github
安装
-
进入官网:https://git-scm.com/downloads ,由于官网下载太慢可以通过淘宝的开源镜像下载 网址:https://registry.npmmirror.com/binary.html?path=git-for-windows/v2.36.1.windows.1/ ,下载版本更具自己的需求选择即可。
-
下载后傻瓜式安装Git即可,安装的目录可以使用默认目录【C:/Program Files/Git】,也可以自定义路径。
-
点击电脑左下角开始即可看见
Git Bash
。
Git CMD
是windows 命令行的指令风格Git Bash
是linux系统的指令风格(建议使用)Git GUI
是图形化界面(新手学习不建议使用)
-
常用命令
1
2
3git config -l //查看所有配置
git config --system --list //查看系统配置
git config --global --list //查看用户(全局)配置 -
配置用户名和邮箱
1
2git config --global user.name "你的用户名"
git config --global user.email "你的邮箱" -
通过
git config -l
检查是否配置成功,至此git安装及配置全部完成。
连接GitHub
-
执行以下命令生成ssh公钥,此公钥用于你的计算机连接Github
1
ssh-keygen -t rsa -C "你的邮箱"
之后打开C盘下用户文件夹下的.ssh的文件夹,会看到 id_rsa.pub
用记事本打开上述图片中的公钥(id_rsa.pub),复制里面的内容,然后开始在github中配置ssh密钥。
-
将 SSH KEY 配置到 GitHub
进入github,点击右上角头像 选择settings
,进入设置页后选择SSH and GPG keys
,名字随便起,公钥填到Key
那一栏。
注意: 要是有【Key type】的选择项 ,选择默认Authentication Key 即可。
1 | ssh -T git@github.com |
出现连接到账户的信息,说明已经大功告成,至此完成了环境准备工作。
建站小记(二)
初始化Hexo项目
- 在目标路径打开
cmd
命令窗口,执行hexo init
初始化项目hexo init blog-demo
- 进入blog-demo ,输入
npm i
安装相关依赖
1 | cd blog-demo //进入blog-demo文件夹 |
- 初始化项目后,blog-demo 有如下结构
- 输入
hexo server
- 打开浏览器 输入地址,看到下面的效果说明博客已经构建成功了
将静态博客挂载到GitHub Pages
安装 hexo-deployer-git
1 | npm install hexo-deployer-git --save |
修改_config,yml文件
- 在blog-demo目录下的
_config.yml
,就是整个Hexo框架的配置文件了。可以在里面修改大部分的配置。详细可参考官方的配置描述。 - 修改最后一行的配置,将
repository
修改为你自己的github项目地址即可。 - 请检查自己的默认分支是不是master。(很重要我第一次部署就出错了!!!)
- 我的github默认分支时main ,后面去yml改过来了(如果还是没页面,要清下缓存)
1 | deploy: |
部署项目到GitHub
- 修改配置完成后,运行命令,将代码部署到
GitHub
1 | hexo clean |
hexo clean
:删除之前生成的文件,若未生成过静态文件,可忽略此命令。hexo generate
:生成静态文章,可以用hexo g缩写hexo deploy
:部署文章,可以用hexo d缩写
1 | hexo clean && hexo g && hexo s #hexo 三连 |
- 出现如下,说明部署成功
- (稍等几分钟)浏览器访问:https://xingye391.github.io/,可以看到博客内容了
- 再次提醒!如果没页面——请检查自己的默认分支是不是master。(很重要我第一次部署就出错了!!!)
无法连接至Github的解决方案
注意:当你在与Github进行ssh通信时候出现超时或者是连接被关闭的情况,可以尝试以下解决方案。
-
挂代理和换网络(这个就不用多说了)
-
Git问题:解决“ssh:connect to host github.com port 22: Connection timed out”
-
开源项目Github520
通过修改Host文件的方法解决访问速度慢的问题
连接有效性检验:
1 | # 任选其一即可 |
设置个人域名
现在你的个人网站的地址是 yourname.github.io
。如果觉得不够定制化,可以购买一个专属域名。
这一步不是必要的,如果目前还不想买域名可以先跳过。
阿里云、腾讯云等都是不错的选择,建议选用com
,cn
或cc
这类常用好记的顶域,对SEO比较友好,自定义部分的长度尽可能短别人才会更容易地记住你的网站,要知道域名就是你网站的卡片。
博主选择的阿里云的.top
。购买域名后,实名认证进入阿里云控制台,点云解析进去,找到你刚买的域名,点进去添加两条解析记录,记录值 请填写<用户名>.github.io
,如下图所示:
以我的域名:xing-ye.top
为例进行说明
主机记录 | 解释 |
---|---|
www | 解析后的域名为 www.xing-ye.top |
@ | 直接解析主域名 xing-ye.top |
* | 泛解析,匹配其他所有域名 *.xing-ye.top |
将域名解析为 mail.xing-ye.top,通常用于解析邮箱服务器 | |
二级 | 如 abc.xing-ye.top,填写 abc |
手机网站 | 如 m.xing-ye.top,填写 m |
显性URL | 不支持泛解析(泛解析:将所有子域名解析到同一地址) |
将域名指向云服务器,请选择「A」; 将域名指向另一个域名,请选择「CNAME」; 建立邮箱请选择「MX」,根据邮箱服务商提供的 MX 记录填写。
记录类型 | 解释 |
---|---|
A | 用来指定域名的 IPv4 地址(如 8.8.8.8),如果需要将域名指向一个 IP 地址,就需要添加 A 记录。 |
CNAME | 如果需要将域名指向另一个域名,再由另一个域名提供 IP 地址,就需要添加 CNAME 记录。 |
MX | 如果需要设置邮箱,让邮箱能收到邮件,就需要添加 MX 记录。 |
TXT | 在这里可以填写任何东西,长度限制 255。绝大多数的 TXT 记录是用来做 SPF 记录(反垃圾邮件) |
NS | 域名服务器记录,如果需要将子域名交给其他 DNS 服务商解析,就需要添加 NS 记录。 |
AAAA | 用来指定主机名(或域名)对应的 IPv6 地址(例如:ff06:0:0:0:0:0:0:c3)记录。 |
SRV | 记录了哪台计算机提供了哪个服务。格式为:服务的名字、点、协议的类型,例如:_xmpp-server_tcp。 |
显性URL | 从一个地址 301 重定向到另一个地址的时候,就需要添加显性 URL 记录(注:DNSPod 目前只支持 301 重定向)。 |
隐性URL | 类似于显性 URL,区别在于隐性 URL 不会改变地址栏的域名。 |
打开你的github博客项目,点击settings,点击Pages,拉到下面Custom domain处,填上你自己的域名 ,保存。
部署成功后,再打开你的浏览器,输入你自己的专属域名,即可看到你的博客网站!
建站小记(三)
安装主题
- 本站基于
Hexo
搭建,ButterFly
主题 - 使用
git clone
安装ButterFly
- 在博客根目录,打开
git
工具,执行命令 - 稳定主题
- 在博客根目录,打开
1 | git clone -b master https://github.com/jerryc127/hexo-theme-butterfly.git themes/butterfly |
应用主题
- 修改站点配置文件
_config.yml
,把主题改为 butterfly
1 | theme: butterfly |
- 效果
把主题文件夹中的
_config.yml
复制到 Hexo 根目录里(我这里路径为【C:/Hexo-Blog/blog-demo】),同时重新命名为_config.butterfly.yml
。以后只需要在_config.butterfly.yml
进行配置即可生效。Hexo会自动合併主题中的_config.yml
和_config.butterfly.yml
里的配置,如果存在同名配置,会使用_config.butterfly.yml
的配置,其优先度较高。
安装渲染器
如果你没有pug
以及stylus
的渲染器,请下载安装,这两个渲染器是Butterfly
生成基础页面所需的依赖包:
1 | npm install hexo-renderer-pug hexo-renderer-stylus --save |
Front-matter
-
这部分内容每写一篇文章都要用到,我就给它单拎出来了。
-
Front-matter
是 markdown 文件最上方以---
分隔的区域,用于指定个别档案的变数。- Page Front-matter 用于页面配置
- Post Front-matter 用于文章页配置
-
tips:如果标注可选的参数,可根据自己需要添加,不用全部都写
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) |
Butterfly 博客主题搭建配置
- 这边建议查看butterfly官网文档ORHexo博客搭建基础教程(三) | Fomalhaut🥝
- 需要什么功能DIY就好啦
建站小记(四)
Typora+PicGo+阿里云OSS图床
为什么要搭建博客图床?
- 在本地的markdown文件.md中,图片是以“外链”这一形式存在的
- Office word中,图片是直接插入docx文件里面
- Markdown中,图片只是一个本地/联网的地址
- 也就是说,如果我们使用本地markdown编译器(如typora)来编辑MD文件的时候,如果MD里面插入的图片的源文件被移动或者删除了,我们的MD文档里面对应的图片也无法显示出来。
- 这个时候就要选择
图床
了!图床是一个在云端存储图片的平台,使用图床可以比较好的解决这个问题。
准备软件
Typora
Typora:【中文官网】
想必各位应该听很多博主安利过Typora这款软件,这里就不展开描述了
新版本typora需要付费买断。可以考虑支持正版,也可以去找找旧版本安装。
Picgo
PicGo:【Github地址】
找到对应安装包,下载安装即可
配置阿里云OSS
在浏览器搜索阿里云OSS,即可找到官网(我记得新用户有 3 个月免费使用,可以试一下!)
- 登录阿里云网站,进入工作台页面,搜索对象存储,进入该页面,然后点击 bucket 列表
- 进入页面,点击创建 bucket
- Bucket 名称和地域必填。地域选择一个距离自己近一些的地方。
- 读写权限选择为公共读,其余均默认,然后就创建成功啦。
- 点击网页右上角的头像,再点击 AccessKey 管理,进入该页面
- 生成一个 AccessKey,记得 Secret 只会显示这一次,所以要记录下来
配置picgo
图床设置
在图床设置里面选择阿里云OSS,依照以下步骤填写信息
设定Keyld:填写刚刚获得的AccessKeyID
设定KeySecret:填写AccessKeyIDSecret
设定储存空间名:填写bucket名称
这里填写的是bucket名称,不是浏览器里的域名
确认存储区域:填写你的地域节点,注意复制的格式
指定存储路径:其实就是自定义一个文件夹的名字,以/结尾它会自动在你的bucket里面创建一个文件夹,并把图片上传进去
配置Typora
使用 Typora 我们就能够边写,边截图图片放上去的时候,就会自动上传,这样就很轻松啦!!
当我们成功搭建好图床之后,每次写 Markdown 文档时,都需要先截图,再保存,然后手动打开 Picgo 完成上传,最后将图片地址复制到 Markdown 文档中。
如何做到更加高效地上传图片到图床呢?
用 Typora 写笔记,只需要先截图,再粘贴到 Markdown 文档,即可直接跳过上传操作,Typora 帮我们自动完成。
操作为:打开 Typora 的设置,点击图像,按照我给的图片进行设置
Ending
- 本站
建站小记(一)-(四)
已完成博客搭建+基础主题配置+博文编写上传功能,已经满足了大部分人只为撰写博客的需求 - 若想让自己的博客更加美观,则须多加参考Butterfly官方文档以及其他大佬的魔改教程,我本人也会在
博客
分类中分享一些魔改帖子(精力有限的情况下(哈哈)) - 此贴完结!!!