小球飞鲸

全站更换京华老宋体

思源宋体用腻了,想给这个站点配个复古一点的印刷体

字体来源 #

【新字发布】京華老宋体

其他可商用复古字体参考

京華老宋体授权声明 1. 本字体免费商用,可随意用于各类平面、包装、宣传、影视、网页等美术设计中,也可以嵌入电子产品、软件应用之中。
2. 本字体可随意复制传播,但不可单独作为字体文件出售、盈利。
3. 请勿随意修改本字体字形,更不许传播修改版文件。
4. 本字体字形不符合任何地区的现有文字规范,切勿将本字体用于教育或其他用字讲究的正规场合。
5. 切不可将本字体用于违法犯罪活动。

Step1 给字体抽子集 #

字体源文件TTF格式有31M,三万余字,作为博客来说,用不到这么多。

常规给字体抽子集是用 字蛛,理论上来说,就是以指定的文字内容,来生成新的字体文件,但使用的时候报错

'NoneType' object has no attribute 'Axis’ 寻找解决方法无果,猜测是这个字体文件本身可能有点问题,于是作罢。

类似的还有 Fontmin,原理和字蛛类似,也还是不能用

另一个看起来更优雅的方案是 Font Tailo r,但我没看明白怎么用,暂时搁置

最后使用了 FontSubsetGUI,有个图形化界面确实好操作一点

至于指定的文字内容,一开始找到了一个 常用字库,但实际操作之后发现并不适用,比如网站标题的“槎”就不包含在常用字符内。如果要量身定制,最好的素材就是我自己写过的博客文章。

import os
import shutil

# 获取目录下所有.md文件名
file_list = []
for root, dirs, files in os.walk('.'):
    for file in files:
        if file.endswith('.md'):
            file_list.append(os.path.join(root, file))

# 将所有md文件内容写入新文件中
with open('all.md', 'wb') as f:
    for file_name in file_list:
        with open(file_name, 'rb') as file:
            shutil.copyfileobj(file, f)

Step2 导入站点 #

在CSS文件中写入以下内容:

@font-face {
  font-family: "KingHwa_OldSong";
  src: url("/font/KingHwa_OldSong-blog.woff2") format("woff2");
}

并加入:

body {
  font-family: 'KingHwa_OldSong', 'Source Han Serif CN';
}

遇见的坑 #

  1. python看太多,忘记了css有一对大括号(……)
  2. 用网页工具给ttf转woff2,转出的字体正常加载,但不能被读取(……)
  3. 第二个问题也遇见了太多次了吧……

本篇文章使用 Notion创作,由我的 自动化工具从Notion同步。