Module: Fontisan
- Defined in:
- lib/fontisan/svg.rb,
lib/fontisan.rb,
lib/fontisan/cli.rb,
lib/fontisan/cldr.rb,
lib/fontisan/error.rb,
lib/fontisan/hints.rb,
lib/fontisan/type1.rb,
lib/fontisan/utils.rb,
lib/fontisan/woff2.rb,
lib/fontisan/binary.rb,
lib/fontisan/export.rb,
lib/fontisan/models.rb,
lib/fontisan/subset.rb,
lib/fontisan/tables.rb,
lib/fontisan/parsers.rb,
lib/fontisan/version.rb,
lib/fontisan/commands.rb,
lib/fontisan/pipeline.rb,
lib/fontisan/variable.rb,
lib/fontisan/constants.rb,
lib/fontisan/sfnt_font.rb,
lib/fontisan/type1/agl.rb,
lib/fontisan/utilities.rb,
lib/fontisan/variation.rb,
lib/fontisan/woff_font.rb,
lib/fontisan/cldr/error.rb,
lib/fontisan/cldr/index.rb,
lib/fontisan/collection.rb,
lib/fontisan/converters.rb,
lib/fontisan/formatters.rb,
lib/fontisan/models/ttx.rb,
lib/fontisan/optimizers.rb,
lib/fontisan/sfnt_table.rb,
lib/fontisan/tables/cff.rb,
lib/fontisan/tables/os2.rb,
lib/fontisan/tables/svg.rb,
lib/fontisan/type1_font.rb,
lib/fontisan/validation.rb,
lib/fontisan/validators.rb,
lib/fontisan/woff2_font.rb,
lib/fontisan/cldr/config.rb,
lib/fontisan/font_loader.rb,
lib/fontisan/font_writer.rb,
lib/fontisan/models/cldr.rb,
lib/fontisan/models/hint.rb,
lib/fontisan/parsers/tag.rb,
lib/fontisan/tables/cbdt.rb,
lib/fontisan/tables/cblc.rb,
lib/fontisan/tables/cff2.rb,
lib/fontisan/tables/cmap.rb,
lib/fontisan/tables/colr.rb,
lib/fontisan/tables/cpal.rb,
lib/fontisan/tables/cvar.rb,
lib/fontisan/tables/fvar.rb,
lib/fontisan/tables/glyf.rb,
lib/fontisan/tables/gpos.rb,
lib/fontisan/tables/gsub.rb,
lib/fontisan/tables/gvar.rb,
lib/fontisan/tables/head.rb,
lib/fontisan/tables/hhea.rb,
lib/fontisan/tables/hmtx.rb,
lib/fontisan/tables/hvar.rb,
lib/fontisan/tables/loca.rb,
lib/fontisan/tables/maxp.rb,
lib/fontisan/tables/mvar.rb,
lib/fontisan/tables/name.rb,
lib/fontisan/tables/post.rb,
lib/fontisan/tables/sbix.rb,
lib/fontisan/tables/vvar.rb,
lib/fontisan/cli/cldr_cli.rb,
lib/fontisan/woff2/header.rb,
lib/fontisan/loading_modes.rb,
lib/fontisan/glyph_accessor.rb,
lib/fontisan/models/outline.rb,
lib/fontisan/open_type_font.rb,
lib/fontisan/subset/builder.rb,
lib/fontisan/subset/options.rb,
lib/fontisan/subset/profile.rb,
lib/fontisan/true_type_font.rb,
lib/fontisan/base_collection.rb,
lib/fontisan/cldr/aggregator.rb,
lib/fontisan/cldr/downloader.rb,
lib/fontisan/export/exporter.rb,
lib/fontisan/tables/cff/dict.rb,
lib/fontisan/type1/decryptor.rb,
lib/fontisan/type1/encodings.rb,
lib/fontisan/type1/generator.rb,
lib/fontisan/variation/cache.rb,
lib/fontisan/woff2/directory.rb,
lib/fontisan/dfont_collection.rb,
lib/fontisan/models/font_info.rb,
lib/fontisan/models/svg_glyph.rb,
lib/fontisan/tables/cff/index.rb,
lib/fontisan/tables/os2_table.rb,
lib/fontisan/type1/afm_parser.rb,
lib/fontisan/type1/pfa_parser.rb,
lib/fontisan/type1/pfb_parser.rb,
lib/fontisan/type1/pfm_parser.rb,
lib/fontisan/type1/upm_scaler.rb,
lib/fontisan/binary/structures.rb,
lib/fontisan/collection/writer.rb,
lib/fontisan/export/ttx_parser.rb,
lib/fontisan/models/glyph_info.rb,
lib/fontisan/models/table_info.rb,
lib/fontisan/models/ttx/tables.rb,
lib/fontisan/models/ttx/ttfont.rb,
lib/fontisan/outline_extractor.rb,
lib/fontisan/tables/cff/header.rb,
lib/fontisan/tables/cmap_table.rb,
lib/fontisan/tables/glyf_table.rb,
lib/fontisan/tables/head_table.rb,
lib/fontisan/tables/hhea_table.rb,
lib/fontisan/tables/hmtx_table.rb,
lib/fontisan/tables/loca_table.rb,
lib/fontisan/tables/maxp_table.rb,
lib/fontisan/tables/name_table.rb,
lib/fontisan/tables/post_table.rb,
lib/fontisan/type1/charstrings.rb,
lib/fontisan/utils/thread_pool.rb,
lib/fontisan/binary/base_record.rb,
lib/fontisan/cldr/cache_manager.rb,
lib/fontisan/cldr/index_builder.rb,
lib/fontisan/collection/builder.rb,
lib/fontisan/conversion_options.rb,
lib/fontisan/metrics_calculator.rb,
lib/fontisan/models/color_glyph.rb,
lib/fontisan/models/color_layer.rb,
lib/fontisan/models/font_export.rb,
lib/fontisan/models/font_report.rb,
lib/fontisan/svg/font_generator.rb,
lib/fontisan/tables/cff/charset.rb,
lib/fontisan/type1/private_dict.rb,
lib/fontisan/variable/instancer.rb,
lib/fontisan/cldr/download_error.rb,
lib/fontisan/commands/ls_command.rb,
lib/fontisan/export/transformers.rb,
lib/fontisan/models/bitmap_glyph.rb,
lib/fontisan/models/font_summary.rb,
lib/fontisan/models/scripts_info.rb,
lib/fontisan/pipeline/strategies.rb,
lib/fontisan/svg/glyph_generator.rb,
lib/fontisan/tables/cff/encoding.rb,
lib/fontisan/tables/cff/top_dict.rb,
lib/fontisan/type1/afm_generator.rb,
lib/fontisan/type1/inf_generator.rb,
lib/fontisan/type1/pfa_generator.rb,
lib/fontisan/type1/pfb_generator.rb,
lib/fontisan/type1/pfm_generator.rb,
lib/fontisan/type1/seac_expander.rb,
lib/fontisan/variation/converter.rb,
lib/fontisan/variation/inspector.rb,
lib/fontisan/variation/optimizer.rb,
lib/fontisan/variation/subsetter.rb,
lib/fontisan/variation/validator.rb,
lib/fontisan/export/ttx_generator.rb,
lib/fontisan/hints/hint_converter.rb,
lib/fontisan/hints/hint_validator.rb,
lib/fontisan/models/bitmap_strike.rb,
lib/fontisan/models/color_palette.rb,
lib/fontisan/models/features_info.rb,
lib/fontisan/models/glyph_outline.rb,
lib/fontisan/open_type_collection.rb,
lib/fontisan/parsers/dfont_parser.rb,
lib/fontisan/subset/glyph_mapping.rb,
lib/fontisan/tables/cff/cff_glyph.rb,
lib/fontisan/tables/layout_common.rb,
lib/fontisan/true_type_collection.rb,
lib/fontisan/validators/validator.rb,
lib/fontisan/cldr/version_resolver.rb,
lib/fontisan/commands/base_command.rb,
lib/fontisan/commands/info_command.rb,
lib/fontisan/commands/pack_command.rb,
lib/fontisan/tables/cff/charstring.rb,
lib/fontisan/type1/font_dictionary.rb,
lib/fontisan/converters/woff_writer.rb,
lib/fontisan/models/collection_info.rb,
lib/fontisan/models/ttx/glyph_order.rb,
lib/fontisan/pipeline/output_writer.rb,
lib/fontisan/subset/table_subsetter.rb,
lib/fontisan/variable/table_updater.rb,
lib/fontisan/variation/delta_parser.rb,
lib/fontisan/variation/interpolator.rb,
lib/fontisan/woff2/glyf_transformer.rb,
lib/fontisan/woff2/hmtx_transformer.rb,
lib/fontisan/cldr/unicode_set_parser.rb,
lib/fontisan/collection/shared_logic.rb,
lib/fontisan/commands/export_command.rb,
lib/fontisan/commands/glyphs_command.rb,
lib/fontisan/commands/subset_command.rb,
lib/fontisan/commands/tables_command.rb,
lib/fontisan/commands/unpack_command.rb,
lib/fontisan/converters/table_copier.rb,
lib/fontisan/export/table_serializer.rb,
lib/fontisan/models/unicode_mappings.rb,
lib/fontisan/svg/font_face_generator.rb,
lib/fontisan/svg/view_box_calculator.rb,
lib/fontisan/tables/cff/dict_builder.rb,
lib/fontisan/tables/cff/private_dict.rb,
lib/fontisan/tables/variation_common.rb,
lib/fontisan/variable/region_matcher.rb,
lib/fontisan/variation/blend_applier.rb,
lib/fontisan/variation/delta_applier.rb,
lib/fontisan/woff2/table_transformer.rb,
lib/fontisan/collection/dfont_builder.rb,
lib/fontisan/commands/convert_command.rb,
lib/fontisan/commands/scripts_command.rb,
lib/fontisan/commands/unicode_command.rb,
lib/fontisan/converters/svg_generator.rb,
lib/fontisan/converters/woff2_encoder.rb,
lib/fontisan/models/optical_size_info.rb,
lib/fontisan/models/validation_report.rb,
lib/fontisan/optimizers/stack_tracker.rb,
lib/fontisan/pipeline/format_detector.rb,
lib/fontisan/tables/cff/index_builder.rb,
lib/fontisan/tables/cff/table_builder.rb,
lib/fontisan/tables/cff2/table_reader.rb,
lib/fontisan/tables/glyf/simple_glyph.rb,
lib/fontisan/type1/conversion_options.rb,
lib/fontisan/utilities/brotli_wrapper.rb,
lib/fontisan/variable/axis_normalizer.rb,
lib/fontisan/variation/data_extractor.rb,
lib/fontisan/variation/region_matcher.rb,
lib/fontisan/variation/table_accessor.rb,
lib/fontisan/collection/table_analyzer.rb,
lib/fontisan/commands/features_command.rb,
lib/fontisan/commands/instance_command.rb,
lib/fontisan/commands/validate_command.rb,
lib/fontisan/commands/variable_command.rb,
lib/fontisan/formatters/text_formatter.rb,
lib/fontisan/models/table_sharing_info.rb,
lib/fontisan/models/variable_font_info.rb,
lib/fontisan/open_type_font_extensions.rb,
lib/fontisan/tables/cff2/operand_stack.rb,
lib/fontisan/tables/cff2/table_builder.rb,
lib/fontisan/tables/glyf/glyph_builder.rb,
lib/fontisan/true_type_font_extensions.rb,
lib/fontisan/validators/profile_loader.rb,
lib/fontisan/variable/delta_applicator.rb,
lib/fontisan/variation/instance_writer.rb,
lib/fontisan/cldr/unknown_version_error.rb,
lib/fontisan/converters/type1_converter.rb,
lib/fontisan/tables/cff2/blend_operator.rb,
lib/fontisan/tables/cff2/region_matcher.rb,
lib/fontisan/tables/glyf/compound_glyph.rb,
lib/fontisan/type1/charstring_converter.rb,
lib/fontisan/validators/basic_validator.rb,
lib/fontisan/variation/metrics_adjuster.rb,
lib/fontisan/commands/dump_table_command.rb,
lib/fontisan/converters/format_converter.rb,
lib/fontisan/hints/truetype_hint_applier.rb,
lib/fontisan/models/collection_list_info.rb,
lib/fontisan/models/ttx/tables/os2_table.rb,
lib/fontisan/optimizers/pattern_analyzer.rb,
lib/fontisan/pipeline/variation_resolver.rb,
lib/fontisan/tables/glyf/curve_converter.rb,
lib/fontisan/variation/cache_key_builder.rb,
lib/fontisan/variation/variation_context.rb,
lib/fontisan/collection/offset_calculator.rb,
lib/fontisan/converters/cff_table_builder.rb,
lib/fontisan/converters/outline_converter.rb,
lib/fontisan/converters/outline_optimizer.rb,
lib/fontisan/models/collection_brief_info.rb,
lib/fontisan/models/ttx/tables/head_table.rb,
lib/fontisan/models/ttx/tables/hhea_table.rb,
lib/fontisan/models/ttx/tables/maxp_table.rb,
lib/fontisan/models/ttx/tables/name_table.rb,
lib/fontisan/models/ttx/tables/post_table.rb,
lib/fontisan/tables/cff/charstring_parser.rb,
lib/fontisan/tables/cff/charstrings_index.rb,
lib/fontisan/type1/cff_to_type1_converter.rb,
lib/fontisan/type1/ttf_to_type1_converter.rb,
lib/fontisan/variable/static_font_builder.rb,
lib/fontisan/variation/instance_generator.rb,
lib/fontisan/variation/parallel_generator.rb,
lib/fontisan/collection/table_deduplicator.rb,
lib/fontisan/commands/optical_size_command.rb,
lib/fontisan/converters/glyf_table_builder.rb,
lib/fontisan/converters/outline_extraction.rb,
lib/fontisan/hints/postscript_hint_applier.rb,
lib/fontisan/hints/truetype_hint_extractor.rb,
lib/fontisan/models/cldr/language_coverage.rb,
lib/fontisan/optimizers/subroutine_builder.rb,
lib/fontisan/tables/cff/charstring_builder.rb,
lib/fontisan/tables/cff2/charstring_parser.rb,
lib/fontisan/utilities/checksum_calculator.rb,
lib/fontisan/validators/opentype_validator.rb,
lib/fontisan/validators/web_font_validator.rb,
lib/fontisan/variation/variation_preserver.rb,
lib/fontisan/converters/conversion_strategy.rb,
lib/fontisan/models/collection_font_summary.rb,
lib/fontisan/models/ttx/tables/binary_table.rb,
lib/fontisan/optimizers/charstring_rewriter.rb,
lib/fontisan/tables/cff/offset_recalculator.rb,
lib/fontisan/tables/cff/private_dict_writer.rb,
lib/fontisan/validators/font_book_validator.rb,
lib/fontisan/variable/glyph_delta_processor.rb,
lib/fontisan/converters/collection_converter.rb,
lib/fontisan/export/transformers/font_to_ttx.rb,
lib/fontisan/hints/postscript_hint_extractor.rb,
lib/fontisan/optimizers/subroutine_generator.rb,
lib/fontisan/optimizers/subroutine_optimizer.rb,
lib/fontisan/tables/cff/charstring_rebuilder.rb,
lib/fontisan/validation/collection_validator.rb,
lib/fontisan/variable/metric_delta_processor.rb,
lib/fontisan/models/all_scripts_features_info.rb,
lib/fontisan/pipeline/transformation_pipeline.rb,
lib/fontisan/variation/tuple_variation_header.rb,
lib/fontisan/variation/variable_svg_generator.rb,
lib/fontisan/pipeline/strategies/base_strategy.rb,
lib/fontisan/pipeline/strategies/named_strategy.rb,
lib/fontisan/tables/cff/hint_operation_injector.rb,
lib/fontisan/export/transformers/os2_transformer.rb,
lib/fontisan/hints/truetype_instruction_analyzer.rb,
lib/fontisan/models/collection_validation_report.rb,
lib/fontisan/tables/glyf/compound_glyph_resolver.rb,
lib/fontisan/export/transformers/head_transformer.rb,
lib/fontisan/export/transformers/hhea_transformer.rb,
lib/fontisan/export/transformers/maxp_transformer.rb,
lib/fontisan/export/transformers/name_transformer.rb,
lib/fontisan/export/transformers/post_transformer.rb,
lib/fontisan/hints/truetype_instruction_generator.rb,
lib/fontisan/tables/cff2/variation_data_extractor.rb,
lib/fontisan/pipeline/strategies/instance_strategy.rb,
lib/fontisan/pipeline/strategies/preserve_strategy.rb,
lib/fontisan/tables/cff2/private_dict_blend_handler.rb
Overview
Autoload hub for the Fontisan::Pipeline::Strategies namespace.
Defined Under Namespace
Modules: Binary, Cldr, Collection, Commands, Constants, Converters, Export, Formatters, Hints, LoadingModes, Models, OpenTypeFontExtensions, Optimizers, Parsers, Pipeline, Subset, Svg, Tables, TrueTypeFontExtensions, Type1, Utilities, Utils, Validation, Validators, Variable, Variation, Woff2 Classes: BaseCollection, CldrCli, Cli, ConversionOptions, CorruptedTableError, CorruptedVariationDataError, DeltaMismatchError, DfontCollection, Error, FontLoader, FontWriter, GlyphAccessor, InvalidAxisError, InvalidCoordinatesError, InvalidFontError, InvalidInstanceIndexError, InvalidVariationDataError, MetricsCalculator, MissingTableError, MissingVariationTableError, OffsetTable, OpenTypeCollection, OpenTypeFont, OutlineExtractor, ParseError, RegionOverlapError, SfntFont, SfntTable, SubsettingError, TableDirectory, TrueTypeCollection, TrueTypeFont, Type1Font, UnsupportedFormatError, VariationDataCorruptedError, VariationError, Woff2Font, Woff2TableDirectoryEntry, WoffFont, WoffHeader, WoffTableDirectoryEntry
Constant Summary collapse
- VERSION =
"0.2.23"
Class Attribute Summary collapse
-
.logger ⇒ Object
Returns the value of attribute logger.
Class Method Summary collapse
- .configure {|_self| ... } ⇒ Object
-
.convert(path, to:, output:) ⇒ Hash
Convert a font to a different format.
-
.info(path, brief: false, font_index: 0) ⇒ Models::FontInfo, ...
Get font information.
-
.validate(path, profile: :default, options: {}) ⇒ Models::ValidationReport
Validate a font file using specified profile.
Class Attribute Details
.logger ⇒ Object
Returns the value of attribute logger.
130 131 132 |
# File 'lib/fontisan.rb', line 130 def logger @logger end |
Class Method Details
.configure {|_self| ... } ⇒ Object
132 133 134 |
# File 'lib/fontisan.rb', line 132 def configure yield self if block_given? end |
.convert(path, to:, output:) ⇒ Hash
Convert a font to a different format.
Delegates to Fontisan::Commands::ConvertCommand. Format-specific compression knobs are declared by each strategy (single source of truth) and forwarded through the transformation pipeline.
WOFF uses zlib and runs on every browser that supports web fonts (IE9+, all evergreen browsers). WOFF2 uses Brotli for ~30% smaller output but requires modern browsers — use WOFF when legacy support matters.
203 204 205 |
# File 'lib/fontisan.rb', line 203 def self.convert(path, to:, output:, **) Commands::ConvertCommand.new(path, { to: to, output: output, ** }).run end |
.info(path, brief: false, font_index: 0) ⇒ Models::FontInfo, ...
Get font information.
Supports both full and brief modes. Brief mode uses metadata loading for 5x faster parsing by loading only essential tables (name, head, hhea, maxp, OS/2, post). Returns FontInfo with 13 essential fields in brief mode or all 38 fields in full mode.
168 169 170 |
# File 'lib/fontisan.rb', line 168 def self.info(path, brief: false, font_index: 0) Commands::InfoCommand.new(path, brief: brief, font_index: font_index).run end |
.validate(path, profile: :default, options: {}) ⇒ Models::ValidationReport
Validate a font file using specified profile
Validates fonts against quality checks, structural integrity, and OpenType specification compliance using the new DSL-based validation framework.
235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 |
# File 'lib/fontisan.rb', line 235 def self.validate(path, profile: :default, options: {}) # Get profile configuration profile_config = Validators::ProfileLoader.profile_info(profile) raise ArgumentError, "Unknown profile: #{profile}" unless profile_config # Load font with appropriate mode mode = profile_config[:loading_mode].to_sym font = FontLoader.load(path, mode: mode) # Load validator for profile validator = Validators::ProfileLoader.load(profile) # Run validation validator.validate(font) end |