前言
Hello world!
这是我在新博客的第一篇博客文章,记录这个博客是如何搭建的。由于我并非专业人士,仅简略记录我的搭建过程和遇到的问题,并且不详细解释每一步的操作。如有疑问,请访问参考部分。
目前该博客处于美化阶段,主要内容为替换默认图片(背景,图标等)。博主艺术创作能力有限,欢迎提供帮助。
待办(For myself)
- 124 默认封面背景
- 589 qrcode
- 807 视差壁纸
- 1237 cursor settings
- Live2D
搭建博客
博客可以像搭建访问量较大的网站一样实现。一般来说,搭建网站需要购买服务器、域名、备案、购买云服务器等一系列繁琐的流程,如果要制作静态网页还需要自己手搓或者利用 WordPress 等 CMS 系统。而用 GitHub Pages 和 Hexo 搭建博客,可以快速搭建个人博客,而且不需要购买服务器、域名、备案等繁琐的流程。
Github Pages 是 Github 提供的静态页面托管服务,可以直接将静态网页托管到 Github Pages 仓库中,然后通过域名访问。相较于其他静态页面托管服务,Github Pages 免费、稳定、安全,但是在国内访问和加载资源较慢,适合个人博客。
理论上说,你完全可以自己手搓 HTML 页面和脚本完成博客。但对于像我这样的新手或者重点在成果而非过程的人来说,使用现成的框架和工具可以节省大量时间。Hexo 是一个基于 Node.js 的静态博客框架,它可以快速生成静态网页,并且可以用 Git 部署到 GitHub Pages。
创建 GitHub Page
登录 Github,创建一个名为 username.github.io
的仓库,其中 username
是你的 GitHub 用户名。这就是你的
GitHub Pages 站点的仓库。可以通过访问
https://username.github.io
来访问你站点的
index.html
文件。
安装配置 Git
从 Git 官网 下载安装。
因为 Git 是分布式版本控制系统,所以需要填写用户名和邮箱作为一个标识。在命令行输入:
1 | git config --global user.name "user_name" # user_name填入GitHub用户名 |
查看已设置的用户名和邮箱,在命令行输入:
1 | git config user.name |
配置 SSH key:
1 | ssh-keygen -t rsa -C "user.email" # user.email为GitHub上注册的邮箱 |
三个默认设置就可以,不需要密码。在 C 盘
.../Users/your_user_name/.ssh
目录下找到
id_rsa.pub
公钥文件,复制里面的内容,在 GitHub_Settings_keys
上新建添加 SSH key。
输入以下命令检测是否配置成功:
1 | ssh -T git@github.com |
如果出现
Hi username! You've successfully authenticated, but GitHub does not provide shell access.
字样,则配置成功。
如果返回
Connection closed by 20.205.243.166 port 22
,有可能是代理的问题。请关闭你的代理清除缓存(重启)并重试。
安装 Node.js
从 Node.js 官网 下载安装。
我用 Package Manager 安装 Node.js 遇到了问题,可选择使用 Prebuilt Installer 安装。
安装 Hexo
在命令行中输入以下命令安装 Hexo:
1 | npm install -g hexo-cli |
创建一个文件夹作为你的博客配置文件夹所在位置,并在其中打开命令行。输入
1 | hexo init blog |
即可创建你的博客项目。其中 blog
是你的博客文件夹名。之后所有的操作都在 blog
文件夹中进行。
配置 Hexo
安装 hexo-deployer-git 插件,用于部署到 GitHub Pages。
1 | npm install hexo-deployer-git --save |
编辑根目录下的 _config.yml
文件,配置你的 deploy
部分站点信息。
1 | deploy: |
现在你已经搭建好了你的博客,可以进行本地预览和部署。
如果你本地预览正常而部署后静态资源未加载(比如主题格式混乱),请检查你的
_config.yml
文件中的url
和deploy
部分是否正确。
除了 deploy
部分,你还需要配置其他部分,包括
site
等。
使用 Hexo
Hexo 有以下常用命令:
1 | hexo init # 创建一个新的 Hexo 站点 |
Hexo 的工作流程是,在项目中进行主题配置(_config.yml
文件),用 hexo new
命令创建新文章、在 _posts
文件夹中编写文章后,运行 hexo generate
命令生成静态文件(要部署到 Github Pages 的文件,在
.deply_git
文件夹中),然后运行 hexo deploy
命令部署到 GitHub Pages。
美化博客
Hexo 官方提供了丰富的主题,你可以在 官方主题发布页 中查看。注意,大多数主题是由社区提供的,其配置方式和插件支持等千差万别,请根据自己的需求选择适合的主题。我是用的是 volantis 主题,阅读文档以自定义美化。
主题安装
参考 官方文档 安装主题。
主题文件夹下也有一个配置文件
/node_modules/hexo-theme-volantis/_config.yml
。在博客根目录的
_config.yml
文件旁边新建一个文件
_config.volantis.yml
,这个文件中的配置信息优先级高于主题文件夹中的配置文件。将配置文件复制过来修改,以免配置丢失。
使用
npm
安装主题的配置文件在如上位置,而使用传统方式安装的主题配置文件在theme
文件夹下。
遵循官方文档,修改配置文件 _config.volantis.yml
中的配置信息即可。
使用资源
在配置文件中,你可能经常看到图标使用 volantis-static
位置的图片资源。这是主题的官方静态资源库,可以直接使用里面的资源。
如果你想上传自己的资源,最简单的办法是使用图床或者另开一个 github 仓库,然后将图片链接替换到配置文件中。如果你觉得加载速度太慢,也可以使用 cdn 服务,参见文档。
密码插件
如果你想加密一些你的文章,使得只有正确输入密码之后才可以查看,那么你可以使用hexo-blog-encrypt 插件。
只需要按照文档安装和配置即可。不过每次上传文章前需要清除缓存。
数学公式
Hexo 自带 MathJax 插件,可以渲染数学公式。volantis
主题默认启用该插件,你只需要在每个用到数学公式的文章前的
front-matter
中添加 plugins: [mathjax]
就可以使用数学公式了。
使用的话,在文章中使用 $
和 $$
来包裹公式即可……吗?
对单行公式来说是这样的。但是对于多行公式,由于默认渲染器的原因(hexo-renderer-marked
),会错误解读
//
优先为 Markdown 语法,导致渲染失败。(VScode 编辑器的
Markdown to PDF 插件也会遇到这个问题)
你可以根据官方文档选择自己喜欢的方式解决。
我解决的办法是更换渲染引擎。然而不同渲染引擎解决的方法不同,依然有可能遇到插件冲突问题。
比如,我第一次更换了 syzoj-renderer:
1 | yarn remove hexo-renderer-marked |
如果你没有 yarn
,可以安装一下(我没试过
npm
)。
1 | npm install --global yarn |
它解决了多行渲染的问题。然而,这导致了标签插件没有正常被渲染。由于该插件有过和 Pjax 插件冲突的先例,怀疑是渲染逻辑的硬伤,于是更换了 pandoc:
1 | yarn remove hexo-renderer-syzoj-renderer |
同时,你还需要下载 pandoc 并将其导入环境变量或加入配置文件。
测试,解决了所有已知问题,并且浏览时右键公式可以复制源代码,十分方便。
图床
如果你想在博客中插入图片,那么你需要一个图床。将图片上传到图床后,你可以直接引用链接到博客里。
你可以直接将图片上传到博客仓库,然后引用,但 GitHub 的国内加载速度实在太慢。在多次试用之后,我找到了一个比较合适的图床网站:imagehub 图床,它免费、快速,但稳定性未知。
Live2D 插件
除了主题整合的可以直接使用的插件,你也可以自己装额外插件。在进阶玩法里有一个看板娘插件(实际是将
Live2D
模型渲染到页面上)。我想更进一步使用微光模型。然而模型还没影子
待更新。
转移博客
之前我主要使用的博客是博客园,需要将内容进行转移。参见 博客园 Cnblogs 迁移到 Github Pages。