fontisan 0.2.14 → 0.2.17

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (134) hide show
  1. checksums.yaml +4 -4
  2. data/.rubocop_todo.yml +79 -4
  3. data/Gemfile +6 -3
  4. data/docs/.gitignore +17 -0
  5. data/docs/.vitepress/config.ts +317 -0
  6. data/docs/.vitepress/theme/components/ApiMethod.vue +127 -0
  7. data/docs/.vitepress/theme/components/Badge.vue +51 -0
  8. data/docs/.vitepress/theme/components/FeatureComparison.vue +87 -0
  9. data/docs/.vitepress/theme/components/HeroCodeBlock.vue +98 -0
  10. data/docs/.vitepress/theme/components/WithinHero.vue +30 -0
  11. data/docs/.vitepress/theme/index.ts +22 -0
  12. data/docs/.vitepress/theme/style.css +330 -0
  13. data/docs/api/conversion-options.md +141 -0
  14. data/docs/api/converters/curve-converter.md +34 -0
  15. data/docs/api/converters/hint-converter.md +34 -0
  16. data/docs/api/converters/outline-converter.md +27 -0
  17. data/docs/api/font-loader.md +117 -0
  18. data/docs/api/font-writer.md +103 -0
  19. data/docs/api/index.md +79 -0
  20. data/docs/api/models/glyph-accessor.md +43 -0
  21. data/docs/api/models/glyph.md +40 -0
  22. data/docs/api/models/table-analyzer.md +35 -0
  23. data/docs/api/sfnt-font.md +53 -0
  24. data/docs/api/type1-font.md +43 -0
  25. data/docs/api/validators/font-validator.md +31 -0
  26. data/docs/api/validators/helper.md +36 -0
  27. data/docs/api/validators/profile.md +39 -0
  28. data/docs/cli/convert.md +87 -0
  29. data/docs/cli/dump-table.md +110 -0
  30. data/docs/cli/export.md +176 -0
  31. data/docs/cli/features.md +124 -0
  32. data/docs/cli/glyphs.md +90 -0
  33. data/docs/cli/index.md +208 -0
  34. data/docs/cli/info.md +254 -0
  35. data/docs/cli/instance.md +122 -0
  36. data/docs/cli/ls.md +95 -0
  37. data/docs/cli/optical-size.md +94 -0
  38. data/docs/cli/pack.md +125 -0
  39. data/docs/cli/scripts.md +105 -0
  40. data/docs/cli/subset.md +39 -0
  41. data/docs/cli/tables.md +84 -0
  42. data/docs/cli/unicode.md +101 -0
  43. data/docs/cli/validate.md +48 -0
  44. data/docs/cli/variable.md +126 -0
  45. data/docs/cli/version.md +46 -0
  46. data/docs/guide/cli/convert.md +108 -0
  47. data/docs/guide/cli/export.md +138 -0
  48. data/docs/guide/cli/index.md +99 -0
  49. data/docs/guide/cli/info.md +144 -0
  50. data/docs/guide/cli/pack.md +155 -0
  51. data/docs/guide/cli/subset.md +118 -0
  52. data/docs/guide/cli/validate.md +139 -0
  53. data/docs/guide/color-fonts/bitmaps.md +177 -0
  54. data/docs/guide/color-fonts/colr-cpal.md +175 -0
  55. data/docs/guide/color-fonts/index.md +140 -0
  56. data/docs/guide/color-fonts/svg.md +154 -0
  57. data/docs/guide/color.md +51 -0
  58. data/docs/guide/comparisons/font-validator.md +222 -0
  59. data/docs/guide/comparisons/fonttools.md +200 -0
  60. data/docs/guide/comparisons/index.md +83 -0
  61. data/docs/guide/comparisons/lcdf-typetools.md +205 -0
  62. data/docs/guide/contributing.md +279 -0
  63. data/docs/guide/conversion/collections.md +251 -0
  64. data/docs/guide/conversion/curves.md +246 -0
  65. data/docs/guide/conversion/index.md +157 -0
  66. data/docs/guide/conversion/options.md +251 -0
  67. data/docs/guide/conversion/ttf-otf.md +184 -0
  68. data/docs/guide/conversion/type1.md +208 -0
  69. data/docs/guide/conversion/web.md +240 -0
  70. data/docs/guide/conversion.md +39 -0
  71. data/docs/guide/formats/collections.md +147 -0
  72. data/docs/guide/formats/dfont.md +99 -0
  73. data/docs/guide/formats/index.md +65 -0
  74. data/docs/guide/formats/otf.md +103 -0
  75. data/docs/guide/formats/svg.md +97 -0
  76. data/docs/guide/formats/ttf.md +105 -0
  77. data/docs/guide/formats/type1.md +118 -0
  78. data/docs/guide/formats/woff.md +115 -0
  79. data/docs/guide/hinting/autohint.md +141 -0
  80. data/docs/guide/hinting/conversion.md +161 -0
  81. data/docs/guide/hinting/index.md +86 -0
  82. data/docs/guide/hinting/postscript.md +149 -0
  83. data/docs/guide/hinting/truetype.md +135 -0
  84. data/docs/guide/hinting.md +44 -0
  85. data/docs/guide/index.md +152 -0
  86. data/docs/guide/installation.md +116 -0
  87. data/docs/guide/migrations/extract-ttc.md +549 -0
  88. data/docs/guide/migrations/font-validator.md +260 -0
  89. data/docs/guide/migrations/fonttools.md +208 -0
  90. data/docs/guide/migrations/index.md +64 -0
  91. data/docs/guide/migrations/otfinfo.md +197 -0
  92. data/docs/guide/quick-start.md +204 -0
  93. data/docs/guide/type1.md +58 -0
  94. data/docs/guide/universal-outline.md +151 -0
  95. data/docs/guide/validation/custom.md +195 -0
  96. data/docs/guide/validation/helpers.md +188 -0
  97. data/docs/guide/validation/index.md +132 -0
  98. data/docs/guide/validation/profiles.md +156 -0
  99. data/docs/guide/validation.md +47 -0
  100. data/docs/guide/variable-fonts/advanced.md +231 -0
  101. data/docs/guide/variable-fonts/axes.md +209 -0
  102. data/docs/guide/variable-fonts/conversion.md +197 -0
  103. data/docs/guide/variable-fonts/index.md +84 -0
  104. data/docs/guide/variable-fonts/instances.md +187 -0
  105. data/docs/guide/variable-fonts/named-instances.md +194 -0
  106. data/docs/guide/variable-fonts/static.md +168 -0
  107. data/docs/guide/variable.md +58 -0
  108. data/docs/guide/woff.md +59 -0
  109. data/docs/index.md +136 -0
  110. data/docs/lychee.toml +37 -0
  111. data/docs/package-lock.json +2560 -0
  112. data/docs/package.json +15 -0
  113. data/docs/public/apple-touch-icon.png +0 -0
  114. data/docs/public/favicon-96x96.png +0 -0
  115. data/docs/public/favicon.ico +0 -0
  116. data/docs/public/favicon.svg +1 -0
  117. data/docs/public/logo-full.svg +1 -0
  118. data/docs/public/logo.svg +1 -0
  119. data/docs/public/site.webmanifest +21 -0
  120. data/docs/public/web-app-manifest-192x192.png +0 -0
  121. data/docs/public/web-app-manifest-512x512.png +0 -0
  122. data/fontisan.gemspec +2 -1
  123. data/lib/fontisan/commands/features_command.rb +0 -1
  124. data/lib/fontisan/commands/scripts_command.rb +0 -1
  125. data/lib/fontisan/constants.rb +29 -6
  126. data/lib/fontisan/font_loader.rb +184 -318
  127. data/lib/fontisan/loading_modes.rb +0 -2
  128. data/lib/fontisan/sfnt_font.rb +4 -3
  129. data/lib/fontisan/tables/glyf/compound_glyph.rb +0 -1
  130. data/lib/fontisan/variable/delta_applicator.rb +3 -3
  131. data/lib/fontisan/variation/optimizer.rb +0 -1
  132. data/lib/fontisan/version.rb +1 -1
  133. data/lib/fontisan.rb +3 -2
  134. metadata +136 -4
@@ -352,7 +352,6 @@ module Fontisan
352
352
  #
353
353
  # @return [Set<Integer>] Set of used indices
354
354
  def collect_used_variation_indices
355
- require "set"
356
355
  used = Set.new
357
356
 
358
357
  glyph_count = @cff2.glyph_count
@@ -1,5 +1,5 @@
1
1
  # frozen_string_literal: true
2
2
 
3
3
  module Fontisan
4
- VERSION = "0.2.14"
4
+ VERSION = "0.2.17"
5
5
  end
data/lib/fontisan.rb CHANGED
@@ -33,10 +33,11 @@ require "bindata"
33
33
  require "zlib"
34
34
  require "stringio"
35
35
  require "lutaml/model"
36
- require "lutaml/model/xml_adapter/nokogiri_adapter"
37
36
 
38
37
  # Configure lutaml-model to use Nokogiri adapter for XML serialization
39
- Lutaml::Model::Config.xml_adapter = Lutaml::Model::Xml::NokogiriAdapter
38
+ Lutaml::Model::Config.configure do |config|
39
+ config.xml_adapter_type = :nokogiri
40
+ end
40
41
 
41
42
  # Core
42
43
  require_relative "fontisan/version"
metadata CHANGED
@@ -1,14 +1,14 @@
1
1
  --- !ruby/object:Gem::Specification
2
2
  name: fontisan
3
3
  version: !ruby/object:Gem::Version
4
- version: 0.2.14
4
+ version: 0.2.17
5
5
  platform: ruby
6
6
  authors:
7
7
  - Ribose Inc.
8
8
  autorequire:
9
9
  bindir: exe
10
10
  cert_chain: []
11
- date: 2026-02-11 00:00:00.000000000 Z
11
+ date: 2026-06-08 00:00:00.000000000 Z
12
12
  dependencies:
13
13
  - !ruby/object:Gem::Dependency
14
14
  name: base64
@@ -52,20 +52,34 @@ dependencies:
52
52
  - - "~>"
53
53
  - !ruby/object:Gem::Version
54
54
  version: '0.5'
55
+ - !ruby/object:Gem::Dependency
56
+ name: logger
57
+ requirement: !ruby/object:Gem::Requirement
58
+ requirements:
59
+ - - ">="
60
+ - !ruby/object:Gem::Version
61
+ version: '0'
62
+ type: :runtime
63
+ prerelease: false
64
+ version_requirements: !ruby/object:Gem::Requirement
65
+ requirements:
66
+ - - ">="
67
+ - !ruby/object:Gem::Version
68
+ version: '0'
55
69
  - !ruby/object:Gem::Dependency
56
70
  name: lutaml-model
57
71
  requirement: !ruby/object:Gem::Requirement
58
72
  requirements:
59
73
  - - "~>"
60
74
  - !ruby/object:Gem::Version
61
- version: '0.7'
75
+ version: '0.8'
62
76
  type: :runtime
63
77
  prerelease: false
64
78
  version_requirements: !ruby/object:Gem::Requirement
65
79
  requirements:
66
80
  - - "~>"
67
81
  - !ruby/object:Gem::Version
68
- version: '0.7'
82
+ version: '0.8'
69
83
  - !ruby/object:Gem::Dependency
70
84
  name: nokogiri
71
85
  requirement: !ruby/object:Gem::Requirement
@@ -117,6 +131,15 @@ files:
117
131
  - README.adoc
118
132
  - Rakefile
119
133
  - benchmark/variation_quick_bench.rb
134
+ - docs/.gitignore
135
+ - docs/.vitepress/config.ts
136
+ - docs/.vitepress/theme/components/ApiMethod.vue
137
+ - docs/.vitepress/theme/components/Badge.vue
138
+ - docs/.vitepress/theme/components/FeatureComparison.vue
139
+ - docs/.vitepress/theme/components/HeroCodeBlock.vue
140
+ - docs/.vitepress/theme/components/WithinHero.vue
141
+ - docs/.vitepress/theme/index.ts
142
+ - docs/.vitepress/theme/style.css
120
143
  - docs/APPLE_LEGACY_FONTS.adoc
121
144
  - docs/COLLECTION_VALIDATION.adoc
122
145
  - docs/COLOR_FONTS.adoc
@@ -127,6 +150,115 @@ files:
127
150
  - docs/VALIDATION.adoc
128
151
  - docs/VARIABLE_FONT_OPERATIONS.adoc
129
152
  - docs/WOFF_WOFF2_FORMATS.adoc
153
+ - docs/api/conversion-options.md
154
+ - docs/api/converters/curve-converter.md
155
+ - docs/api/converters/hint-converter.md
156
+ - docs/api/converters/outline-converter.md
157
+ - docs/api/font-loader.md
158
+ - docs/api/font-writer.md
159
+ - docs/api/index.md
160
+ - docs/api/models/glyph-accessor.md
161
+ - docs/api/models/glyph.md
162
+ - docs/api/models/table-analyzer.md
163
+ - docs/api/sfnt-font.md
164
+ - docs/api/type1-font.md
165
+ - docs/api/validators/font-validator.md
166
+ - docs/api/validators/helper.md
167
+ - docs/api/validators/profile.md
168
+ - docs/cli/convert.md
169
+ - docs/cli/dump-table.md
170
+ - docs/cli/export.md
171
+ - docs/cli/features.md
172
+ - docs/cli/glyphs.md
173
+ - docs/cli/index.md
174
+ - docs/cli/info.md
175
+ - docs/cli/instance.md
176
+ - docs/cli/ls.md
177
+ - docs/cli/optical-size.md
178
+ - docs/cli/pack.md
179
+ - docs/cli/scripts.md
180
+ - docs/cli/subset.md
181
+ - docs/cli/tables.md
182
+ - docs/cli/unicode.md
183
+ - docs/cli/validate.md
184
+ - docs/cli/variable.md
185
+ - docs/cli/version.md
186
+ - docs/guide/cli/convert.md
187
+ - docs/guide/cli/export.md
188
+ - docs/guide/cli/index.md
189
+ - docs/guide/cli/info.md
190
+ - docs/guide/cli/pack.md
191
+ - docs/guide/cli/subset.md
192
+ - docs/guide/cli/validate.md
193
+ - docs/guide/color-fonts/bitmaps.md
194
+ - docs/guide/color-fonts/colr-cpal.md
195
+ - docs/guide/color-fonts/index.md
196
+ - docs/guide/color-fonts/svg.md
197
+ - docs/guide/color.md
198
+ - docs/guide/comparisons/font-validator.md
199
+ - docs/guide/comparisons/fonttools.md
200
+ - docs/guide/comparisons/index.md
201
+ - docs/guide/comparisons/lcdf-typetools.md
202
+ - docs/guide/contributing.md
203
+ - docs/guide/conversion.md
204
+ - docs/guide/conversion/collections.md
205
+ - docs/guide/conversion/curves.md
206
+ - docs/guide/conversion/index.md
207
+ - docs/guide/conversion/options.md
208
+ - docs/guide/conversion/ttf-otf.md
209
+ - docs/guide/conversion/type1.md
210
+ - docs/guide/conversion/web.md
211
+ - docs/guide/formats/collections.md
212
+ - docs/guide/formats/dfont.md
213
+ - docs/guide/formats/index.md
214
+ - docs/guide/formats/otf.md
215
+ - docs/guide/formats/svg.md
216
+ - docs/guide/formats/ttf.md
217
+ - docs/guide/formats/type1.md
218
+ - docs/guide/formats/woff.md
219
+ - docs/guide/hinting.md
220
+ - docs/guide/hinting/autohint.md
221
+ - docs/guide/hinting/conversion.md
222
+ - docs/guide/hinting/index.md
223
+ - docs/guide/hinting/postscript.md
224
+ - docs/guide/hinting/truetype.md
225
+ - docs/guide/index.md
226
+ - docs/guide/installation.md
227
+ - docs/guide/migrations/extract-ttc.md
228
+ - docs/guide/migrations/font-validator.md
229
+ - docs/guide/migrations/fonttools.md
230
+ - docs/guide/migrations/index.md
231
+ - docs/guide/migrations/otfinfo.md
232
+ - docs/guide/quick-start.md
233
+ - docs/guide/type1.md
234
+ - docs/guide/universal-outline.md
235
+ - docs/guide/validation.md
236
+ - docs/guide/validation/custom.md
237
+ - docs/guide/validation/helpers.md
238
+ - docs/guide/validation/index.md
239
+ - docs/guide/validation/profiles.md
240
+ - docs/guide/variable-fonts/advanced.md
241
+ - docs/guide/variable-fonts/axes.md
242
+ - docs/guide/variable-fonts/conversion.md
243
+ - docs/guide/variable-fonts/index.md
244
+ - docs/guide/variable-fonts/instances.md
245
+ - docs/guide/variable-fonts/named-instances.md
246
+ - docs/guide/variable-fonts/static.md
247
+ - docs/guide/variable.md
248
+ - docs/guide/woff.md
249
+ - docs/index.md
250
+ - docs/lychee.toml
251
+ - docs/package-lock.json
252
+ - docs/package.json
253
+ - docs/public/apple-touch-icon.png
254
+ - docs/public/favicon-96x96.png
255
+ - docs/public/favicon.ico
256
+ - docs/public/favicon.svg
257
+ - docs/public/logo-full.svg
258
+ - docs/public/logo.svg
259
+ - docs/public/site.webmanifest
260
+ - docs/public/web-app-manifest-192x192.png
261
+ - docs/public/web-app-manifest-512x512.png
130
262
  - exe/fontisan
131
263
  - fontisan.gemspec
132
264
  - lib/fontisan.rb