fontisan 0.4.5 → 0.4.7
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.
- checksums.yaml +4 -4
- data/BUG-stitcher-drops-isolated-cps.md +58 -0
- data/BUG-stitcher-drops-plane1-codepoints.md +310 -0
- data/BUG-stitcher-gid-cap-65535.md +110 -0
- data/CHANGELOG.md +142 -0
- data/README.adoc +121 -68
- data/benchmark/compile_benchmark.rb +70 -0
- data/docs/CFF2_SUPPORT.adoc +184 -0
- data/docs/STITCHER_GUIDE.adoc +151 -0
- data/docs/SVG_TO_GLYF.adoc +118 -0
- data/docs/UFO_COMPILATION.adoc +119 -0
- data/lib/fontisan/collection/writer.rb +5 -6
- data/lib/fontisan/error.rb +31 -0
- data/lib/fontisan/stitcher/deduplicator.rb +47 -0
- data/lib/fontisan/stitcher/glyph_limit.rb +53 -0
- data/lib/fontisan/stitcher/glyph_signature.rb +51 -0
- data/lib/fontisan/stitcher/source.rb +67 -4
- data/lib/fontisan/stitcher.rb +188 -167
- data/lib/fontisan/svg_to_glyf/assembler.rb +132 -0
- data/lib/fontisan/svg_to_glyf/document.rb +83 -0
- data/lib/fontisan/svg_to_glyf/geometry/affine_transform.rb +112 -0
- data/lib/fontisan/svg_to_glyf/geometry/normalizer.rb +45 -0
- data/lib/fontisan/svg_to_glyf/geometry/transform_parser.rb +91 -0
- data/lib/fontisan/svg_to_glyf/geometry.rb +13 -0
- data/lib/fontisan/svg_to_glyf/path/command.rb +18 -0
- data/lib/fontisan/svg_to_glyf/path/contour_builder.rb +140 -0
- data/lib/fontisan/svg_to_glyf/path/parser.rb +98 -0
- data/lib/fontisan/svg_to_glyf/path/state.rb +79 -0
- data/lib/fontisan/svg_to_glyf/path.rb +14 -0
- data/lib/fontisan/svg_to_glyf.rb +62 -0
- data/lib/fontisan/tables/cff/cff2_charstring_builder.rb +216 -0
- data/lib/fontisan/tables/cff.rb +1 -0
- data/lib/fontisan/tables/cff2/dict_encoder.rb +94 -0
- data/lib/fontisan/tables/cff2/fd_select.rb +69 -0
- data/lib/fontisan/tables/cff2/header.rb +34 -0
- data/lib/fontisan/tables/cff2/index_builder.rb +79 -0
- data/lib/fontisan/tables/cff2.rb +4 -0
- data/lib/fontisan/ufo/compile/avar.rb +46 -0
- data/lib/fontisan/ufo/compile/cbdt_cblc.rb +103 -0
- data/lib/fontisan/ufo/compile/cff2.rb +181 -0
- data/lib/fontisan/ufo/compile/cff2_subroutines.rb +39 -0
- data/lib/fontisan/ufo/compile/colr.rb +80 -0
- data/lib/fontisan/ufo/compile/cpal.rb +61 -0
- data/lib/fontisan/ufo/compile/hvar.rb +42 -0
- data/lib/fontisan/ufo/compile/item_variation_store.rb +99 -0
- data/lib/fontisan/ufo/compile/math.rb +143 -0
- data/lib/fontisan/ufo/compile/meta.rb +51 -0
- data/lib/fontisan/ufo/compile/mvar.rb +59 -0
- data/lib/fontisan/ufo/compile/otf2_compiler.rb +46 -0
- data/lib/fontisan/ufo/compile/sbix.rb +99 -0
- data/lib/fontisan/ufo/compile/stat.rb +103 -0
- data/lib/fontisan/ufo/compile/svg_table.rb +60 -0
- data/lib/fontisan/ufo/compile/ttf_compiler.rb +6 -3
- data/lib/fontisan/ufo/compile/variable_otf.rb +75 -0
- data/lib/fontisan/ufo/compile/variable_ttf.rb +161 -0
- data/lib/fontisan/ufo/compile.rb +18 -0
- data/lib/fontisan/version.rb +1 -1
- data/lib/fontisan.rb +3 -0
- metadata +47 -2
data/lib/fontisan/ufo/compile.rb
CHANGED
|
@@ -46,6 +46,24 @@ module Fontisan
|
|
|
46
46
|
autoload :Cmap, "fontisan/ufo/compile/cmap"
|
|
47
47
|
autoload :GlyfLoca, "fontisan/ufo/compile/glyf_loca"
|
|
48
48
|
autoload :Cff, "fontisan/ufo/compile/cff"
|
|
49
|
+
autoload :Cff2, "fontisan/ufo/compile/cff2"
|
|
50
|
+
autoload :Otf2Compiler, "fontisan/ufo/compile/otf2_compiler"
|
|
51
|
+
autoload :Cpal, "fontisan/ufo/compile/cpal"
|
|
52
|
+
autoload :Meta, "fontisan/ufo/compile/meta"
|
|
53
|
+
autoload :SvgTable, "fontisan/ufo/compile/svg_table"
|
|
54
|
+
autoload :Sbix, "fontisan/ufo/compile/sbix"
|
|
55
|
+
autoload :MathTable, "fontisan/ufo/compile/math"
|
|
56
|
+
autoload :CbdtCblc, "fontisan/ufo/compile/cbdt_cblc"
|
|
57
|
+
autoload :Colr, "fontisan/ufo/compile/colr"
|
|
58
|
+
autoload :Cff2Subrs, "fontisan/ufo/compile/cff2_subroutines"
|
|
59
|
+
autoload :VariableOtf, "fontisan/ufo/compile/variable_otf"
|
|
60
|
+
autoload :Avar, "fontisan/ufo/compile/avar"
|
|
61
|
+
autoload :Hvar, "fontisan/ufo/compile/hvar"
|
|
62
|
+
autoload :Mvar, "fontisan/ufo/compile/mvar"
|
|
63
|
+
autoload :Stat, "fontisan/ufo/compile/stat"
|
|
64
|
+
autoload :VariableTtf, "fontisan/ufo/compile/variable_ttf"
|
|
65
|
+
autoload :ItemVariationStore,
|
|
66
|
+
"fontisan/ufo/compile/item_variation_store"
|
|
49
67
|
end
|
|
50
68
|
end
|
|
51
69
|
end
|
data/lib/fontisan/version.rb
CHANGED
data/lib/fontisan.rb
CHANGED
|
@@ -70,6 +70,8 @@ module Fontisan
|
|
|
70
70
|
autoload :CorruptedVariationDataError, "fontisan/error"
|
|
71
71
|
autoload :InvalidVariationDataError, "fontisan/error"
|
|
72
72
|
autoload :VariationDataCorruptedError, "fontisan/error"
|
|
73
|
+
autoload :MultipleCbdtSourcesError, "fontisan/error"
|
|
74
|
+
autoload :GlyphLimitExceededError, "fontisan/error"
|
|
73
75
|
|
|
74
76
|
# Namespace hubs (each hub declares its own child autoloads)
|
|
75
77
|
autoload :Binary, "fontisan/binary"
|
|
@@ -86,6 +88,7 @@ module Fontisan
|
|
|
86
88
|
autoload :Pipeline, "fontisan/pipeline"
|
|
87
89
|
autoload :Subset, "fontisan/subset"
|
|
88
90
|
autoload :Svg, "fontisan/svg"
|
|
91
|
+
autoload :SvgToGlyf, "fontisan/svg_to_glyf"
|
|
89
92
|
autoload :Tables, "fontisan/tables"
|
|
90
93
|
autoload :Type1, "fontisan/type1"
|
|
91
94
|
autoload :Ufo, "fontisan/ufo"
|
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.4.
|
|
4
|
+
version: 0.4.7
|
|
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-
|
|
11
|
+
date: 2026-07-03 00:00:00.000000000 Z
|
|
12
12
|
dependencies:
|
|
13
13
|
- !ruby/object:Gem::Dependency
|
|
14
14
|
name: base64
|
|
@@ -125,11 +125,15 @@ files:
|
|
|
125
125
|
- ".rspec"
|
|
126
126
|
- ".rubocop.yml"
|
|
127
127
|
- ".rubocop_todo.yml"
|
|
128
|
+
- BUG-stitcher-drops-isolated-cps.md
|
|
129
|
+
- BUG-stitcher-drops-plane1-codepoints.md
|
|
130
|
+
- BUG-stitcher-gid-cap-65535.md
|
|
128
131
|
- CHANGELOG.md
|
|
129
132
|
- Gemfile
|
|
130
133
|
- LICENSE
|
|
131
134
|
- README.adoc
|
|
132
135
|
- Rakefile
|
|
136
|
+
- benchmark/compile_benchmark.rb
|
|
133
137
|
- benchmark/variation_quick_bench.rb
|
|
134
138
|
- docs/.gitignore
|
|
135
139
|
- docs/.vitepress/config.ts
|
|
@@ -141,12 +145,16 @@ files:
|
|
|
141
145
|
- docs/.vitepress/theme/index.ts
|
|
142
146
|
- docs/.vitepress/theme/style.css
|
|
143
147
|
- docs/APPLE_LEGACY_FONTS.adoc
|
|
148
|
+
- docs/CFF2_SUPPORT.adoc
|
|
144
149
|
- docs/COLLECTION_VALIDATION.adoc
|
|
145
150
|
- docs/COLOR_FONTS.adoc
|
|
146
151
|
- docs/CONVERSION_GUIDE.adoc
|
|
147
152
|
- docs/EXTRACT_TTC_MIGRATION.md
|
|
148
153
|
- docs/FONT_HINTING.adoc
|
|
154
|
+
- docs/STITCHER_GUIDE.adoc
|
|
155
|
+
- docs/SVG_TO_GLYF.adoc
|
|
149
156
|
- docs/TYPE1_FONTS.adoc
|
|
157
|
+
- docs/UFO_COMPILATION.adoc
|
|
150
158
|
- docs/VALIDATION.adoc
|
|
151
159
|
- docs/VARIABLE_FONT_OPERATIONS.adoc
|
|
152
160
|
- docs/WOFF_WOFF2_FORMATS.adoc
|
|
@@ -436,6 +444,9 @@ files:
|
|
|
436
444
|
- lib/fontisan/sfnt_font.rb
|
|
437
445
|
- lib/fontisan/sfnt_table.rb
|
|
438
446
|
- lib/fontisan/stitcher.rb
|
|
447
|
+
- lib/fontisan/stitcher/deduplicator.rb
|
|
448
|
+
- lib/fontisan/stitcher/glyph_limit.rb
|
|
449
|
+
- lib/fontisan/stitcher/glyph_signature.rb
|
|
439
450
|
- lib/fontisan/stitcher/selector.rb
|
|
440
451
|
- lib/fontisan/stitcher/selector/codepoints.rb
|
|
441
452
|
- lib/fontisan/stitcher/selector/gid.rb
|
|
@@ -453,10 +464,23 @@ files:
|
|
|
453
464
|
- lib/fontisan/svg/font_generator.rb
|
|
454
465
|
- lib/fontisan/svg/glyph_generator.rb
|
|
455
466
|
- lib/fontisan/svg/view_box_calculator.rb
|
|
467
|
+
- lib/fontisan/svg_to_glyf.rb
|
|
468
|
+
- lib/fontisan/svg_to_glyf/assembler.rb
|
|
469
|
+
- lib/fontisan/svg_to_glyf/document.rb
|
|
470
|
+
- lib/fontisan/svg_to_glyf/geometry.rb
|
|
471
|
+
- lib/fontisan/svg_to_glyf/geometry/affine_transform.rb
|
|
472
|
+
- lib/fontisan/svg_to_glyf/geometry/normalizer.rb
|
|
473
|
+
- lib/fontisan/svg_to_glyf/geometry/transform_parser.rb
|
|
474
|
+
- lib/fontisan/svg_to_glyf/path.rb
|
|
475
|
+
- lib/fontisan/svg_to_glyf/path/command.rb
|
|
476
|
+
- lib/fontisan/svg_to_glyf/path/contour_builder.rb
|
|
477
|
+
- lib/fontisan/svg_to_glyf/path/parser.rb
|
|
478
|
+
- lib/fontisan/svg_to_glyf/path/state.rb
|
|
456
479
|
- lib/fontisan/tables.rb
|
|
457
480
|
- lib/fontisan/tables/cbdt.rb
|
|
458
481
|
- lib/fontisan/tables/cblc.rb
|
|
459
482
|
- lib/fontisan/tables/cff.rb
|
|
483
|
+
- lib/fontisan/tables/cff/cff2_charstring_builder.rb
|
|
460
484
|
- lib/fontisan/tables/cff/cff_glyph.rb
|
|
461
485
|
- lib/fontisan/tables/cff/charset.rb
|
|
462
486
|
- lib/fontisan/tables/cff/charstring.rb
|
|
@@ -479,6 +503,10 @@ files:
|
|
|
479
503
|
- lib/fontisan/tables/cff2.rb
|
|
480
504
|
- lib/fontisan/tables/cff2/blend_operator.rb
|
|
481
505
|
- lib/fontisan/tables/cff2/charstring_parser.rb
|
|
506
|
+
- lib/fontisan/tables/cff2/dict_encoder.rb
|
|
507
|
+
- lib/fontisan/tables/cff2/fd_select.rb
|
|
508
|
+
- lib/fontisan/tables/cff2/header.rb
|
|
509
|
+
- lib/fontisan/tables/cff2/index_builder.rb
|
|
482
510
|
- lib/fontisan/tables/cff2/operand_stack.rb
|
|
483
511
|
- lib/fontisan/tables/cff2/private_dict_blend_handler.rb
|
|
484
512
|
- lib/fontisan/tables/cff2/region_matcher.rb
|
|
@@ -555,9 +583,15 @@ files:
|
|
|
555
583
|
- lib/fontisan/ufo/anchor.rb
|
|
556
584
|
- lib/fontisan/ufo/cli.rb
|
|
557
585
|
- lib/fontisan/ufo/compile.rb
|
|
586
|
+
- lib/fontisan/ufo/compile/avar.rb
|
|
558
587
|
- lib/fontisan/ufo/compile/base_compiler.rb
|
|
588
|
+
- lib/fontisan/ufo/compile/cbdt_cblc.rb
|
|
559
589
|
- lib/fontisan/ufo/compile/cff.rb
|
|
590
|
+
- lib/fontisan/ufo/compile/cff2.rb
|
|
591
|
+
- lib/fontisan/ufo/compile/cff2_subroutines.rb
|
|
560
592
|
- lib/fontisan/ufo/compile/cmap.rb
|
|
593
|
+
- lib/fontisan/ufo/compile/colr.rb
|
|
594
|
+
- lib/fontisan/ufo/compile/cpal.rb
|
|
561
595
|
- lib/fontisan/ufo/compile/filters.rb
|
|
562
596
|
- lib/fontisan/ufo/compile/filters/cubic_to_quadratic.rb
|
|
563
597
|
- lib/fontisan/ufo/compile/filters/decompose_components.rb
|
|
@@ -570,12 +604,23 @@ files:
|
|
|
570
604
|
- lib/fontisan/ufo/compile/head.rb
|
|
571
605
|
- lib/fontisan/ufo/compile/hhea.rb
|
|
572
606
|
- lib/fontisan/ufo/compile/hmtx.rb
|
|
607
|
+
- lib/fontisan/ufo/compile/hvar.rb
|
|
608
|
+
- lib/fontisan/ufo/compile/item_variation_store.rb
|
|
609
|
+
- lib/fontisan/ufo/compile/math.rb
|
|
573
610
|
- lib/fontisan/ufo/compile/maxp.rb
|
|
611
|
+
- lib/fontisan/ufo/compile/meta.rb
|
|
612
|
+
- lib/fontisan/ufo/compile/mvar.rb
|
|
574
613
|
- lib/fontisan/ufo/compile/name.rb
|
|
575
614
|
- lib/fontisan/ufo/compile/os2.rb
|
|
615
|
+
- lib/fontisan/ufo/compile/otf2_compiler.rb
|
|
576
616
|
- lib/fontisan/ufo/compile/otf_compiler.rb
|
|
577
617
|
- lib/fontisan/ufo/compile/post.rb
|
|
618
|
+
- lib/fontisan/ufo/compile/sbix.rb
|
|
619
|
+
- lib/fontisan/ufo/compile/stat.rb
|
|
620
|
+
- lib/fontisan/ufo/compile/svg_table.rb
|
|
578
621
|
- lib/fontisan/ufo/compile/ttf_compiler.rb
|
|
622
|
+
- lib/fontisan/ufo/compile/variable_otf.rb
|
|
623
|
+
- lib/fontisan/ufo/compile/variable_ttf.rb
|
|
579
624
|
- lib/fontisan/ufo/component.rb
|
|
580
625
|
- lib/fontisan/ufo/contour.rb
|
|
581
626
|
- lib/fontisan/ufo/convert.rb
|