前序文章:
Hexo 博客 Stellar 主题使用 KaTex 公式与 Markdown 复杂表格

HarmonyOS Sans 字体

HarmonyOS 字体是华为发布的可免费商用的字体。其设计上聚焦于功能性、普适性,是一款多语言的无级可变字体,支持简体中文、繁体中文、拉丁、西里尔、希腊、阿拉伯等 5 大书写系统,105 种语言全球化覆盖。

我尝试了一下,在展示效果上,HarmonyOS 字体看上去确实要舒服很多,索性把它设置为了博客的基础字体。实际效果可以参考本博客。

下载 HarmonyOS

Stellar 主题使用 HarmonyOS 字体

其实,Hexo 博客使用字体的方式都是类似的,通过两个步骤完成:

  • 引入字体资源
  • 修改主题中的字体设置

其中,对于不同的主题,第二步的设置方式会不一样。但目前,大部分的主题都支持字体的自定义,具体方法可以通过主题的配置文档查看。

引入字体资源

在站点配置文件_config.yml 中,添加如下配置引入字体。

{blog-path}/_config.yml
1
2
3
4
5
inject:
head:
- <link rel="preconnect" href="https://s1.hdslb.com/" />
- <link rel="stylesheet" href="//s1.hdslb.com/bfs/static/jinkela/long/font/medium.css" media="all" onload="this.media='all'" />
- <link rel="stylesheet" href="//s1.hdslb.com/bfs/static/jinkela/long/font/regular.css" media="all" onload="this.media='all'" />

上面的代码会引入 mediumregular 两种字重

修改主题的字体设置

修改主题配置文件,找到 style 部分下面的 font-family 配置:

{blog-path}/_config.stellar.yml
1
2
3
4
style:
font-family:
logo: 'HarmonyOS_Regular'
body: 'HarmonyOS_Regular'

如果喜欢粗一点的字体,可以修改为

{blog-path}/_config.stellar.yml
1
2
3
4
style:
font-family:
logo: 'HarmonyOS_Medium'
body: 'HarmonyOS_Medium'

两种字重的显示效果对比图如下,本站使用的字重为 medium

HarmonyOS 字体不同字重显示效果对比
HarmonyOS 字体不同字重显示效果对比

使设置生效

完成上述修改后,执行

1
hexo cl & hexo g & hexo s

再访问 localhost:4000 可以查看效果

如何选择字体

如何选择字体格式
  • 为了不影响访问效率,不建议使用 src: url('../fonts/yaheiconsolashybrid.ttf') 引入 ttf、otf 等格式的字体,建议使用 woff2 格式。
  • 为了进一步节省带宽,提升访问速度,还可以使用 unicode-range CSS 描述符对 @font-face 内的字体进行分割,可以做到按需加载。
  • 本文上面提供的链接时 B 站已经处理好的 woff2 格式的字体,访问速度也很快。感谢 B 站!