- 前端
- CLI
- 开发工具
【免费下载链接】fontsource
Self-host Open Source fonts in neatly bundled NPM packages.
Edu NSW ACT Cursive 是 Fontsource 仓库中收录的澳洲学校手写字体(AU School Handwriting Fonts)系列成员之一,专为满足澳大利亚教育标准而设计,对应新南威尔士州(NSW)与首都领地(ACT)的连笔书写规范。本文以其官方描述文档 description.en-US.md 为骨架,结合同目录的 family.json、distribution.json 与 license.txt 元数据,以及 Fontsource 的安装与可变字体文档,系统讲解该字体的设计背景、技术规格、许可合规,以及在项目中使用(含自托管与 CDN)的完整实操方案。
字体是什么:澳洲学校手写字体系列的一员
为澳大利亚课堂而生的手写字体家族
根据官方描述文档,AU School Handwriting Fonts(澳洲学校手写字体)是一套英语语言(English language)、基于 OpenType 技术的可变字体家族(variable typeface family),其设计目标非常明确——专门满足澳大利亚教育标准(Australian Education standards)。
描述文档特别强调了两个设计取向:
- 课堂导向:字重(weights)、字宽(widths)和光学尺寸(optical sizes)都经过精心设计,确保在澳大利亚教室环境中书写与阅读体验良好;
- 家庭通用:该字体并不仅限于课堂,在家居环境中同样舒适、易于阅读和使用。
这意味着它不是一款"装饰性"字体,而是一款以可读性、规范性、教学适用性为核心的手写字体。
NSW 与 ACT 的书写规范
描述文档明确指出:
This font represents the forms used in New South Wales an the Australian Capital Territory.
即该字体表现的是**新南威尔士州(New South Wales)与澳大利亚首都领地(Australian Capital Territory)**使用的书写形式。澳大利亚各州/领地的基础教育阶段教授不同的手写风格,因此 Fontsource 仓库中收录了多个面向不同地区/阶段的"Edu"系列成员,例如:
- edu-nsw-act-foundation(NSW/ACT 基础书写)
- edu-qld-beginner(昆士兰州基础阶段)
- edu-sa-hand(南澳州连笔手写)
- edu-vic-wa-nt-hand(维多利亚州、西澳与北领地连笔手写)
从这些同系列目录可见,澳大利亚学校手写字体按州/领地划分字形规范,Edu NSW ACT Cursive 正是其中面向 NSW/ACT 连笔(cursive)阶段的实现。描述文档还提到该字体的贡献入口位于上游项目仓库(文档中标注为SorkinType/VICWANTSchoolHandAustralia,而 family.json 的project.repository记录的上游仓库为SorkinType/NSWACTSchoolHandAustralia,两个字段对上游仓库的指向存在差异,读者如需参与贡献请以上游最新信息为准)。
核心技术规格:从 family.json 与 distribution.json 拆解字体实现
描述文档只给出了字体的定位与用途,而 Fontsource 仓库在同目录的 family.json 中记录了极其详尽的机器可读元数据,可以作为对该字体技术实现的权威佐证。
基础元数据总览
| 字段 | 值 | 说明 |
|---|---|---|
family | Edu NSW ACT Cursive | 字体家族名 |
displayName | Edu NSW ACT Hand Cursive | 展示用名称 |
designer | Tina Anderson, Corey Anderson | 设计师 |
classifications | handwriting | 字体分类:手写体 |
dateAdded | 2024-03-19 | 收录日期 |
sourceModified | 2024-03-20 | 上游源文件修改时间 |
license.id | OFL-1.1 | 采用 SIL Open Font License 1.1 |
status | deprecated | 状态标记(详见下文) |
标签体系:字体的语义定位
family.json 中tags字段给出了四个语义标签,精确刻画了字体的用途:
expressive/childlike——表现力/童趣风格;purpose/learn-to-write——学习书写(learn to write)用途;script/handwritten——手写脚本风格;script/informal——非正式/日常书写风格。
purpose/learn-to-write与script/handwritten两个标签直接呼应了描述文档中"面向澳大利亚教育标准、用于课堂书写教学"的定位。
可变字体能力:wght 轴 400–700
描述文档提到这是"OpenType variable typeface family",而 family.json 的sources[0].inspection.axes给出了具体实现:
{ "axes": [ { "default": 400, "max": 700, "min": 400, "tag": "wght" } ] }即该字体是一个单轴可变字体,仅包含wght(字重)轴,取值范围 400 到 700,默认值 400。源文件为ofl/edunswactcursive/EduNSWACTCursive[wght].ttf(TTF 格式、glyf 轮廓),字体版本Version 2.000,源文件 SHA-256 为5e736ce2f15651c07f4f1670b2e91f69c72bc73b5c4f3ab60b283eabad5c89c5,大小约 664,512 字节。
对应的 distribution.json 表明,Fontsource 在发布时同时提供了:
- 可变包:
variable数组声明了axisKey: "wght"、style: "normal"的可变字体; - 静态字重:
static数组声明了normal样式下的400 / 500 / 600 / 700四个静态字重,方便不支持可变字体的场景按需加载。
字形规模与 OpenType 特性
family.json 的sources[0].inspection记录了字体内部能力:
- 字形数(glyphs):747;
- 码点覆盖(codepoints):393;
- 颜色表(colorTables):无;
- 轮廓格式(outline):
glyf(TrueType 轮廓); - Unicode 覆盖范围:
U+0020-007E(基本拉丁)起,涵盖拉丁扩展、组合附加符号、标点、货币符号(含U+20AC欧元)等区间,例如U+00A0-00A3、U+0116-012B、U+1E80-1E85等。
更重要的是 OpenType 特性(features)清单,它揭示了连笔手写字体的工作机制:
"features": { "gpos": ["kern", "mark", "mkmk"], "gsub": ["aalt", "calt", "case", "ccmp", "liga", "locl", "ordn", "ss01", "ss02", "ss03", "ss04", "ss05", "ss06"] }gpos(字形定位)包含kern(字距调整)、mark(附加标记定位)、mkmk(标记间定位),保证手写连笔中字母与变音符号的位置准确;gsub(字形替换)包含liga(标准连字)、calt(上下文替换)、ccmp(字形组合)等通用特性,以及ss01–ss06共 6 个风格集(stylistic sets)。从该字体"连笔手写教学"的定位可以推断,这些风格集很可能用于切换不同的字母连接形态或教学演示字形,具体效果可通过实际渲染字体验证。
子集与语言覆盖
distribution.json 中characters声明了默认子集为latin,包含latin与latin-ext两个子集。这意味着该字体主要面向拉丁字母文本,中文字符不在覆盖范围内。
family.json 的languages字段则列出了数百个支持的语言标签(如en_Latn、fr_Latn、es_Latn、de_Latn等),全部为拉丁脚本变体,进一步印证了其拉丁文本覆盖能力。
许可与版权:OFL-1.1 与上游来源
开源许可
family.json 的license字段与 license.txt 一致地表明:
- 许可类型:SIL Open Font License, Version 1.1(OFL-1.1);
- 版权归属:
Copyright 2023 The NSW ACT School Hand Australia Project Authors; - 署名信息:同样指向
The NSW ACT School Hand Australia Project。
从 license.txt 的 OFL 1.1 全文可以归纳出对使用者的关键许可条款:
- 字体软件可免费使用、研究、修改与再分发;
- 可以与软件捆绑、嵌入、随软件一并出售,但字体软件本身不得单独出售;
- 修改版(Modified Version)不得使用保留字体名,除非获得版权方书面许可;
- 修改版必须以 OFL 许可分发,但使用该字体制作的文档不受此限制(即你用该字体排版的教材、作业纸可以按任意方式分发)。
这使该字体完全可以合法用于学校教学材料、儿童读物、教育类应用等场景,这正是描述文档中"课堂与家庭环境"定位的许可基础。
上游来源(Provenance)
family.json 的provenance字段记录了数据溯源:
"provenance": { "directory": "ofl/edunswactcursive", "repository": "google/fonts", "revision": "a4067212727d7f5b6cef2061e56227a08756ac0c", "type": "github" }即该字体的源文件取自google/fonts仓库(Google Fonts 上游)的ofl/edunswactcursive目录,project.repository记录的上游项目为SorkinType/NSWACTSchoolHandAustralia,revision 为f3c1ae7fae7e85319ffc2d44f4fb6715abd1e450。这印证了描述文档中"这是一款面向澳大利亚教育标准的开放字体、可参与贡献"的说法。
关于 status: deprecated 的说明
值得留意的是,family.json 中status字段当前为deprecated。在 Fontsource 的发布流程中,registry/scripts/google.ts 会为从上游移除的字体系列写入status: 'deprecated'标记(见 google.ts)。读者在选择字体时应以仓库当前状态为准,并结合 replacements.json(当前未包含该字体的替换条目)确认是否有官方推荐的替代字体。
在 Fontsource 中使用:安装、导入与样式编写
作为 Fontsource 收录的字体家族,Edu NSW ACT Cursive 可以通过标准的 Fontsource 包管理流程安装使用。以下操作方式与 安装指南、可变字体指南 保持一致。
1. 安装可变字体包
由于该字体支持wght可变轴,官方推荐优先使用可变字体包,它用一个字体文件覆盖 400–700 的连续字重范围,通常比多个静态字重文件更省体积:
npm install @fontsource-variable/edu-nsw-act-cursive # 或 pnpm add @fontsource-variable/edu-nsw-act-cursive # 或 yarn add @fontsource-variable/edu-nsw-act-cursive如果项目需要固定字重、或运行环境对可变字体支持不佳,也可以使用静态包:
npm install @fontsource/edu-nsw-act-cursive2. 在应用中导入
在应用入口文件(或页面组件)中导入包即可,CSS 中的unicode-range会保证浏览器只下载页面实际用到的字符子集,通常无需手动选择子集:
// 导入默认可变面,覆盖 wght 400-700 正常样式 import "@fontsource-variable/edu-nsw-act-cursive";静态包按需导入字重(该字体提供 400 / 500 / 600 / 700):
import "@fontsource/edu-nsw-act-cursive/400.css"; import "@fontsource/edu-nsw-act-cursive/700.css";3. 编写 CSS 样式
导入后即可像普通字体一样在 CSS 中使用:
body { font-family: "Edu NSW ACT Cursive Variable", cursive; font-weight: 500; }可变字体还可以通过font-variation-settings精确控制轴值:
.handwriting-exercise { font-family: "Edu NSW ACT Cursive Variable", cursive; font-weight: 400; font-variation-settings: "wght" 600; }需要注意的是,该字体目前仅提供wght一个可变轴(根据 family.json 的inspection.axes),并不存在wdth(字宽)等其他轴,因此设置其他轴不会生效。
4. 通过 CDN 快速引用
对于不需要打包器的场景,可以借助 Fontsource 与 jsDelivr 合作的 CDN 服务(参见 CDN 指南)直接引用生成的样式表。CSS 样式表地址格式为https://cdn.jsdelivr.net/fontsource/css/{id}@{version}/{file}.css,可变字体则为https://cdn.jsdelivr.net/fontsource/css/{id}:vf@{version}/{file}.css。例如在 HTML 中引用:
<link rel="stylesheet" href="https://cdn.jsdelivr.net/fontsource/css/edu-nsw-act-cursive@latest/index.css" />生产环境建议使用精确版本号(如@5.x.x)以获得不可变、可长期缓存的资源;浮动版本(@latest、@5)自动解析到匹配的发布版本,适合需要自动升级的场景。CDN 更适合对稳定性要求不高的轻量使用,Fontsource 官方推荐优先自托管字体。
描述文档如何进入仓库:从 Google Fonts 到 Fontsource 的流水线
Edu NSW ACT Cursive 的描述文档并非手写维护的孤立文本,而是由 Fontsource 的注册表生成脚本从上游自动转换而来,理解这条流水线有助于读者评估该文档的权威性与时效性。
从 HTML 描述到 Markdown
registry/scripts/google.ts 中定义了文档映射:
const DOCUMENTS = [ ['DESCRIPTION.en_us.html', 'description.en-US.md'], ['article/ARTICLE.en_us.html', 'article.en-US.md'], ] as const;即从google/fonts上游目录中的DESCRIPTION.en_us.html抓取描述,并通过htmlToMarkdown转换为仓库中的 description.en-US.md。转换过程做了两项安全处理(见 google.ts):
- 移除
script、style、iframe、img、video、form等可能带来注入或噪声的 HTML 元素; - 通过
safe-links规则只保留http:/https:协议的安全链接,其余链接一律降级为纯文本。
这一安全机制也在测试中得到验证:registry/scripts/registry.test.ts 断言生成的描述文档不包含javascript:与alert(1)等危险载荷,确保最终呈现给用户的描述文本是安全的。
描述文档的最终去向
生成的描述文档在发布阶段由 registry/scripts/archive.ts 进一步并入字体详情数据:它同时读取description.en-US.md与可选的article.en-US.md,并写入families/{id}.json的content字段(见 archive.ts),供网站端展示与检索使用。也就是说,这篇描述文档最终会成为 Fontsource 网站字体详情页的核心文案,并被搜索引擎与 LLM 检索引用。
常见问题速览
Q:Edu NSW ACT Cursive 支持中文吗?不支持。根据 distribution.json,该字体只包含latin与latin-ext两个子集,面向拉丁字母文本;中文字符需要搭配中文字体使用。
Q:想要更粗的字重怎么办?可变包通过wght轴支持 400–700 的连续范围(默认 400),可用font-variation-settings: "wght" 700或直接font-weight: 700调用;静态包则提供 400 / 500 / 600 / 700 四个固定字重。
Q:这款字体适合什么场景?从标签体系(purpose/learn-to-write、script/handwritten、expressive/childlike)与描述文档看,其核心场景是澳大利亚 NSW/ACT 地区的课堂书写教学(字母连笔训练),也适合家庭场景中的儿童读物、练习材料、教育类应用排版。
Q:可以商用或修改吗?可以。该字体采用 OFL-1.1 许可(详见 license.txt),允许免费使用、修改与再分发,但字体软件本身不得单独出售,修改版须以 OFL 分发且不得使用保留字体名。
Q:文档中的贡献链接指向哪个仓库?描述文档标注的贡献入口为SorkinType/VICWANTSchoolHandAustralia,而 family.json 的project.repository记录为SorkinType/NSWACTSchoolHandAustralia,两处记录存在出入,参与贡献或查阅最新源码时请以上游项目仓库的当前信息为准。
小结
Edu NSW ACT Cursive 是一款定位清晰的区域性教学手写字体:它以澳大利亚 NSW/ACT 的连笔书写规范为基础,通过单轴(wght400–700)可变字体技术实现从基础到粗体的连续调节,配套 6 个风格集与完整的手写连字特性,并以宽松的 OFL-1.1 许可开放给课堂与家庭场景使用。在 Fontsource 中,你可以通过@fontsource-variable/edu-nsw-act-cursive包快速自托管集成,也可以借助 jsDelivr CDN 轻量引用;其背后的元数据与文档流水线(从google/fonts的DESCRIPTION.en_us.html自动转换而来)同样值得关注,它保证了描述信息的可追溯性与安全性。
- 前端
- CLI
- 开发工具
【免费下载链接】fontsource
Self-host Open Source fonts in neatly bundled NPM packages.
相关推荐
Fontsource 中的 Edu TAS Beginner:面向澳大利亚塔斯马尼亚州学校书写教育的开源手写字体
Fontsource 中的 Edu TAS Beginner:面向澳大利亚塔斯马尼亚州学校书写教育的开源手写字体 Edu TAS Beginner 是 Font
前端CLI开发工具Fontsource 中的 Edu VIC WA NT Beginner:面向澳大利亚教育的规范手写体字体指南
Fontsource 中的 Edu VIC WA NT Beginner:面向澳大利亚教育的规范手写体字体指南 本指南围绕 Fontsource 开源字体仓库中
前端CLI开发工具Fontsource 中的 Edu SA Beginner:面向澳大利亚早期教育的入门手写字体全解析
Fontsource 中的 Edu SA Beginner:面向澳大利亚早期教育的入门手写字体全解析 导读 Edu SA Beginner 是 "Foundat
前端CLI开发工具
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考