本文所提及的博客框架以及托管平台,您可以依据自己爱好替换,但本文并不会介绍其他框架以及平台的使用方法
本文的一些术语以及介绍可能不专业,欢迎大佬纠错补充
这里是 MqyGalaxy~
如果您想拥有一个自己的网站,但又执着与经济上的问题,那么您可以考虑使用 Hexo 与 GitHub Pages 来搭建一个静态博客
# 前言
# 搭建博客的初衷?
为什么要搭建博客?因为看到其他大佬的博客心动?还是为了分享自己的生活?亦或者是为了自己的爱好?
这些都可以成为博客的初衷,你可以在博客上写含有技术性的文章,或者分享自己的爱好和生活,也可以是一个项目或者其他文章
比如我的博客,起因是看到了大佬的博客感到心动,之后由一些爱好的推动而尝试自己搭建
一开始我的博客没有使用任何博客框架,全靠自己手打 css/js 文件,不会就学习别人的。但是终于还是发现,这样既不便管理,又不便使用
之后又听说到许多大佬使用 Wordpress 搭建个人博客,很遗憾的是当我准备好且打算替换原来的静态博客时,这高昂的价格挡住了我一个学生党的道路
但是,直到最后,听到了使用 Hexo 这样的静态博客框架来搭建博客非常实惠,这条道路简直是完美实现了我搭建博客的想法
到了现在,你所看到的博客就是 Hexo 与 markdown 渲染后,由 GitHub Pages 发布后的成果
# 为什么选择使用 Hexo 等类似的静态博客框架?
首先,让我们了解一下什么是静态网站
静态网站是指全部由 HTML 代码格式的静态页面页面组成的网站,无论是否被访问都是一个独立存在的文件,但没有数据库的支持,制作与维护的工程量较大,交互性较差,在功能方面有着很大的限制
而动态网站,它会因为变量的改变而产生不同的网页,交互性强,功能限制少,拥有后台数据库。
现在的许多网站都是动态网站(如 bilibili、萌娘百科或者一些博客等),但是,虽然维护的工程量减少了,但相对应的维护成本提高了不少。
而这就是我们为什么选择静态博客框架,它大大降低了维护成本(甚至可以白嫖),而且可以依靠插件实现动态网站所拥有的一部分功能(包括但不限于评论、搜索等)
但请注意,这不代表使用了静态博客框架就可以媲美动态网站,动态网站能实现的功能大大超过了静态网站
但是作为博客,静态博客框架已经足够满足我们了;当然,如果您有足够的能力还是可以去尝试动态网站制作。
说回使用静态博客框架的好处,除了成本低以外,相比于原本的没有框架的静态网站来说,管理也十分简单,比如在基于 markdown 插件下您可以去除那些繁琐的代码来快速撰写自己的文章
而且您也可在网上搜索(如 Hexo 官方主题页面)其他人公开发布的免费主题来装饰自己的网站
# Hexo 介绍
除了 Hexo,您也可以选择使用其他的静态博客框架
Hexo
是一款基于 Node.js
的静态博客框架,依赖少易于安装使用,可以方便的生成静态网页托管在 GitHub 和 Heroku 上,是搭建博客的首选框架
而且官网支持中文,一些文档细节您都可以使用中文阅读
# GitHub 以及 GitHub Pages 介绍
除了 Github,您也可以选择使用其他平台托管
GitHub
,是大型同性恋交友平台通过 Git
进行版本控制的软件源代码托管服务平台
关于 GitHub 与 Git 的其他功能与用法在此不多提,我们只需要了解他所提供的 GitHub Pages
网页托管服务
GitHub Pages
可以存放以及托管您的博客,一般使用 github.io
的子域名,当然您可以替换使用第三方域名(您购买的自定义域名)GitHub Pages
存在一定限制,但由于微软收购,他已经极大满足了个人博客需求真是太好用了!
- 发布的 GitHub Pages 网站不得超过 1 GB。
- GitHub Pages sites have a soft bandwidth limit of 100GB per month.
- GitHub Pages sites have a soft limit of 10 builds per hour.
# 使用前准备(安装环境准备)
浏览器强烈建议使用 Chrome,在英文文档翻译以及错误排查有很大的帮助,而且速度也快许多
您需要准备好使用环境才可以安装使用 Hexo
# 编写工具
我使用的是 Visual Studio Code
,这个工具容易上手且功能很多。有官方搭建的插件社区使软件活跃至今,且此软件开源。
# 创建 GitHub 仓库
前往Github官网注册 / 登陆自己的 GitHub 账号,在此不会多提
登陆完毕后,点击右上角的 +
号,再点击 New repository
创建新的仓库
仓库名应该设置为: 你的GitHub用户名.github.io
如果您的仓库名不是叫 用户名.github.io
,您部署的网站将会部署到 用户名.github.io/仓库名
而不是 用户名.github.io
描述你可以选择不填,但是仓库必须选择公开状态 Public
下面三个选项 RADEME.md
、 .gitignore
、 许可证
,可以先不选择
创建完毕后你可能处于一个选项页面,是因为你的仓库没有任何上传文件,但仓库已经存在(您可以选择创建或者引用其他仓库,在此不会多提)
# 安装 Git 并绑定 GitHub 账号
您需要使用 Git
完成本地同步 GitHub 的仓库
Git 官网安装根据自己配置需求安装相应版本
安装完毕后,在命令行( cmd
或者 powershell
)输入 git
测试是否安装成功
如若安装失败,请查看其他 Git 安装教程
安装成功后,您需要将 Git 绑定 GitHub 账号:
鼠标右键或者菜单搜索打开 Git Bash
(鼠标右键为 Git Bash Here
在此路径打开,不影响以下操作)
设置 user.name
和 user.email
的配置信息,分别输入后回车:
git config --global user.name "你的GitHub用户名" | |
git config --global user.email "你的GitHub注册邮箱" |
绑定后生成 ssh密钥
文件:
ssh-keygen -t rsa -C "你的GitHub注册邮箱" |
默认不需要设置密码
生成 ssh 文件后,git 会直接给出 .ssh
文件夹所在路径 C:\Users\用户名\.ssh
打开 .ssh
文件夹找到 id_rsa.pub
,复制里面的全部内容
最后打开 GitHub
,点击右上角个人头像后点击 Setting
进入设置界面再点击 SSH and GPG keys
点击 New SSH key
新建title
任意填写,将你复制的内容粘贴至 Key
中,点击 add SSH Key
添加
在 Git Bash
中输入 ssh git@github.com
检测公钥设置是否成功
如若出现 Hi 你的用户名!You've successfully authenticated……
的说明即为成功
设置密钥可以让你在使用 Git 上传时省去输入账号密码验证的过程
# 安装 Node.js
因为 Hexo 基于 Node.js
环境的因素,您还需要下载安装 Node.js
Node.js 官网安装根据自己配置需求安装相应版本
安装 Node.js 会包含环境变量以及 npm
的安装
在命令行输入 node -v
来检测 Node.js 是否安装成功,显示相应版本即为安装成功
输入 npm -v
来检测 npm 是否安装成功,显示相应版本即为安装成功
至此,恭喜您完成全部安装 Hexo 的前置环境搭建
# 安装 Hexo
Hexo 是作为我们整个静态博客的框架
首先在电脑中新建一个文件夹,取名随意(最好是在自己已经规划好的路径,比如 D:\Blog\MyBlog
)
打开新建文件夹,在文件夹上方的路径栏里输入 cmd
或者 powershell
在该路径中打开命令行
使用 cmd
或者 powershell
都可以做到命令行的作用,在这里推荐使用 powershell
, 以下将简称为命令行
在命令行中输入 npm
命令安装 Hexo
npm i -g hexo-cli |
在这里将 install
缩写成 i
,您也可以输入 install
Hexo 安装可能需要一段时间,中途可能出现几个报错,可以先无视它
安装完成后,在命令行输入 hexo -v
验证是否安装成功
如若显示版本等各项信息即为安装成功
随后在命令行输入 hexo init
初始化文件夹,接着输入 npm install
安装必备的组件
至此 Hexo 安装完毕
# Hexo 的使用以及博客的发布
以下所有命令都在命令行执行,路径为博客根目录
# hexo 常用命令
首先要了解 Hexo 的常用命令
hexo n "xxx" = hexo new "xxx" # 新建名为 xxx 的文章 | |
hexo g = hexo generate # 生成静态网站文件 | |
hexo s = hexo sever # 启动服务本地预览 | |
hexo d = hexo deploy # 部署博客 | |
hexo clean # 清除缓存,一般网站正常则不会使用 |
下面会一一讲解:
# 站点配置文件 _config.yml
_config.yml
是您的博客的配置文件,位于根目录,在这里可以设置博客的基础信息以及插件指令
\themes\主题名\_config.yml
为主题配置文件,注意一定不要混淆
# 本地预览
输入 hexo g
生成静态网页,再输入 hexo s
打开本地服务器预览
默认本地服务器路径为 localhost:4000
在浏览器中打开就可以看到 Hexo 默认的博客样式了
如果本地服务器启动失败,可能是因为端口占用的原因,输入 hexo s -p 5000
修改端口为 5000 并启动
如需关闭,在命令行中按下 Ctrl
+ C
# 推送网站
如果您的网站一切准备就绪,是时候将网站部署在 GitHub 上了
首先打开站点配置文件 _config.yml
并找到 deploy
项,一般都在最后
将其修改为
# 以下格式可能不符,建议手动添加 | |
deploy | |
type: git | |
repo: git@github.com: 用户名 / 仓库名.git # 仓库地址 | |
branch: master |
保存站点配置文件
上传前需要安装 Git 部署插件,输入命令
npm i hexo-deployer-git --save |
安装完毕后分别输入命令
hexo clean # 可以忽略,更换主题或者出现问题可以尝试执行该命令 | |
hexo g | |
hexo d |
输入 hexo d
后,网站就会由 Git 插件上传至 GitHub 仓库
在仓库中点击 setting
进入仓库设置界面(请勿点入个人账户设置界面 = =)
在 GitHub Pages
选项中,将 Branch
设置为 master
, /(root)
保持根目录不变
点击 save
保存,刷新后就会显示正在部署网站了
部署完毕后,在浏览器输入自己的域名 https://你的GitHub用户名.github.io
即可访问你的博客了!
至此,基础的博客部署已经成功了
# 更换主题
我们不可能就使用 Hexo 自带的默认主题
在 Hexo 官网的Themes专区,有许多用户自制的开源 Hexo 主题
您可以找到并根据主题介绍文档下载并配置自己喜欢的主题,在这里不会具体介绍
主题应安装在 \themes
中
安装主题后,记得将站点配置文件 _config.yml
的 theme
项修改成您安装的主题名称
当然,如果您有能力可以魔改甚至自制主题
一般来说,主题会自带插件(如评论、搜索等),您需要使用 npm
下载相应插件,主题的介绍文档也应该列出了插件下载地址
如若在主题方面出现问题,请去寻找主题作者询问或者提议
修改完成后保存,在使用相同的方式上传到 GitHub 仓库即可
# 撰写文章
安装完 Hexo 后,Hexo 会自动在文件夹 \source\_posts
中生成一个名为 hello world.md
的文件
这个文件就是 Hexo 自动帮你生成的第一篇文章,里面写的是 Hexo 的初始指令
_posts
就是你以后写文章所放置.md 文件的地方, .md
后缀的文件即是 markdown 文件,是你写完的文章文件markdown
是你写文章所使用的语法,具体写作方法请自行搜索
如果您写过 wiki 的话应该会更好理解,大部分 wiki 与博客等网站都是使用 markdown 语法
如果你要新建文章,在命令行输入:
hexo n post "xxx" |
就会在 _post
目录下新建一个名为”xxx“文章了
如果你在 _post
中已经生成了文章,写新文章时不想使用 hexo n
,可以直接复制旧文章到 _post
中加以修改
文章写完后保存,在使用相同的方式上传到 GitHub 仓库即可
使用不同的主题,相关文章配置路径也会不同,请仔细阅读主题配置文档
# 更换域名
如果您有能力且想要属于自己的个性化域名,您可以购买域名来使用到自己的博客上
购买域名请自行购买,最好在靠谱的交易域名商处购买域名
最好不要购买使用免费域名,因为域名商可能不会保证域名的使用权利,而且一些博客的友链也不会收录免费域名
域名不能买断且价格不同,比如 .com
的价格偏高,且每个域名商提供的价格也不同
购买域名后需要代理商解析域名,如果是国内购买的域名则需要进行备案,在此不详细说明
如果你已经准备好后,在仓库设置的 GitHub Pages
中的 Custom domain
项中填入自己的自定义域名并保存
建议打开强制 https Enforce HTTPS
来保证自己的网站安全github.io
会固定开启强制 https
所以如果没有能力最好就使用 github.io
,既不会被歧视也好用,就是不怎么好看 = =
# 自定义域名补充
当你从本地 hexo d
上传本地文件后,发现域名从自定义域名变回了 GitHub 域名。
在 \source
中新建一个名为 CNAME
的文件 (无后缀),并在里面写入自己的自定义域名。
最后再次上传就可以了
# 最后
部署一个 Hexo 框架的静态博客其实非常简单,但很多想要尝试的小白萌新看到这么繁杂的过程,觉得非常麻烦就放弃了,其实这个过程上手后你会觉得非常简单的 = =
如果有任何问题 / 错误 / 补充请在评论区回复,我会看到并回答 / 纠正 / 补充的!
希望这篇文章能够帮到你~