博客搭建日志

本文记录该博客搭建的过程。

首先致谢 llingy,是他自始至终给我提供了大量帮助和指导。


设想

我几年前就想搭建一个自己的博客,但苦于时间精力有限和自己对各方面工作没有了解,我一直实际使用的都是洛谷博客,甚至连 GitHub Pages 都还处在起步阶段。

llingy 同学在九月末至十月初这段时间里基本完成了自己博客的搭建工作,并向我们展示。我确实很佩服他的摸索能力和实践能力,同时也产生了尝试着给自己搭建一个博客的想法。

起步

2022 年 10 月 14 日晚上,从在我的计算机上安装 Node.js 开始,我的博客搭建起步了。

首先是安装 Node.js 和 Hexo。很快,我的 Hexo 就运行在 localhost 上了。

接下来是选主题。这位鸭厨老哥 的主题是 Butterfly,我感觉不错,于是给我的博客也配置了这个主题。但很快我发现,这个主题的数学公式缩放比例不太对劲,疑似开了 \large 类似物,导致显示效果十分难看。于是我改而选择了 llingy 选用的 Fluid 主题。

接下来是其它各种配置。完成后,运行在 localhost 上的我的博客就基本可以使用了。

域名与服务

域名

我选择 cyberangel.ac.cn 这个域名。

2022 年 10 月 16 日,我在腾讯云上购买了这个域名,并完成了实名认证。

Webify

2022 年 10 月 ?? 日,我购买了按量计费的 Webify 服务,并将我的博客部署到了上面。至此,可以通过腾讯云提供的项目默认域名来在公网上访问我的博客了。

字体美化

这算是本次搭建工作的一项大工作。这项工作大概分散在 2022 年 10 月 17 日至 19 日完成。

再次感谢 llingy 同学提供的大量帮助。

概览

没有指定字体时,字体会由浏览器设置和用户环境决定。我选择将我的博客设置为我自己指定的字体。

具体地,我现在选择的字体是:

  • 中文正文:华文宋体(STSong)

  • 中文引用:华文仿宋(STFangsong)

  • 其它中文内容:华文中宋(STZhongsong)

  • 英文和拉丁文正文:Georgia Light

  • 英文和拉丁文引用:Georgia Light

  • 代码:Fira Code Light

  • 其它西文内容(不含数学公式):Georgia

  • 数学公式:由 MathJax 独立渲染 $\LaTeX$,与以上设置没有关系

华文中宋做标题、华文宋体做正文,这是我从初二就开始用在我的作文上的字体模式。这一套字体正式而美观,并且我感觉还有一种印刷品的味道。

字体文件提供与字体子集化

为了字体能够在各种地方正常显示,我们需要将字体文件提供给浏览器,当本地找不到所需字体时就从这些文件读取。Hexo 支持的是 woff2 格式的字体。

我们将所需字体子集化成若干较小的文件,一个文件只有在有字符需要它时才会被加载,这样可以减少流量消耗,加快加载速度。

配置

如果全局都使用统一的字体,可以像 llingy 同学一样直接在主题的 YAML 文件里面指定。不过我需要对不同的内容分别设置字体,所以需要写 CSS 来控制各项内容的字体,并将这个 CSS 文件的地址写到 YAML 的配置信息里面。

第一遍写的时候,我将 body 的字体设成了 STSong,打算将需要换成 STZhongsong 的中文内容在下面覆盖设置。但之后我发现,有大量的地方需要重新设置为 STZhongsong。所以我选择了改换思路,先将整体设置为 STZhongsong,再单独将 p 设置成 STSong。这样就用简短的几条设置完成了整体字体的配置。

Fira Code 与连字

Fira Code 是一款适用于编程的免费字体,这里是它的开源项目地址。Fira 是 Mozilla 主推的字体系列,而 Fira Code 是在 Fira Mono 基础上进一步补充开发出来的。

Fira Code 是 LibreOJ 的代码显示字体。2022 年暑假我在自己的电脑上安装了这个字体,之后就爱不释手,一直在用。相较于 Regular,我更喜欢 Light ——它线条细而流畅,十分清爽优雅。

Fira Code 支持连字(Ligatures)。在支持并已启用了连字功能的环境上使用该字体,会在一些字母组合 / 符号组合处应用自然美观的连字显示效果。

只是把 code 的字体设置成 Fira Code Light 并没有启用连字功能。

我在 Mozilla 的 MDN 上找到了一个在 CSS 里面启用连字的方法是将 font-variant-ligatures 设置为 common-ligatures,但是实测即使加上 !important 也不行。在和我摸索了一阵子之后,llingy 同学突然会了:将 font-feature-settings 设置为 liga 即可。

——他是怎么突然知道的呢?是他的 VSCode 在编辑器的连字设置处弹窗告诉他“可以使用 liga clig 等来精细设置连字”,然后他就突然明白了,我们的问题顺利解决。

备案

我的顶级域名是 .cn,所以我的域名需要依法备案才可以被正常访问。

出版许可(陕西省人民政府)

To be continued…

ICP 备(工信部)

To be continued…

公网安备(公安部)

To be continued…


博客搭建日志
https://cyberangel.ac.cn/posts/building-logs/
作者
Wang Houhua
发布于
2022年10月17日
许可协议