Skip to content

Lambholl/webfont-seperator

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

18 Commits
 
 
 
 
 
 

Repository files navigation

WebFont serperator

简介/注意事项

  • 由于中文的字体文件包含非常多的字符,因此字体文件往往非常大;Google Fonts给出了相当不错的解决方案:由于CSS支持为同一个字体的不同部分指定不同的字体文件,在加载网页时按需加载,因此可以将字体事先做好字符子集化,并设置好相应的CSS文件,这样在加载网页时即可尽量减少消耗不必要的网络流量了。
  • Google Fonts给出的API的例子有:Noto Sans SC, Noto Sans JP
  • 然而,Noto Sans(同AdobeSource Han Sans系列) 在网页上上的渲染效果并没有更纱黑体好,因此出于替换用目的,我写了此工具用于分割更纱黑体以取代谷歌提供的Web Font;如果您手上有其他字体需要进行分割,也可以使用此工具;
  • 由于我个人并没有技术像谷歌那样计算好怎么分割字体比较合适,每个字体需要哪些字形,因此此工具参照了谷歌的CSS文件,完全按照谷歌的分割方式进行分割,在使用时需在本地导入一份谷歌的CSS样式文件;当然如果您手上有别的分割方法,也可以将其写入一个CSS文件中进行导入;或者如果您有别的更好的方式进行分割,欢迎Pull Request
  • 请务必使用对应地区化字形的分割方式,例如,
  • 本工具设计的时候只考虑了谷歌的CSS格式,即以正则表达式(?<=unicode-range: ).+?(?=;)进行匹配,如果您本地想要导入的CSS文件中的冒号后并无空格,请手动删除
  • 本工具基于Pythonfonttools中的pyftsubset
  • 请注意,CSS支持对一个字体设置NormalItalic两种样式,而本工具一次只能对其中一种进行处理;如需对两种样式都进行处理,请修改设置运行两次
  • 更新:利用多个CSS文件补齐CJK部分
    summonFonts_extra.py可以在生成CSS文件后,比对剩余文件包含的字符,从而补齐CJK部分

使用方法

  1. 请先安装fonttoolsbrotli:
pip install fonttools
pip install brotli
  1. 然后,请确保pyftsubset所在的文件夹在您的系统的环境变量 Path
  2. 将您需要应用的分割方式的CSS文件从Google Fonts上下载下来并保存在本地
  3. 准备您需要使用的字体文件
  4. 使用文本编辑器打开py文件,在文件开头处填写好相关设置
  5. 运行本工具
  6. 将生成结果上传至您的服务器,应用在网页中

About

A tool to serperate fonts into little pieces for webfont uses.

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors

Languages