尧图网站设计 尧图网站设计YAOTU DESIGN
ARTICLE DETAIL

资讯详情

深耕网站设计与一线实操的经验洞察。

Iosevka 28.0.0 迁移指南:PascalCase 文件命名、camelCase 构建参数与连字组重命名全解析

Iosevka 28.0.0 迁移指南:PascalCase 文件命名、camelCase 构建参数与连字组重命名全解析 Iosevka 28.0.0 迁移指南PascalCase 文件命名、camelCase 构建参数与连字组重命名全解析【免费下载链接】IosevkaVersatile typeface for code, from code.项目地址: https://gitcode.com/GitHub_Trending/io/IosevkaIosevka 28.0.0 是一次面向配置与产物命名体系的整理型大版本它将发布文件名从 kebab-case 切换为 PascalCase将构建计划build plan中的属性全面改为 camelCase并对连字组名称进行了更直观的重命名。本文基于 28.0.0 变更日志逐条拆解全部破坏性变更、新增字符与字形变体并结合 自定义构建文档、构建计划样例 与 参数解析源码 给出迁移与实操指引帮助下游用户、包管理器维护者和自定义构建使用者平滑升级。28.0.0 版本定位与影响面28.0.0 不是一次单纯的字符扩充而是一次命名体系层面的重构核心影响集中在三处产物文件名字体与安装包的文件名由 kebab-case 改为 PascalCase直接影响发行脚本、包管理器打包逻辑与既有用户卸载逻辑构建计划build plan属性8 个属性从 kebab-case 改为 camelCase改动后继续使用旧写法将直接触发构建失败连字ligation组名符号连接类连字组名改为更直观的写法并为至少 3 个连续字符的链式连接新增了替代组。其余部分则延续了 Iosevka 一贯的高频迭代节奏新增一批西里尔、组合附加符号、箭头与标点字符为a增加全新变体家族并修复了大量样式集ss##与字形细节问题。破坏性变更详解1. 文件与包文件名改为 PascalCase原文The filenames and package filenames are changed. They will now use PascalCase instead of kebab-case.从 28.0.0 起字体的 TTF/Webfont 文件名以及安装包文件名统一使用 PascalCase。以Iosevka Term为例旧式iosevka-term-regular.ttf这类命名不再出现取而代之的是类似IosevkaTerm-Regular.ttf的命名。这一变更对两类人影响最直接普通用户升级后需要手动清理旧名称的字体文件并安装新名称的文件否则会出现新旧字体并存包管理器 / 发行版维护者变更日志明确要求升级打包脚本使其能够按新名称下载并安装字体同时正确卸载旧名称的字体。2. 构建计划属性全面 camelCase 化触发构建失败原文Certain properties in the build plans are changed to camelCase. Using them will trigger a build failure.这是对自定义构建者冲击最大的变更。28.0.0 将以下 8 个 build plan 属性由 kebab-case 改为 camelCase旧写法kebab-case新写法camelCase用途见 doc/custom-build.mdno-cv-ssnoCvSs禁用cv##与ss##OpenType 特性no-ligationnoLigation禁用连字export-glyph-namesexportGlyphNames是否向字体导出字形名开启会增加文件体积但 Kitty 等终端依赖它实现连字支持build-texture-featurebuildTextureFeature是否构建TXTR特性用于跨字母纹理调整默认falsemetric-overridemetricOverride度量覆盖子节compatibility-ligaturescompatibilityLigatures兼容连字子节exclude-charsexcludeChars排除字符webfont-formatswebfontFormatsWebfont 导出格式可选TTF、WOFF2或两者兼有关键点旧写法不会得到任何警告而是直接构建失败。这一硬失败设计是有意为之——它确保迁移过程中不会有配置被静默忽略。从源码侧看camelCase 属性确实已成为参数解析的入口。在 packages/param/src/index.mjs 中可以看到命令行特性控制直接对应 camelCase 键if (argv.featureControl.noCvSs) para.enableCvSs false; if (argv.featureControl.noLigation) para.enableLigation false;同时当前仓库的 自定义构建文档 中列出的顶层属性noCvSs、noLigation、exportGlyphNames、webfontFormats、buildTextureFeature以及子节名compatibilityLigatures、metricOverride均已是 camelCase 形态build-plans.toml 中的真实构建计划也采用了exportGlyphNames true这类写法说明仓库本身已完全切换到新命名体系。迁移建议全局搜索private-build-plans.toml或你的自定义计划文件中的no-cv-ss、no-ligation、export-glyph-names、build-texture-feature、metric-override、compatibility-ligatures、exclude-chars、webfont-formats逐一替换为上表中的 camelCase 形式再执行构建验证。3. 停止生成 SGr TTC 包原文The SGr TTC packages for Iosevka Aile and Etoile will no longer be generated, as they are duplicates to the non-SGr TTC packages.Iosevka Aile 与 Iosevka Etoile 的 SGr含SGR相关特性的变体TTC 包不再生成因为其内容与非 SGr TTC 包完全重复。依赖这两个包名的下游脚本需要改用非 SGr TTC 包。4. 字形变体重排序与 cv 标签变更原文Reorder of glyph variants ... Tags for variant features for Cyrillic lowercase Er and U are changed tocv76andcv78.28.0.0 对一批字符的字形变体进行了重新排序影响的字符包括M、R、f、i、l、t、x、长 sſ、小写 Lambdaλ、小写 Tauτ、小写 Chiχ、西里尔小写 Emм、西里尔小写 Efф、西里尔 YaЯ、я、数字5。由于西里尔小写 Er 和 U 的变体标签被插入到cv76、cv78其余相关字符的cv##变体标签也相应顺延变化。如果你在 build plan 中通过cv##数字直接引用上述字符的变体例如[buildPlans.MyPlan.variants]下的cv## N形式升级后必须重新核对目标变体编号——这是最容易静默出错的地方。顺带一提Iosevka 的变体编号体系与 params/variants.toml 中的定义一一对应例如prime.one下one line对应cv01 1、one no-base对应cv01 2排序变化会直接反映在该文件中各prime.*的rank字段上核对时可以此文件为准。5. 连字组名重命名与三字符连接替代组#2100原文Make the ligation group names for symbol connections more intuitive, and add alternatives to start chaining from at least 3 continuous characters.28.0.0 将符号连接类连字组名改为更直观的写法并新增至少 3 个连续字符才开始链式连接的替代组旧组名新组名新增替代组3 字符plusplusplus-plusplus-plus-plusconnected-hyphenminus-minusminus-minus-minusconnected-tilde-as-wavetilde-tildetilde-tilde-tildeconnected-underscoreunderscore-underscoreunderscore-underscore-underscoreconnected-number-signhash-hashhash-hash-hash以plus-plus为例启用后 2 个及以上连续加号、、会连接成一体而plus-plus-plus只在至少 3 个连续加号、时才触发适合希望保留常规形态、仅对三连加号做特殊处理的场景。二者的语义在 doc/custom-build.md 的连字组说明中均有明确描述。这一变更的实操影响面包括在[buildPlans.plan.ligations]子节的enables/disables数组中引用了旧组名的计划必须改为新组名需要3 字符起连行为的计划可选用新加入的*-*-*组名。新增字符28.0.0 按 Unicode 区块扩充了以下字符码点均可在字库源码中验证字形定义分散于 packages/font-glyphs/src 下对应区块文件西里尔扩展#2018U0514CYRILLIC CAPITAL LETTER LHA U0519CYRILLIC SMALL LETTER YAE 共 6 个字符。格鲁吉亚文U10FBGEORGIAN PARAGRAPH SEPARATOR。组合附加符号#1880 等U1DCBCOMBINING BREVE-MACRON U1DCCCOMBINING MACRON-BREVEU1DCDCOMBINING DOUBLE CIRCUMFLEX ABOVEU1DD3COMBINING LATIN SMALL LETTER FLATTENED OPEN A ABOVEU1DFBCOMBINING DELETION MARK。行与段分隔U2028LINE SEPARATOR U2029PARAGRAPH SEPARATOR。箭头U279DTRIANGLE-HEADED RIGHTWARDS ARROWU27FFLONG RIGHTWARDS SQUIGGLE ARROWU2902LEFTWARDS DOUBLE ARROW WITH VERTICAL STROKE U2904LEFT RIGHT DOUBLE ARROW WITH VERTICAL STROKEU2B33LONG LEFTWARDS SQUIGGLE ARROWU2B4DDOWNWARDS TRIANGLE-HEADED ZIGZAG ARROW。标点与符号U2E0BRAISED SQUAREU2E12HYPODIASTOLEU2E2ATWO DOTS OVER ONE DOT PUNCTUATION U2E2DFIVE DOT MARK。拉丁扩展UAB 区块UAB52LATIN SMALL LETTER U WITH LEFT HOOKUAB5FMODIFIER LETTER SMALL U WITH LEFT HOOK。新增字形变体a的新变体家族本次为小写a以及希腊小写 Alphaα新增了三组变体hook-inward-serifed 系列#2085在原有 double-storey 结构上组合向内钩hook-inward与衬线形态细分为 serifed / serifless / tailed / toothless 等多个方向。相关字形定义与参数表见 packages/font-glyphs/src/letter/latin/lower-a.ptl 与 params/variants.toml 中prime.a段single-storey-double-serifed#1949单层结构配合上下双衬线是强调书写感的新形态single-storey-tailed-serifed#1949单层结构 尾钩 衬线并被设为 Slab 斜体的默认形态与g、q保持视觉一致性。底部衬线与新尾部变体为d、q新增bottom-serifed变体为大写U新增bottom-right-serifed变体为希腊小写 Iotaι新增tailless无尾变体。希腊字母默认形态调整希腊小写 Iotaι与 Tauτ在默认直立体下改为半尾semi-tailed形态在默认斜体下改为带尾tailed形态。变体删减移除U01A5、U0256、U02A0、U1D91的earless-rounded变体移除U027E的earless-corner变体。如果你在构建计划中显式引用了这些被移除的变体需要在升级时改为其他可用形态。字形改进与样式集修复字形细节改进为倒置 kU029E改进衬线使其与q和倒置 hU0265相匹配改进 KRAU0138的左上衬线使其与k一致希腊 KappaU03BA现在响应更多k的衬线变体cv36为希腊小写 HetaU0371在 Slab 下新增左上衬线为数学双线体小写 jU1D55B增加衬线与双线体小写 iU1D55A保持一致修正UA764、UA766带贯穿符的拉丁大写 Thorn碗部bowl的垂直对齐。样式集ss##修复清单28.0.0 对以下样式集引用关系做了修正涉及 Slab 与 Italic Slab 两种字形族修复cv10在ss01、ss02、ss08Slab 下的表现修复cv53在ss16的表现修复cv64、cv65在ss07的表现修复cv66在ss17的表现修复cv81、cv82在ss03、ss08Italic Slab 下的表现修复cv93在ss01的表现修复vsAJ在ss10的表现修复vlAB在ss09、ss14的表现修复vlAD在ss05、ss14的表现。由于 28.0.0 同时发生了变体重排序上述cv##编号的语义在升级后可能已经变化建议结合 样式集文档 与 变体影响文档 复核自定义计划。升级与迁移实操指南综合以上变更从 28.0.0 之前的版本升级时建议按以下顺序操作更新构建计划文件将 第 2 节表格 中的 8 个 kebab-case 属性全部替换为 camelCase 写法核对cv##数字引用凡通过数字编号引用M、R、f、i、l、t、x、ſ、λ、τ、χ、м、ф、Я、я、5变体的配置逐一对照 params/variants.toml 重新确认更新连字组名将ligations.enables/disables中的旧组名plusplus、connected-hyphen等替换为新组名并按需选用plus-plus-plus等 3 字符替代组更新发行 / 打包脚本适配 PascalCase 文件名并处理旧名称字体的卸载移除对 SGr TTC 包与已删变体的依赖改用非 SGr TTC 包并为a、d、q、U、ι等字符选择新变体执行构建验证运行npm run build -- contents::plan完整构建流程见 doc/custom-build.md确认无因旧属性名触发的构建失败。相关参考文件28.0.0 变更日志本文全部变更的事实来源自定义构建文档camelCase 属性、连字组、样式集的完整参数说明构建计划示例仓库自带计划的真实写法如exportGlyphNames true变体参数表全部字形变体的定义、rank顺序与cv##映射参数解析源码noCvSs、noLigation等属性的底层解析逻辑字形定义源码a新增变体的轮廓实现。总之28.0.0 用一次硬性的重命名把 Iosevka 的配置与产物体系推向了更统一的 camelCase / PascalCase 规范。只要按上述清单完成迁移就能在享受新增字符与变体红利的同时避免旧配置带来的构建失败与字体混乱。【免费下载链接】IosevkaVersatile typeface for code, from code.项目地址: https://gitcode.com/GitHub_Trending/io/Iosevka创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考
返回列表