fontisan 0.2.16 → 0.2.22
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/.rubocop_todo.yml +14 -90
- data/Gemfile +6 -3
- data/README.adoc +257 -1
- data/docs/.vitepress/config.ts +68 -8
- data/docs/.vitepress/theme/style.css +570 -272
- data/docs/CONVERSION_GUIDE.adoc +31 -8
- data/docs/EXTRACT_TTC_MIGRATION.md +1 -1
- data/docs/WOFF_WOFF2_FORMATS.adoc +53 -0
- data/docs/api/conversion-options.md +37 -14
- data/docs/api/font-loader.md +21 -15
- data/docs/cli/audit.md +337 -0
- data/docs/cli/convert.md +20 -1
- data/docs/cli/index.md +31 -0
- data/docs/guide/color.md +1 -1
- data/docs/guide/conversion/options.md +32 -3
- data/docs/guide/conversion/ttf-otf.md +1 -1
- data/docs/guide/conversion/type1.md +1 -1
- data/docs/guide/conversion/web.md +91 -32
- data/docs/guide/conversion.md +6 -5
- data/docs/guide/formats/woff.md +35 -11
- data/docs/guide/index.md +2 -2
- data/docs/guide/migrations/extract-ttc.md +1 -1
- data/docs/guide/quick-start.md +4 -4
- data/docs/guide/type1.md +4 -4
- data/docs/guide/woff.md +19 -17
- data/docs/index.md +2 -0
- data/docs/lychee.toml +5 -1
- data/docs/package.json +1 -1
- data/docs/public/robots.txt +4 -0
- data/docs/scripts/post-build.mjs +81 -0
- data/lib/fontisan/audit/codepoint_range_coalescer.rb +41 -0
- data/lib/fontisan/audit/context.rb +122 -0
- data/lib/fontisan/audit/differ.rb +124 -0
- data/lib/fontisan/audit/extractors/aggregations.rb +54 -0
- data/lib/fontisan/audit/extractors/base.rb +26 -0
- data/lib/fontisan/audit/extractors/color_capabilities.rb +141 -0
- data/lib/fontisan/audit/extractors/coverage.rb +48 -0
- data/lib/fontisan/audit/extractors/hinting.rb +197 -0
- data/lib/fontisan/audit/extractors/identity.rb +52 -0
- data/lib/fontisan/audit/extractors/language_coverage.rb +37 -0
- data/lib/fontisan/audit/extractors/licensing.rb +79 -0
- data/lib/fontisan/audit/extractors/metrics.rb +103 -0
- data/lib/fontisan/audit/extractors/opentype_layout.rb +69 -0
- data/lib/fontisan/audit/extractors/provenance.rb +29 -0
- data/lib/fontisan/audit/extractors/style.rb +32 -0
- data/lib/fontisan/audit/extractors/variation_detail.rb +99 -0
- data/lib/fontisan/audit/extractors.rb +27 -0
- data/lib/fontisan/audit/library_aggregator.rb +83 -0
- data/lib/fontisan/audit/library_auditor.rb +90 -0
- data/lib/fontisan/audit/registry.rb +60 -0
- data/lib/fontisan/audit/style_extractor.rb +80 -0
- data/lib/fontisan/audit.rb +20 -0
- data/lib/fontisan/base_collection.rb +23 -9
- data/lib/fontisan/binary/structures.rb +0 -2
- data/lib/fontisan/binary.rb +11 -0
- data/lib/fontisan/cldr/aggregator.rb +33 -0
- data/lib/fontisan/cldr/cache_manager.rb +110 -0
- data/lib/fontisan/cldr/config.rb +59 -0
- data/lib/fontisan/cldr/download_error.rb +9 -0
- data/lib/fontisan/cldr/downloader.rb +79 -0
- data/lib/fontisan/cldr/error.rb +8 -0
- data/lib/fontisan/cldr/index.rb +64 -0
- data/lib/fontisan/cldr/index_builder.rb +72 -0
- data/lib/fontisan/cldr/unicode_set_parser.rb +172 -0
- data/lib/fontisan/cldr/unknown_version_error.rb +9 -0
- data/lib/fontisan/cldr/version_resolver.rb +91 -0
- data/lib/fontisan/cldr.rb +23 -0
- data/lib/fontisan/cli/cldr_cli.rb +85 -0
- data/lib/fontisan/cli/ucd_cli.rb +97 -0
- data/lib/fontisan/cli.rb +201 -2
- data/lib/fontisan/collection/builder.rb +0 -4
- data/lib/fontisan/collection/dfont_builder.rb +0 -4
- data/lib/fontisan/collection/shared_logic.rb +0 -2
- data/lib/fontisan/collection/writer.rb +0 -3
- data/lib/fontisan/collection.rb +15 -0
- data/lib/fontisan/commands/audit_command.rb +123 -0
- data/lib/fontisan/commands/audit_compare_command.rb +66 -0
- data/lib/fontisan/commands/audit_library_command.rb +46 -0
- data/lib/fontisan/commands/base_command.rb +0 -3
- data/lib/fontisan/commands/convert_command.rb +25 -20
- data/lib/fontisan/commands/dump_table_command.rb +0 -3
- data/lib/fontisan/commands/export_command.rb +0 -4
- data/lib/fontisan/commands/features_command.rb +0 -3
- data/lib/fontisan/commands/instance_command.rb +0 -5
- data/lib/fontisan/commands/ls_command.rb +0 -6
- data/lib/fontisan/commands/optical_size_command.rb +0 -3
- data/lib/fontisan/commands/pack_command.rb +0 -5
- data/lib/fontisan/commands/scripts_command.rb +0 -2
- data/lib/fontisan/commands/subset_command.rb +0 -3
- data/lib/fontisan/commands/unicode_command.rb +0 -3
- data/lib/fontisan/commands/unpack_command.rb +0 -7
- data/lib/fontisan/commands/validate_command.rb +0 -8
- data/lib/fontisan/commands/variable_command.rb +0 -3
- data/lib/fontisan/commands.rb +29 -0
- data/lib/fontisan/config/cldr.yml +22 -0
- data/lib/fontisan/config/conversion_matrix.yml +38 -0
- data/lib/fontisan/config/ucd.yml +23 -0
- data/lib/fontisan/constants.rb +48 -6
- data/lib/fontisan/conversion_options.rb +30 -19
- data/lib/fontisan/converters/cff_table_builder.rb +0 -3
- data/lib/fontisan/converters/collection_converter.rb +0 -8
- data/lib/fontisan/converters/conversion_strategy.rb +161 -46
- data/lib/fontisan/converters/format_converter.rb +143 -32
- data/lib/fontisan/converters/glyf_table_builder.rb +0 -2
- data/lib/fontisan/converters/outline_converter.rb +0 -19
- data/lib/fontisan/converters/outline_extraction.rb +0 -5
- data/lib/fontisan/converters/outline_optimizer.rb +0 -5
- data/lib/fontisan/converters/svg_generator.rb +0 -4
- data/lib/fontisan/converters/table_copier.rb +0 -2
- data/lib/fontisan/converters/type1_converter.rb +0 -11
- data/lib/fontisan/converters/woff2_encoder.rb +49 -20
- data/lib/fontisan/converters/woff_writer.rb +211 -282
- data/lib/fontisan/converters.rb +21 -0
- data/lib/fontisan/dfont_collection.rb +29 -10
- data/lib/fontisan/export/exporter.rb +0 -6
- data/lib/fontisan/export/transformers/font_to_ttx.rb +0 -9
- data/lib/fontisan/export/transformers/head_transformer.rb +0 -2
- data/lib/fontisan/export/transformers/hhea_transformer.rb +0 -2
- data/lib/fontisan/export/transformers/maxp_transformer.rb +0 -2
- data/lib/fontisan/export/transformers/name_transformer.rb +0 -2
- data/lib/fontisan/export/transformers/os2_transformer.rb +0 -2
- data/lib/fontisan/export/transformers/post_transformer.rb +0 -2
- data/lib/fontisan/export/transformers.rb +17 -0
- data/lib/fontisan/export.rb +13 -0
- data/lib/fontisan/font_loader.rb +189 -328
- data/lib/fontisan/font_writer.rb +0 -1
- data/lib/fontisan/formatters/audit_diff_text_renderer.rb +122 -0
- data/lib/fontisan/formatters/audit_text_renderer.rb +324 -0
- data/lib/fontisan/formatters/library_summary_text_renderer.rb +99 -0
- data/lib/fontisan/formatters/text_formatter.rb +6 -0
- data/lib/fontisan/formatters.rb +12 -0
- data/lib/fontisan/hints/hint_converter.rb +0 -1
- data/lib/fontisan/hints/postscript_hint_applier.rb +0 -9
- data/lib/fontisan/hints/postscript_hint_extractor.rb +0 -2
- data/lib/fontisan/hints/truetype_hint_extractor.rb +0 -2
- data/lib/fontisan/hints.rb +16 -0
- data/lib/fontisan/metrics_calculator.rb +0 -2
- data/lib/fontisan/models/all_scripts_features_info.rb +0 -1
- data/lib/fontisan/models/audit/audit_axis.rb +30 -0
- data/lib/fontisan/models/audit/audit_block.rb +32 -0
- data/lib/fontisan/models/audit/audit_diff.rb +77 -0
- data/lib/fontisan/models/audit/audit_report.rb +153 -0
- data/lib/fontisan/models/audit/codepoint_range.rb +40 -0
- data/lib/fontisan/models/audit/codepoint_set_diff.rb +34 -0
- data/lib/fontisan/models/audit/color_capabilities.rb +93 -0
- data/lib/fontisan/models/audit/duplicate_group.rb +23 -0
- data/lib/fontisan/models/audit/embedding_type.rb +76 -0
- data/lib/fontisan/models/audit/field_change.rb +28 -0
- data/lib/fontisan/models/audit/fs_selection_flags.rb +61 -0
- data/lib/fontisan/models/audit/gasp_range.rb +63 -0
- data/lib/fontisan/models/audit/hinting.rb +93 -0
- data/lib/fontisan/models/audit/library_summary.rb +40 -0
- data/lib/fontisan/models/audit/licensing.rb +48 -0
- data/lib/fontisan/models/audit/metrics.rb +111 -0
- data/lib/fontisan/models/audit/named_instance.rb +41 -0
- data/lib/fontisan/models/audit/opentype_layout.rb +40 -0
- data/lib/fontisan/models/audit/script_coverage_row.rb +26 -0
- data/lib/fontisan/models/audit/script_features.rb +28 -0
- data/lib/fontisan/models/audit/variation_detail.rb +44 -0
- data/lib/fontisan/models/audit.rb +33 -0
- data/lib/fontisan/models/cldr/language_coverage.rb +31 -0
- data/lib/fontisan/models/cldr.rb +12 -0
- data/lib/fontisan/models/collection_brief_info.rb +0 -1
- data/lib/fontisan/models/collection_info.rb +0 -2
- data/lib/fontisan/models/collection_list_info.rb +0 -1
- data/lib/fontisan/models/collection_validation_report.rb +0 -2
- data/lib/fontisan/models/color_glyph.rb +0 -1
- data/lib/fontisan/models/font_report.rb +0 -1
- data/lib/fontisan/models/ttx/tables.rb +21 -0
- data/lib/fontisan/models/ttx/ttfont.rb +0 -8
- data/lib/fontisan/models/ttx.rb +14 -0
- data/lib/fontisan/models/ucd/ucd.rb +38 -0
- data/lib/fontisan/models/ucd/ucd_char.rb +67 -0
- data/lib/fontisan/models/ucd.rb +19 -0
- data/lib/fontisan/models.rb +47 -0
- data/lib/fontisan/open_type_collection.rb +6 -5
- data/lib/fontisan/open_type_font.rb +8 -2
- data/lib/fontisan/open_type_font_extensions.rb +9 -9
- data/lib/fontisan/optimizers/pattern_analyzer.rb +0 -1
- data/lib/fontisan/optimizers.rb +14 -0
- data/lib/fontisan/outline_extractor.rb +0 -2
- data/lib/fontisan/parsers/dfont_parser.rb +0 -1
- data/lib/fontisan/parsers.rb +10 -0
- data/lib/fontisan/pipeline/format_detector.rb +29 -102
- data/lib/fontisan/pipeline/output_writer.rb +11 -9
- data/lib/fontisan/pipeline/strategies/instance_strategy.rb +0 -4
- data/lib/fontisan/pipeline/strategies/named_strategy.rb +0 -4
- data/lib/fontisan/pipeline/strategies/preserve_strategy.rb +0 -2
- data/lib/fontisan/pipeline/strategies.rb +14 -0
- data/lib/fontisan/pipeline/transformation_pipeline.rb +0 -7
- data/lib/fontisan/pipeline/variation_resolver.rb +0 -7
- data/lib/fontisan/pipeline.rb +13 -0
- data/lib/fontisan/sfnt_font.rb +29 -14
- data/lib/fontisan/sfnt_table.rb +0 -4
- data/lib/fontisan/subset/builder.rb +0 -6
- data/lib/fontisan/subset.rb +13 -0
- data/lib/fontisan/svg/font_generator.rb +0 -4
- data/lib/fontisan/svg/glyph_generator.rb +0 -2
- data/lib/fontisan/svg.rb +12 -0
- data/lib/fontisan/tables/cbdt.rb +0 -1
- data/lib/fontisan/tables/cblc.rb +0 -1
- data/lib/fontisan/tables/cff/charset.rb +0 -1
- data/lib/fontisan/tables/cff/charstring.rb +0 -1
- data/lib/fontisan/tables/cff/charstring_rebuilder.rb +0 -4
- data/lib/fontisan/tables/cff/charstrings_index.rb +0 -3
- data/lib/fontisan/tables/cff/dict.rb +0 -1
- data/lib/fontisan/tables/cff/encoding.rb +0 -1
- data/lib/fontisan/tables/cff/header.rb +0 -2
- data/lib/fontisan/tables/cff/hint_operation_injector.rb +0 -2
- data/lib/fontisan/tables/cff/index.rb +0 -1
- data/lib/fontisan/tables/cff/private_dict.rb +0 -2
- data/lib/fontisan/tables/cff/private_dict_writer.rb +0 -2
- data/lib/fontisan/tables/cff/table_builder.rb +0 -6
- data/lib/fontisan/tables/cff/top_dict.rb +0 -2
- data/lib/fontisan/tables/cff.rb +22 -15
- data/lib/fontisan/tables/cff2/charstring_parser.rb +0 -2
- data/lib/fontisan/tables/cff2/table_builder.rb +0 -11
- data/lib/fontisan/tables/cff2/table_reader.rb +0 -2
- data/lib/fontisan/tables/cff2.rb +13 -14
- data/lib/fontisan/tables/cmap.rb +24 -2
- data/lib/fontisan/tables/cmap_table.rb +0 -3
- data/lib/fontisan/tables/colr.rb +0 -1
- data/lib/fontisan/tables/cpal.rb +0 -1
- data/lib/fontisan/tables/cvar.rb +0 -2
- data/lib/fontisan/tables/fvar.rb +0 -1
- data/lib/fontisan/tables/glyf/compound_glyph_resolver.rb +0 -2
- data/lib/fontisan/tables/glyf/glyph_builder.rb +0 -3
- data/lib/fontisan/tables/glyf.rb +0 -6
- data/lib/fontisan/tables/glyf_table.rb +0 -3
- data/lib/fontisan/tables/gpos.rb +0 -2
- data/lib/fontisan/tables/gsub.rb +0 -2
- data/lib/fontisan/tables/gvar.rb +0 -2
- data/lib/fontisan/tables/head.rb +0 -2
- data/lib/fontisan/tables/head_table.rb +0 -3
- data/lib/fontisan/tables/hhea.rb +0 -2
- data/lib/fontisan/tables/hhea_table.rb +0 -3
- data/lib/fontisan/tables/hmtx.rb +0 -2
- data/lib/fontisan/tables/hmtx_table.rb +0 -3
- data/lib/fontisan/tables/hvar.rb +0 -3
- data/lib/fontisan/tables/loca.rb +0 -2
- data/lib/fontisan/tables/loca_table.rb +0 -3
- data/lib/fontisan/tables/maxp.rb +0 -2
- data/lib/fontisan/tables/maxp_table.rb +0 -3
- data/lib/fontisan/tables/mvar.rb +0 -3
- data/lib/fontisan/tables/name.rb +0 -2
- data/lib/fontisan/tables/name_table.rb +0 -3
- data/lib/fontisan/tables/os2_table.rb +0 -3
- data/lib/fontisan/tables/post_table.rb +0 -3
- data/lib/fontisan/tables/sbix.rb +0 -1
- data/lib/fontisan/tables/svg.rb +0 -1
- data/lib/fontisan/tables/variation_common.rb +0 -1
- data/lib/fontisan/tables/vvar.rb +0 -3
- data/lib/fontisan/tables.rb +54 -0
- data/lib/fontisan/true_type_collection.rb +6 -14
- data/lib/fontisan/true_type_font.rb +8 -2
- data/lib/fontisan/true_type_font_extensions.rb +9 -9
- data/lib/fontisan/type1/afm_generator.rb +0 -4
- data/lib/fontisan/type1/conversion_options.rb +0 -2
- data/lib/fontisan/type1/encodings.rb +0 -2
- data/lib/fontisan/type1/generator.rb +0 -8
- data/lib/fontisan/type1/pfa_generator.rb +0 -3
- data/lib/fontisan/type1/pfb_generator.rb +0 -5
- data/lib/fontisan/type1/pfm_generator.rb +0 -4
- data/lib/fontisan/type1.rb +42 -69
- data/lib/fontisan/type1_font.rb +40 -11
- data/lib/fontisan/ucd/aggregator.rb +73 -0
- data/lib/fontisan/ucd/cache_manager.rb +111 -0
- data/lib/fontisan/ucd/config.rb +59 -0
- data/lib/fontisan/ucd/download_error.rb +9 -0
- data/lib/fontisan/ucd/downloader.rb +88 -0
- data/lib/fontisan/ucd/error.rb +8 -0
- data/lib/fontisan/ucd/index.rb +103 -0
- data/lib/fontisan/ucd/index_builder.rb +107 -0
- data/lib/fontisan/ucd/range_entry.rb +56 -0
- data/lib/fontisan/ucd/unknown_version_error.rb +9 -0
- data/lib/fontisan/ucd/version_resolver.rb +79 -0
- data/lib/fontisan/ucd.rb +23 -0
- data/lib/fontisan/utilities/checksum_calculator.rb +0 -1
- data/lib/fontisan/utilities.rb +10 -0
- data/lib/fontisan/utils.rb +10 -0
- data/lib/fontisan/validation/collection_validator.rb +0 -2
- data/lib/fontisan/validation.rb +9 -0
- data/lib/fontisan/validators/basic_validator.rb +0 -2
- data/lib/fontisan/validators/font_book_validator.rb +0 -2
- data/lib/fontisan/validators/opentype_validator.rb +0 -2
- data/lib/fontisan/validators/profile_loader.rb +0 -5
- data/lib/fontisan/validators/validator.rb +0 -2
- data/lib/fontisan/validators/web_font_validator.rb +0 -2
- data/lib/fontisan/validators.rb +14 -0
- data/lib/fontisan/variable/delta_applicator.rb +0 -4
- data/lib/fontisan/variable/instancer.rb +0 -3
- data/lib/fontisan/variable/static_font_builder.rb +0 -3
- data/lib/fontisan/variable.rb +16 -0
- data/lib/fontisan/variation/blend_applier.rb +0 -2
- data/lib/fontisan/variation/cache.rb +0 -2
- data/lib/fontisan/variation/converter.rb +0 -3
- data/lib/fontisan/variation/data_extractor.rb +0 -2
- data/lib/fontisan/variation/delta_applier.rb +0 -5
- data/lib/fontisan/variation/inspector.rb +0 -1
- data/lib/fontisan/variation/instance_generator.rb +0 -6
- data/lib/fontisan/variation/instance_writer.rb +0 -5
- data/lib/fontisan/variation/metrics_adjuster.rb +0 -4
- data/lib/fontisan/variation/optimizer.rb +0 -3
- data/lib/fontisan/variation/parallel_generator.rb +0 -3
- data/lib/fontisan/variation/subsetter.rb +0 -4
- data/lib/fontisan/variation/tuple_variation_header.rb +0 -2
- data/lib/fontisan/variation/variable_svg_generator.rb +0 -3
- data/lib/fontisan/variation/variation_context.rb +0 -3
- data/lib/fontisan/variation/variation_preserver.rb +0 -3
- data/lib/fontisan/variation.rb +31 -0
- data/lib/fontisan/version.rb +1 -1
- data/lib/fontisan/woff2.rb +13 -0
- data/lib/fontisan/woff2_font.rb +31 -9
- data/lib/fontisan/woff_font.rb +31 -2
- data/lib/fontisan.rb +124 -196
- metadata +128 -7
- data/fontisan.gemspec +0 -47
data/lib/fontisan.rb
CHANGED
|
@@ -39,203 +39,96 @@ Lutaml::Model::Config.configure do |config|
|
|
|
39
39
|
config.xml_adapter_type = :nokogiri
|
|
40
40
|
end
|
|
41
41
|
|
|
42
|
-
# Core
|
|
43
|
-
require_relative "fontisan/version"
|
|
44
|
-
require_relative "fontisan/error"
|
|
45
|
-
require_relative "fontisan/constants"
|
|
46
|
-
|
|
47
|
-
# Binary structures and parsers
|
|
48
|
-
require_relative "fontisan/parsers/tag"
|
|
49
|
-
require_relative "fontisan/binary/base_record"
|
|
50
|
-
|
|
51
|
-
# Table parsers
|
|
52
|
-
require_relative "fontisan/tables/head"
|
|
53
|
-
require_relative "fontisan/tables/hhea"
|
|
54
|
-
require_relative "fontisan/tables/hmtx"
|
|
55
|
-
require_relative "fontisan/tables/maxp"
|
|
56
|
-
require_relative "fontisan/tables/loca"
|
|
57
|
-
require_relative "fontisan/tables/glyf"
|
|
58
|
-
require_relative "fontisan/tables/name"
|
|
59
|
-
require_relative "fontisan/tables/os2"
|
|
60
|
-
require_relative "fontisan/tables/post"
|
|
61
|
-
require_relative "fontisan/tables/cmap"
|
|
62
|
-
require_relative "fontisan/tables/fvar"
|
|
63
|
-
require_relative "fontisan/tables/variation_common"
|
|
64
|
-
require_relative "fontisan/tables/hvar"
|
|
65
|
-
require_relative "fontisan/tables/vvar"
|
|
66
|
-
require_relative "fontisan/tables/mvar"
|
|
67
|
-
require_relative "fontisan/tables/gvar"
|
|
68
|
-
require_relative "fontisan/tables/cvar"
|
|
69
|
-
require_relative "fontisan/tables/cff"
|
|
70
|
-
require_relative "fontisan/tables/layout_common"
|
|
71
|
-
require_relative "fontisan/tables/gsub"
|
|
72
|
-
require_relative "fontisan/tables/gpos"
|
|
73
|
-
require_relative "fontisan/tables/colr"
|
|
74
|
-
require_relative "fontisan/tables/cpal"
|
|
75
|
-
require_relative "fontisan/tables/svg"
|
|
76
|
-
require_relative "fontisan/tables/sbix"
|
|
77
|
-
require_relative "fontisan/tables/cblc"
|
|
78
|
-
require_relative "fontisan/tables/cbdt"
|
|
79
|
-
|
|
80
|
-
# Domain objects (BinData::Record)
|
|
81
|
-
require_relative "fontisan/true_type_font"
|
|
82
|
-
require_relative "fontisan/open_type_font"
|
|
83
|
-
require_relative "fontisan/true_type_collection"
|
|
84
|
-
require_relative "fontisan/open_type_collection"
|
|
85
|
-
require_relative "fontisan/woff_font"
|
|
86
|
-
require_relative "fontisan/woff2_font"
|
|
87
|
-
require_relative "fontisan/type1_font"
|
|
88
|
-
|
|
89
|
-
# Font extensions for table-based construction
|
|
90
|
-
require_relative "fontisan/true_type_font_extensions"
|
|
91
|
-
require_relative "fontisan/open_type_font_extensions"
|
|
92
|
-
|
|
93
|
-
# Font loading
|
|
94
|
-
require_relative "fontisan/font_loader"
|
|
95
|
-
|
|
96
|
-
# Utilities
|
|
97
|
-
require_relative "fontisan/metrics_calculator"
|
|
98
|
-
require_relative "fontisan/glyph_accessor"
|
|
99
|
-
require_relative "fontisan/outline_extractor"
|
|
100
|
-
require_relative "fontisan/utilities/checksum_calculator"
|
|
101
|
-
require_relative "fontisan/font_writer"
|
|
102
|
-
|
|
103
|
-
# Information models (Lutaml::Model)
|
|
104
|
-
require_relative "fontisan/models/bitmap_strike"
|
|
105
|
-
require_relative "fontisan/models/bitmap_glyph"
|
|
106
|
-
require_relative "fontisan/models/font_info"
|
|
107
|
-
require_relative "fontisan/models/table_info"
|
|
108
|
-
require_relative "fontisan/models/glyph_info"
|
|
109
|
-
require_relative "fontisan/models/glyph_outline"
|
|
110
|
-
require_relative "fontisan/models/unicode_mappings"
|
|
111
|
-
require_relative "fontisan/models/variable_font_info"
|
|
112
|
-
require_relative "fontisan/models/optical_size_info"
|
|
113
|
-
require_relative "fontisan/models/scripts_info"
|
|
114
|
-
require_relative "fontisan/models/features_info"
|
|
115
|
-
require_relative "fontisan/models/all_scripts_features_info"
|
|
116
|
-
require_relative "fontisan/models/validation_report"
|
|
117
|
-
require_relative "fontisan/models/font_report"
|
|
118
|
-
require_relative "fontisan/models/collection_validation_report"
|
|
119
|
-
require_relative "fontisan/models/font_export"
|
|
120
|
-
require_relative "fontisan/models/collection_font_summary"
|
|
121
|
-
require_relative "fontisan/models/collection_info"
|
|
122
|
-
require_relative "fontisan/models/collection_brief_info"
|
|
123
|
-
require_relative "fontisan/models/collection_list_info"
|
|
124
|
-
require_relative "fontisan/models/font_summary"
|
|
125
|
-
require_relative "fontisan/models/table_sharing_info"
|
|
126
|
-
require_relative "fontisan/models/color_glyph"
|
|
127
|
-
require_relative "fontisan/models/color_layer"
|
|
128
|
-
require_relative "fontisan/models/color_palette"
|
|
129
|
-
require_relative "fontisan/models/svg_glyph"
|
|
130
|
-
|
|
131
|
-
# Validators infrastructure (NEW - DSL-based framework from Week 2+)
|
|
132
|
-
require_relative "fontisan/validators/validator"
|
|
133
|
-
require_relative "fontisan/validators/basic_validator"
|
|
134
|
-
require_relative "fontisan/validators/font_book_validator"
|
|
135
|
-
require_relative "fontisan/validators/opentype_validator"
|
|
136
|
-
require_relative "fontisan/validators/web_font_validator"
|
|
137
|
-
require_relative "fontisan/validators/profile_loader"
|
|
138
|
-
|
|
139
|
-
# Export infrastructure
|
|
140
|
-
require_relative "fontisan/export/table_serializer"
|
|
141
|
-
require_relative "fontisan/export/ttx_generator"
|
|
142
|
-
require_relative "fontisan/export/ttx_parser"
|
|
143
|
-
require_relative "fontisan/export/exporter"
|
|
144
|
-
|
|
145
|
-
# Validation infrastructure (OLD - commented out for new DSL framework)
|
|
146
|
-
# Week 1 deleted these, Week 2-5 building new DSL-based framework
|
|
147
|
-
# require_relative "fontisan/validation/checks/base_check"
|
|
148
|
-
# require_relative "fontisan/validation/check_registry"
|
|
149
|
-
# require_relative "fontisan/validation/profile"
|
|
150
|
-
# require_relative "fontisan/validation/table_validator"
|
|
151
|
-
# require_relative "fontisan/validation/structure_validator"
|
|
152
|
-
# require_relative "fontisan/validation/consistency_validator"
|
|
153
|
-
# require_relative "fontisan/validation/checksum_validator"
|
|
154
|
-
# require_relative "fontisan/validation/validator"
|
|
155
|
-
|
|
156
|
-
# Subsetting infrastructure
|
|
157
|
-
require_relative "fontisan/subset/options"
|
|
158
|
-
require_relative "fontisan/subset/profile"
|
|
159
|
-
require_relative "fontisan/subset/glyph_mapping"
|
|
160
|
-
require_relative "fontisan/subset/table_subsetter"
|
|
161
|
-
require_relative "fontisan/subset/builder"
|
|
162
|
-
|
|
163
|
-
# Collection infrastructure
|
|
164
|
-
require_relative "fontisan/collection/table_analyzer"
|
|
165
|
-
require_relative "fontisan/collection/table_deduplicator"
|
|
166
|
-
require_relative "fontisan/collection/offset_calculator"
|
|
167
|
-
require_relative "fontisan/collection/writer"
|
|
168
|
-
require_relative "fontisan/collection/builder"
|
|
169
|
-
|
|
170
|
-
# Format conversion infrastructure
|
|
171
|
-
require_relative "fontisan/conversion_options"
|
|
172
|
-
require_relative "fontisan/converters/conversion_strategy"
|
|
173
|
-
require_relative "fontisan/converters/table_copier"
|
|
174
|
-
require_relative "fontisan/converters/outline_converter"
|
|
175
|
-
require_relative "fontisan/converters/format_converter"
|
|
176
|
-
|
|
177
|
-
# Variation infrastructure
|
|
178
|
-
require_relative "fontisan/variation/interpolator"
|
|
179
|
-
require_relative "fontisan/variation/region_matcher"
|
|
180
|
-
require_relative "fontisan/variation/data_extractor"
|
|
181
|
-
require_relative "fontisan/variation/instance_generator"
|
|
182
|
-
require_relative "fontisan/variation/metrics_adjuster"
|
|
183
|
-
require_relative "fontisan/variation/converter"
|
|
184
|
-
require_relative "fontisan/variation/variation_preserver"
|
|
185
|
-
require_relative "fontisan/variation/delta_parser"
|
|
186
|
-
require_relative "fontisan/variation/delta_applier"
|
|
187
|
-
require_relative "fontisan/variation/blend_applier"
|
|
188
|
-
require_relative "fontisan/variation/variable_svg_generator"
|
|
189
|
-
|
|
190
|
-
# Pipeline infrastructure
|
|
191
|
-
require_relative "fontisan/pipeline/format_detector"
|
|
192
|
-
require_relative "fontisan/pipeline/variation_resolver"
|
|
193
|
-
require_relative "fontisan/pipeline/output_writer"
|
|
194
|
-
require_relative "fontisan/pipeline/transformation_pipeline"
|
|
195
|
-
|
|
196
|
-
# Optimization infrastructure
|
|
197
|
-
require_relative "fontisan/optimizers/pattern_analyzer"
|
|
198
|
-
require_relative "fontisan/optimizers/subroutine_builder"
|
|
199
|
-
require_relative "fontisan/optimizers/charstring_rewriter"
|
|
200
|
-
require_relative "fontisan/optimizers/subroutine_optimizer"
|
|
201
|
-
require_relative "fontisan/optimizers/subroutine_generator"
|
|
202
|
-
|
|
203
|
-
# Hints infrastructure
|
|
204
|
-
require_relative "fontisan/models/hint"
|
|
205
|
-
require_relative "fontisan/hints/truetype_instruction_analyzer"
|
|
206
|
-
require_relative "fontisan/hints/truetype_instruction_generator"
|
|
207
|
-
require_relative "fontisan/hints/truetype_hint_extractor"
|
|
208
|
-
require_relative "fontisan/hints/truetype_hint_applier"
|
|
209
|
-
require_relative "fontisan/hints/postscript_hint_extractor"
|
|
210
|
-
require_relative "fontisan/hints/postscript_hint_applier"
|
|
211
|
-
require_relative "fontisan/hints/hint_converter"
|
|
212
|
-
require_relative "fontisan/hints/hint_validator"
|
|
213
|
-
|
|
214
|
-
# Commands
|
|
215
|
-
require_relative "fontisan/commands/base_command"
|
|
216
|
-
require_relative "fontisan/commands/info_command"
|
|
217
|
-
require_relative "fontisan/commands/ls_command"
|
|
218
|
-
require_relative "fontisan/commands/tables_command"
|
|
219
|
-
require_relative "fontisan/commands/glyphs_command"
|
|
220
|
-
require_relative "fontisan/commands/unicode_command"
|
|
221
|
-
require_relative "fontisan/commands/variable_command"
|
|
222
|
-
require_relative "fontisan/commands/optical_size_command"
|
|
223
|
-
require_relative "fontisan/commands/scripts_command"
|
|
224
|
-
require_relative "fontisan/commands/features_command"
|
|
225
|
-
require_relative "fontisan/commands/dump_table_command"
|
|
226
|
-
require_relative "fontisan/commands/subset_command"
|
|
227
|
-
require_relative "fontisan/commands/convert_command"
|
|
228
|
-
require_relative "fontisan/commands/pack_command"
|
|
229
|
-
require_relative "fontisan/commands/unpack_command"
|
|
230
|
-
require_relative "fontisan/commands/validate_command"
|
|
231
|
-
|
|
232
|
-
# Formatters
|
|
233
|
-
require_relative "fontisan/formatters/text_formatter"
|
|
234
|
-
|
|
235
|
-
# CLI
|
|
236
|
-
require_relative "fontisan/cli"
|
|
237
|
-
|
|
238
42
|
module Fontisan
|
|
43
|
+
#
|
|
44
|
+
# Each namespace under Fontisan has a hub file at lib/fontisan/<ns>.rb
|
|
45
|
+
# that declares autoloads for its children. This file autoloads those
|
|
46
|
+
# hubs plus the flat Fontisan::* classes. Files are loaded lazily on
|
|
47
|
+
# first reference.
|
|
48
|
+
|
|
49
|
+
# Core
|
|
50
|
+
require "fontisan/version"
|
|
51
|
+
autoload :Constants, "fontisan/constants"
|
|
52
|
+
autoload :LoadingModes, "fontisan/loading_modes"
|
|
53
|
+
autoload :ConversionOptions, "fontisan/conversion_options"
|
|
54
|
+
|
|
55
|
+
# Errors (all defined in fontisan/error)
|
|
56
|
+
autoload :Error, "fontisan/error"
|
|
57
|
+
autoload :InvalidFontError, "fontisan/error"
|
|
58
|
+
autoload :UnsupportedFormatError, "fontisan/error"
|
|
59
|
+
autoload :CorruptedTableError, "fontisan/error"
|
|
60
|
+
autoload :MissingTableError, "fontisan/error"
|
|
61
|
+
autoload :ParseError, "fontisan/error"
|
|
62
|
+
autoload :SubsettingError, "fontisan/error"
|
|
63
|
+
autoload :VariationError, "fontisan/error"
|
|
64
|
+
autoload :InvalidCoordinatesError, "fontisan/error"
|
|
65
|
+
autoload :MissingVariationTableError, "fontisan/error"
|
|
66
|
+
autoload :InvalidAxisError, "fontisan/error"
|
|
67
|
+
autoload :RegionOverlapError, "fontisan/error"
|
|
68
|
+
autoload :DeltaMismatchError, "fontisan/error"
|
|
69
|
+
autoload :InvalidInstanceIndexError, "fontisan/error"
|
|
70
|
+
autoload :CorruptedVariationDataError, "fontisan/error"
|
|
71
|
+
autoload :InvalidVariationDataError, "fontisan/error"
|
|
72
|
+
autoload :VariationDataCorruptedError, "fontisan/error"
|
|
73
|
+
|
|
74
|
+
# Namespace hubs (each hub declares its own child autoloads)
|
|
75
|
+
autoload :Audit, "fontisan/audit"
|
|
76
|
+
autoload :Binary, "fontisan/binary"
|
|
77
|
+
autoload :Cldr, "fontisan/cldr"
|
|
78
|
+
autoload :Collection, "fontisan/collection"
|
|
79
|
+
autoload :Commands, "fontisan/commands"
|
|
80
|
+
autoload :Converters, "fontisan/converters"
|
|
81
|
+
autoload :Export, "fontisan/export"
|
|
82
|
+
autoload :Formatters, "fontisan/formatters"
|
|
83
|
+
autoload :Hints, "fontisan/hints"
|
|
84
|
+
autoload :Models, "fontisan/models"
|
|
85
|
+
autoload :Optimizers, "fontisan/optimizers"
|
|
86
|
+
autoload :Parsers, "fontisan/parsers"
|
|
87
|
+
autoload :Pipeline, "fontisan/pipeline"
|
|
88
|
+
autoload :Subset, "fontisan/subset"
|
|
89
|
+
autoload :Svg, "fontisan/svg"
|
|
90
|
+
autoload :Tables, "fontisan/tables"
|
|
91
|
+
autoload :Type1, "fontisan/type1"
|
|
92
|
+
autoload :Ucd, "fontisan/ucd"
|
|
93
|
+
autoload :Utilities, "fontisan/utilities"
|
|
94
|
+
autoload :Utils, "fontisan/utils"
|
|
95
|
+
autoload :Validation, "fontisan/validation"
|
|
96
|
+
autoload :Validators, "fontisan/validators"
|
|
97
|
+
autoload :Variable, "fontisan/variable"
|
|
98
|
+
autoload :Variation, "fontisan/variation"
|
|
99
|
+
autoload :Woff2, "fontisan/woff2"
|
|
100
|
+
|
|
101
|
+
# Flat classes (no inner namespace)
|
|
102
|
+
autoload :BaseCollection, "fontisan/base_collection"
|
|
103
|
+
autoload :Cli, "fontisan/cli"
|
|
104
|
+
autoload :DfontCollection, "fontisan/dfont_collection"
|
|
105
|
+
autoload :FontLoader, "fontisan/font_loader"
|
|
106
|
+
autoload :FontWriter, "fontisan/font_writer"
|
|
107
|
+
autoload :GlyphAccessor, "fontisan/glyph_accessor"
|
|
108
|
+
autoload :MetricsCalculator, "fontisan/metrics_calculator"
|
|
109
|
+
autoload :OpenTypeCollection, "fontisan/open_type_collection"
|
|
110
|
+
autoload :OpenTypeFont, "fontisan/open_type_font"
|
|
111
|
+
autoload :OpenTypeFontExtensions, "fontisan/open_type_font_extensions"
|
|
112
|
+
autoload :OutlineExtractor, "fontisan/outline_extractor"
|
|
113
|
+
autoload :SfntFont, "fontisan/sfnt_font"
|
|
114
|
+
autoload :SfntTable, "fontisan/sfnt_table"
|
|
115
|
+
autoload :TrueTypeCollection, "fontisan/true_type_collection"
|
|
116
|
+
autoload :TrueTypeFont, "fontisan/true_type_font"
|
|
117
|
+
autoload :TrueTypeFontExtensions, "fontisan/true_type_font_extensions"
|
|
118
|
+
autoload :Type1Font, "fontisan/type1_font"
|
|
119
|
+
autoload :UcdCli, "fontisan/cli/ucd_cli"
|
|
120
|
+
autoload :CldrCli, "fontisan/cli/cldr_cli"
|
|
121
|
+
autoload :Woff2Font, "fontisan/woff2_font"
|
|
122
|
+
autoload :WoffFont, "fontisan/woff_font"
|
|
123
|
+
|
|
124
|
+
# SFNT offset table and table directory (defined in sfnt_font.rb)
|
|
125
|
+
autoload :OffsetTable, "fontisan/sfnt_font"
|
|
126
|
+
autoload :TableDirectory, "fontisan/sfnt_font"
|
|
127
|
+
|
|
128
|
+
# WOFF headers and table directory entries
|
|
129
|
+
autoload :WoffHeader, "fontisan/woff_font"
|
|
130
|
+
autoload :WoffTableDirectoryEntry, "fontisan/woff_font"
|
|
131
|
+
autoload :Woff2TableDirectoryEntry, "fontisan/woff2_font"
|
|
239
132
|
class << self
|
|
240
133
|
attr_accessor :logger
|
|
241
134
|
|
|
@@ -279,6 +172,41 @@ module Fontisan
|
|
|
279
172
|
Commands::InfoCommand.new(path, brief: brief, font_index: font_index).run
|
|
280
173
|
end
|
|
281
174
|
|
|
175
|
+
# Convert a font to a different format.
|
|
176
|
+
#
|
|
177
|
+
# Delegates to {Commands::ConvertCommand}. Format-specific compression knobs
|
|
178
|
+
# are declared by each strategy (single source of truth) and forwarded
|
|
179
|
+
# through the transformation pipeline.
|
|
180
|
+
#
|
|
181
|
+
# WOFF uses zlib and runs on every browser that supports web fonts (IE9+,
|
|
182
|
+
# all evergreen browsers). WOFF2 uses Brotli for ~30% smaller output but
|
|
183
|
+
# requires modern browsers — use WOFF when legacy support matters.
|
|
184
|
+
#
|
|
185
|
+
# @param path [String] Input font file
|
|
186
|
+
# @param to [Symbol, String] Target format: :ttf, :otf, :type1, :woff,
|
|
187
|
+
# :woff2, :svg, :ttc, :otc, :dfont
|
|
188
|
+
# @param output [String] Output font file path
|
|
189
|
+
# @param opts [Hash] Conversion options. Format-specific knobs:
|
|
190
|
+
# - WOFF: :zlib_level (0–9, default 6), :uncompressed (bool),
|
|
191
|
+
# :compression_threshold (bytes)
|
|
192
|
+
# - WOFF2: :brotli_quality (0–11, default 11), :transform_tables (bool)
|
|
193
|
+
# - Variable fonts: :coordinates, :instance_index, :preserve_variation
|
|
194
|
+
# - Collections: :target_format ("preserve"|"ttf"|"otf")
|
|
195
|
+
# @return [Hash] Result hash with :success, :output_path, source/target
|
|
196
|
+
# format, input/output sizes, and variation strategy.
|
|
197
|
+
#
|
|
198
|
+
# @example TTF → WOFF2 (modern browsers)
|
|
199
|
+
# Fontisan.convert("f.ttf", to: :woff2, output: "f.woff2", brotli_quality: 11)
|
|
200
|
+
#
|
|
201
|
+
# @example TTF → WOFF (legacy browsers, max zlib)
|
|
202
|
+
# Fontisan.convert("f.ttf", to: :woff, output: "f.woff", zlib_level: 9)
|
|
203
|
+
#
|
|
204
|
+
# @example WOFF with no compression (legal per WOFF 1.0 §5.1)
|
|
205
|
+
# Fontisan.convert("f.ttf", to: :woff, output: "f.woff", uncompressed: true)
|
|
206
|
+
def self.convert(path, to:, output:, **)
|
|
207
|
+
Commands::ConvertCommand.new(path, { to: to, output: output, ** }).run
|
|
208
|
+
end
|
|
209
|
+
|
|
282
210
|
# Validate a font file using specified profile
|
|
283
211
|
#
|
|
284
212
|
# Validates fonts against quality checks, structural integrity, and OpenType
|
metadata
CHANGED
|
@@ -1,14 +1,13 @@
|
|
|
1
1
|
--- !ruby/object:Gem::Specification
|
|
2
2
|
name: fontisan
|
|
3
3
|
version: !ruby/object:Gem::Version
|
|
4
|
-
version: 0.2.
|
|
4
|
+
version: 0.2.22
|
|
5
5
|
platform: ruby
|
|
6
6
|
authors:
|
|
7
7
|
- Ribose Inc.
|
|
8
|
-
autorequire:
|
|
9
8
|
bindir: exe
|
|
10
9
|
cert_chain: []
|
|
11
|
-
date:
|
|
10
|
+
date: 1980-01-02 00:00:00.000000000 Z
|
|
12
11
|
dependencies:
|
|
13
12
|
- !ruby/object:Gem::Dependency
|
|
14
13
|
name: base64
|
|
@@ -52,6 +51,20 @@ dependencies:
|
|
|
52
51
|
- - "~>"
|
|
53
52
|
- !ruby/object:Gem::Version
|
|
54
53
|
version: '0.5'
|
|
54
|
+
- !ruby/object:Gem::Dependency
|
|
55
|
+
name: logger
|
|
56
|
+
requirement: !ruby/object:Gem::Requirement
|
|
57
|
+
requirements:
|
|
58
|
+
- - ">="
|
|
59
|
+
- !ruby/object:Gem::Version
|
|
60
|
+
version: '0'
|
|
61
|
+
type: :runtime
|
|
62
|
+
prerelease: false
|
|
63
|
+
version_requirements: !ruby/object:Gem::Requirement
|
|
64
|
+
requirements:
|
|
65
|
+
- - ">="
|
|
66
|
+
- !ruby/object:Gem::Version
|
|
67
|
+
version: '0'
|
|
55
68
|
- !ruby/object:Gem::Dependency
|
|
56
69
|
name: lutaml-model
|
|
57
70
|
requirement: !ruby/object:Gem::Requirement
|
|
@@ -151,6 +164,7 @@ files:
|
|
|
151
164
|
- docs/api/validators/font-validator.md
|
|
152
165
|
- docs/api/validators/helper.md
|
|
153
166
|
- docs/api/validators/profile.md
|
|
167
|
+
- docs/cli/audit.md
|
|
154
168
|
- docs/cli/convert.md
|
|
155
169
|
- docs/cli/dump-table.md
|
|
156
170
|
- docs/cli/export.md
|
|
@@ -242,16 +256,55 @@ files:
|
|
|
242
256
|
- docs/public/favicon.svg
|
|
243
257
|
- docs/public/logo-full.svg
|
|
244
258
|
- docs/public/logo.svg
|
|
259
|
+
- docs/public/robots.txt
|
|
245
260
|
- docs/public/site.webmanifest
|
|
246
261
|
- docs/public/web-app-manifest-192x192.png
|
|
247
262
|
- docs/public/web-app-manifest-512x512.png
|
|
263
|
+
- docs/scripts/post-build.mjs
|
|
248
264
|
- exe/fontisan
|
|
249
|
-
- fontisan.gemspec
|
|
250
265
|
- lib/fontisan.rb
|
|
266
|
+
- lib/fontisan/audit.rb
|
|
267
|
+
- lib/fontisan/audit/codepoint_range_coalescer.rb
|
|
268
|
+
- lib/fontisan/audit/context.rb
|
|
269
|
+
- lib/fontisan/audit/differ.rb
|
|
270
|
+
- lib/fontisan/audit/extractors.rb
|
|
271
|
+
- lib/fontisan/audit/extractors/aggregations.rb
|
|
272
|
+
- lib/fontisan/audit/extractors/base.rb
|
|
273
|
+
- lib/fontisan/audit/extractors/color_capabilities.rb
|
|
274
|
+
- lib/fontisan/audit/extractors/coverage.rb
|
|
275
|
+
- lib/fontisan/audit/extractors/hinting.rb
|
|
276
|
+
- lib/fontisan/audit/extractors/identity.rb
|
|
277
|
+
- lib/fontisan/audit/extractors/language_coverage.rb
|
|
278
|
+
- lib/fontisan/audit/extractors/licensing.rb
|
|
279
|
+
- lib/fontisan/audit/extractors/metrics.rb
|
|
280
|
+
- lib/fontisan/audit/extractors/opentype_layout.rb
|
|
281
|
+
- lib/fontisan/audit/extractors/provenance.rb
|
|
282
|
+
- lib/fontisan/audit/extractors/style.rb
|
|
283
|
+
- lib/fontisan/audit/extractors/variation_detail.rb
|
|
284
|
+
- lib/fontisan/audit/library_aggregator.rb
|
|
285
|
+
- lib/fontisan/audit/library_auditor.rb
|
|
286
|
+
- lib/fontisan/audit/registry.rb
|
|
287
|
+
- lib/fontisan/audit/style_extractor.rb
|
|
251
288
|
- lib/fontisan/base_collection.rb
|
|
289
|
+
- lib/fontisan/binary.rb
|
|
252
290
|
- lib/fontisan/binary/base_record.rb
|
|
253
291
|
- lib/fontisan/binary/structures.rb
|
|
292
|
+
- lib/fontisan/cldr.rb
|
|
293
|
+
- lib/fontisan/cldr/aggregator.rb
|
|
294
|
+
- lib/fontisan/cldr/cache_manager.rb
|
|
295
|
+
- lib/fontisan/cldr/config.rb
|
|
296
|
+
- lib/fontisan/cldr/download_error.rb
|
|
297
|
+
- lib/fontisan/cldr/downloader.rb
|
|
298
|
+
- lib/fontisan/cldr/error.rb
|
|
299
|
+
- lib/fontisan/cldr/index.rb
|
|
300
|
+
- lib/fontisan/cldr/index_builder.rb
|
|
301
|
+
- lib/fontisan/cldr/unicode_set_parser.rb
|
|
302
|
+
- lib/fontisan/cldr/unknown_version_error.rb
|
|
303
|
+
- lib/fontisan/cldr/version_resolver.rb
|
|
254
304
|
- lib/fontisan/cli.rb
|
|
305
|
+
- lib/fontisan/cli/cldr_cli.rb
|
|
306
|
+
- lib/fontisan/cli/ucd_cli.rb
|
|
307
|
+
- lib/fontisan/collection.rb
|
|
255
308
|
- lib/fontisan/collection/builder.rb
|
|
256
309
|
- lib/fontisan/collection/dfont_builder.rb
|
|
257
310
|
- lib/fontisan/collection/offset_calculator.rb
|
|
@@ -259,6 +312,10 @@ files:
|
|
|
259
312
|
- lib/fontisan/collection/table_analyzer.rb
|
|
260
313
|
- lib/fontisan/collection/table_deduplicator.rb
|
|
261
314
|
- lib/fontisan/collection/writer.rb
|
|
315
|
+
- lib/fontisan/commands.rb
|
|
316
|
+
- lib/fontisan/commands/audit_command.rb
|
|
317
|
+
- lib/fontisan/commands/audit_compare_command.rb
|
|
318
|
+
- lib/fontisan/commands/audit_library_command.rb
|
|
262
319
|
- lib/fontisan/commands/base_command.rb
|
|
263
320
|
- lib/fontisan/commands/convert_command.rb
|
|
264
321
|
- lib/fontisan/commands/dump_table_command.rb
|
|
@@ -277,6 +334,7 @@ files:
|
|
|
277
334
|
- lib/fontisan/commands/unpack_command.rb
|
|
278
335
|
- lib/fontisan/commands/validate_command.rb
|
|
279
336
|
- lib/fontisan/commands/variable_command.rb
|
|
337
|
+
- lib/fontisan/config/cldr.yml
|
|
280
338
|
- lib/fontisan/config/collection_settings.yml
|
|
281
339
|
- lib/fontisan/config/conversion_matrix.yml
|
|
282
340
|
- lib/fontisan/config/export_settings.yml
|
|
@@ -284,10 +342,12 @@ files:
|
|
|
284
342
|
- lib/fontisan/config/scripts.yml
|
|
285
343
|
- lib/fontisan/config/subset_profiles.yml
|
|
286
344
|
- lib/fontisan/config/svg_settings.yml
|
|
345
|
+
- lib/fontisan/config/ucd.yml
|
|
287
346
|
- lib/fontisan/config/variable_settings.yml
|
|
288
347
|
- lib/fontisan/config/woff2_settings.yml
|
|
289
348
|
- lib/fontisan/constants.rb
|
|
290
349
|
- lib/fontisan/conversion_options.rb
|
|
350
|
+
- lib/fontisan/converters.rb
|
|
291
351
|
- lib/fontisan/converters/cff_table_builder.rb
|
|
292
352
|
- lib/fontisan/converters/collection_converter.rb
|
|
293
353
|
- lib/fontisan/converters/conversion_strategy.rb
|
|
@@ -303,8 +363,10 @@ files:
|
|
|
303
363
|
- lib/fontisan/converters/woff_writer.rb
|
|
304
364
|
- lib/fontisan/dfont_collection.rb
|
|
305
365
|
- lib/fontisan/error.rb
|
|
366
|
+
- lib/fontisan/export.rb
|
|
306
367
|
- lib/fontisan/export/exporter.rb
|
|
307
368
|
- lib/fontisan/export/table_serializer.rb
|
|
369
|
+
- lib/fontisan/export/transformers.rb
|
|
308
370
|
- lib/fontisan/export/transformers/font_to_ttx.rb
|
|
309
371
|
- lib/fontisan/export/transformers/head_transformer.rb
|
|
310
372
|
- lib/fontisan/export/transformers/hhea_transformer.rb
|
|
@@ -316,8 +378,13 @@ files:
|
|
|
316
378
|
- lib/fontisan/export/ttx_parser.rb
|
|
317
379
|
- lib/fontisan/font_loader.rb
|
|
318
380
|
- lib/fontisan/font_writer.rb
|
|
381
|
+
- lib/fontisan/formatters.rb
|
|
382
|
+
- lib/fontisan/formatters/audit_diff_text_renderer.rb
|
|
383
|
+
- lib/fontisan/formatters/audit_text_renderer.rb
|
|
384
|
+
- lib/fontisan/formatters/library_summary_text_renderer.rb
|
|
319
385
|
- lib/fontisan/formatters/text_formatter.rb
|
|
320
386
|
- lib/fontisan/glyph_accessor.rb
|
|
387
|
+
- lib/fontisan/hints.rb
|
|
321
388
|
- lib/fontisan/hints/hint_converter.rb
|
|
322
389
|
- lib/fontisan/hints/hint_validator.rb
|
|
323
390
|
- lib/fontisan/hints/postscript_hint_applier.rb
|
|
@@ -328,9 +395,34 @@ files:
|
|
|
328
395
|
- lib/fontisan/hints/truetype_instruction_generator.rb
|
|
329
396
|
- lib/fontisan/loading_modes.rb
|
|
330
397
|
- lib/fontisan/metrics_calculator.rb
|
|
398
|
+
- lib/fontisan/models.rb
|
|
331
399
|
- lib/fontisan/models/all_scripts_features_info.rb
|
|
400
|
+
- lib/fontisan/models/audit.rb
|
|
401
|
+
- lib/fontisan/models/audit/audit_axis.rb
|
|
402
|
+
- lib/fontisan/models/audit/audit_block.rb
|
|
403
|
+
- lib/fontisan/models/audit/audit_diff.rb
|
|
404
|
+
- lib/fontisan/models/audit/audit_report.rb
|
|
405
|
+
- lib/fontisan/models/audit/codepoint_range.rb
|
|
406
|
+
- lib/fontisan/models/audit/codepoint_set_diff.rb
|
|
407
|
+
- lib/fontisan/models/audit/color_capabilities.rb
|
|
408
|
+
- lib/fontisan/models/audit/duplicate_group.rb
|
|
409
|
+
- lib/fontisan/models/audit/embedding_type.rb
|
|
410
|
+
- lib/fontisan/models/audit/field_change.rb
|
|
411
|
+
- lib/fontisan/models/audit/fs_selection_flags.rb
|
|
412
|
+
- lib/fontisan/models/audit/gasp_range.rb
|
|
413
|
+
- lib/fontisan/models/audit/hinting.rb
|
|
414
|
+
- lib/fontisan/models/audit/library_summary.rb
|
|
415
|
+
- lib/fontisan/models/audit/licensing.rb
|
|
416
|
+
- lib/fontisan/models/audit/metrics.rb
|
|
417
|
+
- lib/fontisan/models/audit/named_instance.rb
|
|
418
|
+
- lib/fontisan/models/audit/opentype_layout.rb
|
|
419
|
+
- lib/fontisan/models/audit/script_coverage_row.rb
|
|
420
|
+
- lib/fontisan/models/audit/script_features.rb
|
|
421
|
+
- lib/fontisan/models/audit/variation_detail.rb
|
|
332
422
|
- lib/fontisan/models/bitmap_glyph.rb
|
|
333
423
|
- lib/fontisan/models/bitmap_strike.rb
|
|
424
|
+
- lib/fontisan/models/cldr.rb
|
|
425
|
+
- lib/fontisan/models/cldr/language_coverage.rb
|
|
334
426
|
- lib/fontisan/models/collection_brief_info.rb
|
|
335
427
|
- lib/fontisan/models/collection_font_summary.rb
|
|
336
428
|
- lib/fontisan/models/collection_info.rb
|
|
@@ -353,7 +445,9 @@ files:
|
|
|
353
445
|
- lib/fontisan/models/svg_glyph.rb
|
|
354
446
|
- lib/fontisan/models/table_info.rb
|
|
355
447
|
- lib/fontisan/models/table_sharing_info.rb
|
|
448
|
+
- lib/fontisan/models/ttx.rb
|
|
356
449
|
- lib/fontisan/models/ttx/glyph_order.rb
|
|
450
|
+
- lib/fontisan/models/ttx/tables.rb
|
|
357
451
|
- lib/fontisan/models/ttx/tables/binary_table.rb
|
|
358
452
|
- lib/fontisan/models/ttx/tables/head_table.rb
|
|
359
453
|
- lib/fontisan/models/ttx/tables/hhea_table.rb
|
|
@@ -362,12 +456,16 @@ files:
|
|
|
362
456
|
- lib/fontisan/models/ttx/tables/os2_table.rb
|
|
363
457
|
- lib/fontisan/models/ttx/tables/post_table.rb
|
|
364
458
|
- lib/fontisan/models/ttx/ttfont.rb
|
|
459
|
+
- lib/fontisan/models/ucd.rb
|
|
460
|
+
- lib/fontisan/models/ucd/ucd.rb
|
|
461
|
+
- lib/fontisan/models/ucd/ucd_char.rb
|
|
365
462
|
- lib/fontisan/models/unicode_mappings.rb
|
|
366
463
|
- lib/fontisan/models/validation_report.rb
|
|
367
464
|
- lib/fontisan/models/variable_font_info.rb
|
|
368
465
|
- lib/fontisan/open_type_collection.rb
|
|
369
466
|
- lib/fontisan/open_type_font.rb
|
|
370
467
|
- lib/fontisan/open_type_font_extensions.rb
|
|
468
|
+
- lib/fontisan/optimizers.rb
|
|
371
469
|
- lib/fontisan/optimizers/charstring_rewriter.rb
|
|
372
470
|
- lib/fontisan/optimizers/pattern_analyzer.rb
|
|
373
471
|
- lib/fontisan/optimizers/stack_tracker.rb
|
|
@@ -375,10 +473,13 @@ files:
|
|
|
375
473
|
- lib/fontisan/optimizers/subroutine_generator.rb
|
|
376
474
|
- lib/fontisan/optimizers/subroutine_optimizer.rb
|
|
377
475
|
- lib/fontisan/outline_extractor.rb
|
|
476
|
+
- lib/fontisan/parsers.rb
|
|
378
477
|
- lib/fontisan/parsers/dfont_parser.rb
|
|
379
478
|
- lib/fontisan/parsers/tag.rb
|
|
479
|
+
- lib/fontisan/pipeline.rb
|
|
380
480
|
- lib/fontisan/pipeline/format_detector.rb
|
|
381
481
|
- lib/fontisan/pipeline/output_writer.rb
|
|
482
|
+
- lib/fontisan/pipeline/strategies.rb
|
|
382
483
|
- lib/fontisan/pipeline/strategies/base_strategy.rb
|
|
383
484
|
- lib/fontisan/pipeline/strategies/instance_strategy.rb
|
|
384
485
|
- lib/fontisan/pipeline/strategies/named_strategy.rb
|
|
@@ -387,15 +488,18 @@ files:
|
|
|
387
488
|
- lib/fontisan/pipeline/variation_resolver.rb
|
|
388
489
|
- lib/fontisan/sfnt_font.rb
|
|
389
490
|
- lib/fontisan/sfnt_table.rb
|
|
491
|
+
- lib/fontisan/subset.rb
|
|
390
492
|
- lib/fontisan/subset/builder.rb
|
|
391
493
|
- lib/fontisan/subset/glyph_mapping.rb
|
|
392
494
|
- lib/fontisan/subset/options.rb
|
|
393
495
|
- lib/fontisan/subset/profile.rb
|
|
394
496
|
- lib/fontisan/subset/table_subsetter.rb
|
|
497
|
+
- lib/fontisan/svg.rb
|
|
395
498
|
- lib/fontisan/svg/font_face_generator.rb
|
|
396
499
|
- lib/fontisan/svg/font_generator.rb
|
|
397
500
|
- lib/fontisan/svg/glyph_generator.rb
|
|
398
501
|
- lib/fontisan/svg/view_box_calculator.rb
|
|
502
|
+
- lib/fontisan/tables.rb
|
|
399
503
|
- lib/fontisan/tables/cbdt.rb
|
|
400
504
|
- lib/fontisan/tables/cblc.rb
|
|
401
505
|
- lib/fontisan/tables/cff.rb
|
|
@@ -493,16 +597,33 @@ files:
|
|
|
493
597
|
- lib/fontisan/type1/ttf_to_type1_converter.rb
|
|
494
598
|
- lib/fontisan/type1/upm_scaler.rb
|
|
495
599
|
- lib/fontisan/type1_font.rb
|
|
600
|
+
- lib/fontisan/ucd.rb
|
|
601
|
+
- lib/fontisan/ucd/aggregator.rb
|
|
602
|
+
- lib/fontisan/ucd/cache_manager.rb
|
|
603
|
+
- lib/fontisan/ucd/config.rb
|
|
604
|
+
- lib/fontisan/ucd/download_error.rb
|
|
605
|
+
- lib/fontisan/ucd/downloader.rb
|
|
606
|
+
- lib/fontisan/ucd/error.rb
|
|
607
|
+
- lib/fontisan/ucd/index.rb
|
|
608
|
+
- lib/fontisan/ucd/index_builder.rb
|
|
609
|
+
- lib/fontisan/ucd/range_entry.rb
|
|
610
|
+
- lib/fontisan/ucd/unknown_version_error.rb
|
|
611
|
+
- lib/fontisan/ucd/version_resolver.rb
|
|
612
|
+
- lib/fontisan/utilities.rb
|
|
496
613
|
- lib/fontisan/utilities/brotli_wrapper.rb
|
|
497
614
|
- lib/fontisan/utilities/checksum_calculator.rb
|
|
615
|
+
- lib/fontisan/utils.rb
|
|
498
616
|
- lib/fontisan/utils/thread_pool.rb
|
|
617
|
+
- lib/fontisan/validation.rb
|
|
499
618
|
- lib/fontisan/validation/collection_validator.rb
|
|
619
|
+
- lib/fontisan/validators.rb
|
|
500
620
|
- lib/fontisan/validators/basic_validator.rb
|
|
501
621
|
- lib/fontisan/validators/font_book_validator.rb
|
|
502
622
|
- lib/fontisan/validators/opentype_validator.rb
|
|
503
623
|
- lib/fontisan/validators/profile_loader.rb
|
|
504
624
|
- lib/fontisan/validators/validator.rb
|
|
505
625
|
- lib/fontisan/validators/web_font_validator.rb
|
|
626
|
+
- lib/fontisan/variable.rb
|
|
506
627
|
- lib/fontisan/variable/axis_normalizer.rb
|
|
507
628
|
- lib/fontisan/variable/delta_applicator.rb
|
|
508
629
|
- lib/fontisan/variable/glyph_delta_processor.rb
|
|
@@ -511,6 +632,7 @@ files:
|
|
|
511
632
|
- lib/fontisan/variable/region_matcher.rb
|
|
512
633
|
- lib/fontisan/variable/static_font_builder.rb
|
|
513
634
|
- lib/fontisan/variable/table_updater.rb
|
|
635
|
+
- lib/fontisan/variation.rb
|
|
514
636
|
- lib/fontisan/variation/blend_applier.rb
|
|
515
637
|
- lib/fontisan/variation/cache.rb
|
|
516
638
|
- lib/fontisan/variation/cache_key_builder.rb
|
|
@@ -535,6 +657,7 @@ files:
|
|
|
535
657
|
- lib/fontisan/variation/variation_preserver.rb
|
|
536
658
|
- lib/fontisan/version.rb
|
|
537
659
|
- lib/fontisan/version.rb.orig
|
|
660
|
+
- lib/fontisan/woff2.rb
|
|
538
661
|
- lib/fontisan/woff2/directory.rb
|
|
539
662
|
- lib/fontisan/woff2/glyf_transformer.rb
|
|
540
663
|
- lib/fontisan/woff2/header.rb
|
|
@@ -552,7 +675,6 @@ metadata:
|
|
|
552
675
|
source_code_uri: https://github.com/fontist/fontisan
|
|
553
676
|
changelog_uri: https://github.com/fontist/fontisan/blob/main/CHANGELOG.md
|
|
554
677
|
rubygems_mfa_required: 'true'
|
|
555
|
-
post_install_message:
|
|
556
678
|
rdoc_options: []
|
|
557
679
|
require_paths:
|
|
558
680
|
- lib
|
|
@@ -567,8 +689,7 @@ required_rubygems_version: !ruby/object:Gem::Requirement
|
|
|
567
689
|
- !ruby/object:Gem::Version
|
|
568
690
|
version: '0'
|
|
569
691
|
requirements: []
|
|
570
|
-
rubygems_version: 3.
|
|
571
|
-
signing_key:
|
|
692
|
+
rubygems_version: 3.6.9
|
|
572
693
|
specification_version: 4
|
|
573
694
|
summary: Font analysis tools and utilities for OpenType fonts
|
|
574
695
|
test_files: []
|