Module: Fontisan

Defined in:
lib/fontisan/svg.rb,
lib/fontisan.rb,
lib/fontisan/cli.rb,
lib/fontisan/ufo.rb,
lib/fontisan/error.rb,
lib/fontisan/hints.rb,
lib/fontisan/tasks.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/ufo/cli.rb,
lib/fontisan/ufo/lib.rb,
lib/fontisan/unicode.rb,
lib/fontisan/version.rb,
lib/fontisan/commands.rb,
lib/fontisan/pipeline.rb,
lib/fontisan/stitcher.rb,
lib/fontisan/ufo/font.rb,
lib/fontisan/ufo/info.rb,
lib/fontisan/variable.rb,
lib/fontisan/constants.rb,
lib/fontisan/sfnt_font.rb,
lib/fontisan/type1/agl.rb,
lib/fontisan/ufo/glyph.rb,
lib/fontisan/ufo/image.rb,
lib/fontisan/ufo/layer.rb,
lib/fontisan/ufo/plist.rb,
lib/fontisan/ufo/point.rb,
lib/fontisan/utilities.rb,
lib/fontisan/variation.rb,
lib/fontisan/woff_font.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/ufo/anchor.rb,
lib/fontisan/ufo/reader.rb,
lib/fontisan/ufo/writer.rb,
lib/fontisan/validation.rb,
lib/fontisan/validators.rb,
lib/fontisan/woff2_font.rb,
lib/fontisan/font_loader.rb,
lib/fontisan/font_writer.rb,
lib/fontisan/models/hint.rb,
lib/fontisan/parsers/tag.rb,
lib/fontisan/svg_to_glyf.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/ufo/compile.rb,
lib/fontisan/ufo/contour.rb,
lib/fontisan/ufo/convert.rb,
lib/fontisan/ufo/kerning.rb,
lib/fontisan/sfnt_builder.rb,
lib/fontisan/stitcher_cli.rb,
lib/fontisan/ufo/data_set.rb,
lib/fontisan/ufo/features.rb,
lib/fontisan/woff2/header.rb,
lib/fontisan/loading_modes.rb,
lib/fontisan/ufo/component.rb,
lib/fontisan/ufo/guideline.rb,
lib/fontisan/ufo/image_set.rb,
lib/fontisan/ufo/layer_set.rb,
lib/fontisan/unicode/plane.rb,
lib/fontisan/woff2/uint255.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/export/exporter.rb,
lib/fontisan/stitcher/source.rb,
lib/fontisan/tables/cff/dict.rb,
lib/fontisan/type1/decryptor.rb,
lib/fontisan/type1/encodings.rb,
lib/fontisan/type1/generator.rb,
lib/fontisan/ufo/compile/cff.rb,
lib/fontisan/ufo/compile/os2.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/svg_to_glyf/path.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/ufo/compile/avar.rb,
lib/fontisan/ufo/compile/cff2.rb,
lib/fontisan/ufo/compile/cmap.rb,
lib/fontisan/ufo/compile/colr.rb,
lib/fontisan/ufo/compile/cpal.rb,
lib/fontisan/ufo/compile/fvar.rb,
lib/fontisan/ufo/compile/gpos.rb,
lib/fontisan/ufo/compile/gvar.rb,
lib/fontisan/ufo/compile/head.rb,
lib/fontisan/ufo/compile/hhea.rb,
lib/fontisan/ufo/compile/hmtx.rb,
lib/fontisan/ufo/compile/hvar.rb,
lib/fontisan/ufo/compile/math.rb,
lib/fontisan/ufo/compile/maxp.rb,
lib/fontisan/ufo/compile/meta.rb,
lib/fontisan/ufo/compile/mvar.rb,
lib/fontisan/ufo/compile/name.rb,
lib/fontisan/ufo/compile/post.rb,
lib/fontisan/ufo/compile/sbix.rb,
lib/fontisan/ufo/compile/stat.rb,
lib/fontisan/woff2_collection.rb,
lib/fontisan/binary/structures.rb,
lib/fontisan/collection/reader.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/stitcher/selector.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/utilities/padding.rb,
lib/fontisan/utils/thread_pool.rb,
lib/fontisan/binary/base_record.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/tables/cff2/header.rb,
lib/fontisan/type1/private_dict.rb,
lib/fontisan/ufo/convert/to_otc.rb,
lib/fontisan/ufo/convert/to_otf.rb,
lib/fontisan/ufo/convert/to_ttc.rb,
lib/fontisan/ufo/convert/to_ttf.rb,
lib/fontisan/ufo/transformation.rb,
lib/fontisan/variable/instancer.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/ufo/compile/filters.rb,
lib/fontisan/ufo/convert/to_otf2.rb,
lib/fontisan/ufo/convert/to_woff.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/woff2/encoder_rules.rb,
lib/fontisan/woff2/sfnt_checksum.rb,
lib/fontisan/woff2/triplet_codec.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/stitcher/glyph_limit.rb,
lib/fontisan/subset/glyph_mapping.rb,
lib/fontisan/svg/standalone_glyph.rb,
lib/fontisan/svg_to_glyf/document.rb,
lib/fontisan/svg_to_glyf/geometry.rb,
lib/fontisan/tables/cff/cff_glyph.rb,
lib/fontisan/tables/layout_common.rb,
lib/fontisan/true_type_collection.rb,
lib/fontisan/ufo/convert/to_dfont.rb,
lib/fontisan/ufo/convert/to_woff2.rb,
lib/fontisan/validators/validator.rb,
lib/fontisan/commands/base_command.rb,
lib/fontisan/commands/info_command.rb,
lib/fontisan/commands/pack_command.rb,
lib/fontisan/stitcher/deduplicator.rb,
lib/fontisan/stitcher/selector/gid.rb,
lib/fontisan/svg_to_glyf/assembler.rb,
lib/fontisan/tables/cff/charstring.rb,
lib/fontisan/tables/cff2/fd_select.rb,
lib/fontisan/type1/font_dictionary.rb,
lib/fontisan/ufo/compile/cbdt_cblc.rb,
lib/fontisan/ufo/compile/glyf_loca.rb,
lib/fontisan/ufo/compile/svg_table.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/svg_to_glyf/path/state.rb,
lib/fontisan/variable/table_updater.rb,
lib/fontisan/variation/delta_parser.rb,
lib/fontisan/variation/interpolator.rb,
lib/fontisan/woff2/hmtx_transformer.rb,
lib/fontisan/collection/reader/stats.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/stitcher/selector/range.rb,
lib/fontisan/svg/font_face_generator.rb,
lib/fontisan/svg/view_box_calculator.rb,
lib/fontisan/svg_to_glyf/path/parser.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/stitcher/format_metadata.rb,
lib/fontisan/stitcher/glyph_signature.rb,
lib/fontisan/svg_to_glyf/path/command.rb,
lib/fontisan/tables/cff/index_builder.rb,
lib/fontisan/tables/cff/table_builder.rb,
lib/fontisan/tables/cff2/dict_encoder.rb,
lib/fontisan/tables/cff2/table_reader.rb,
lib/fontisan/tables/glyf/simple_glyph.rb,
lib/fontisan/tasks/fixture_downloader.rb,
lib/fontisan/type1/conversion_options.rb,
lib/fontisan/ufo/compile/otf_compiler.rb,
lib/fontisan/ufo/compile/ttf_compiler.rb,
lib/fontisan/ufo/compile/variable_otf.rb,
lib/fontisan/ufo/compile/variable_ttf.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/woff2/collection_decoder.rb,
lib/fontisan/woff2/collection_encoder.rb,
lib/fontisan/woff2/glyf_canonicalizer.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/index_builder.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/ufo/compile/base_compiler.rb,
lib/fontisan/ufo/compile/otf2_compiler.rb,
lib/fontisan/ufo/convert/from_bin_data.rb,
lib/fontisan/ufo/convert/to_postscript.rb,
lib/fontisan/validators/profile_loader.rb,
lib/fontisan/variable/delta_applicator.rb,
lib/fontisan/variation/instance_writer.rb,
lib/fontisan/woff2/glyf_loca_transform.rb,
lib/fontisan/converters/type1_converter.rb,
lib/fontisan/stitcher/collection_result.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/stitcher/partition_strategy.rb,
lib/fontisan/tables/glyf/curve_converter.rb,
lib/fontisan/ufo/compile/feature_writers.rb,
lib/fontisan/variation/cache_key_builder.rb,
lib/fontisan/variation/variation_context.rb,
lib/fontisan/woff2/glyf_loca_reconstruct.rb,
lib/fontisan/collection/offset_calculator.rb,
lib/fontisan/commands/multi_format_output.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/stitcher/selector/codepoints.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/ufo/compile/cff2_subroutines.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/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/svg_to_glyf/geometry/normalizer.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/stitcher/partition_strategy/base.rb,
lib/fontisan/svg_to_glyf/path/contour_builder.rb,
lib/fontisan/ufo/compile/feature_writers/base.rb,
lib/fontisan/ufo/compile/feature_writers/curs.rb,
lib/fontisan/ufo/compile/feature_writers/gdef.rb,
lib/fontisan/ufo/compile/feature_writers/kern.rb,
lib/fontisan/ufo/compile/feature_writers/mark.rb,
lib/fontisan/ufo/compile/feature_writers/mkmk.rb,
lib/fontisan/ufo/compile/item_variation_store.rb,
lib/fontisan/variation/tuple_variation_header.rb,
lib/fontisan/variation/variable_svg_generator.rb,
lib/fontisan/pipeline/strategies/base_strategy.rb,
lib/fontisan/ufo/compile/feature_writers/kern2.rb,
lib/fontisan/ufo/compile/filters/sort_contours.rb,
lib/fontisan/pipeline/strategies/named_strategy.rb,
lib/fontisan/tables/cff/cff2_charstring_builder.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/ufo/compile/filters/remove_overlaps.rb,
lib/fontisan/ufo/compile/filters/transformations.rb,
lib/fontisan/commands/validate_collection_command.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/stitcher/partition_strategy/by_block.rb,
lib/fontisan/stitcher/partition_strategy/by_plane.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/stitcher/partition_strategy/blueprint.rb,
lib/fontisan/stitcher/partition_strategy/by_script.rb,
lib/fontisan/stitcher/partition_strategy/partition.rb,
lib/fontisan/svg_to_glyf/geometry/affine_transform.rb,
lib/fontisan/svg_to_glyf/geometry/transform_parser.rb,
lib/fontisan/ufo/compile/filters/propagate_anchors.rb,
lib/fontisan/tables/cff2/private_dict_blend_handler.rb,
lib/fontisan/ufo/compile/filters/cubic_to_quadratic.rb,
lib/fontisan/ufo/compile/filters/flatten_components.rb,
lib/fontisan/ufo/compile/filters/decompose_components.rb,
lib/fontisan/ufo/compile/feature_writers/mark_family_base.rb,
lib/fontisan/ufo/compile/filters/reverse_contour_direction.rb

Overview

frozen_string: true

Defined Under Namespace

Modules: Binary, Collection, Commands, Constants, Converters, Export, Formatters, Hints, LoadingModes, Models, OpenTypeFontExtensions, Optimizers, Parsers, Pipeline, SfntBuilder, Subset, Svg, SvgToGlyf, Tables, Tasks, TrueTypeFontExtensions, Type1, Ufo, Unicode, Utilities, Utils, Validation, Validators, Variable, Variation, Woff2 Classes: BaseCollection, Cli, ConversionOptions, CorruptedTableError, CorruptedVariationDataError, DeltaMismatchError, DfontCollection, Error, FontLoader, FontWriter, GlyphAccessor, GlyphLimitExceededError, InvalidAxisError, InvalidCoordinatesError, InvalidFontError, InvalidInstanceIndexError, InvalidVariationDataError, MetricsCalculator, MissingTableError, MissingVariationTableError, MultipleCbdtSourcesError, OffsetTable, OpenTypeCollection, OpenTypeFont, OutlineExtractor, ParseError, PartitionCapExceededError, RegionOverlapError, SfntFont, SfntTable, Stitcher, StitcherCli, SubsettingError, TableDirectory, TrueTypeCollection, TrueTypeFont, Type1Font, UnsupportedFormatError, VariationDataCorruptedError, VariationError, Woff2Collection, Woff2Font, Woff2TableDirectoryEntry, WoffFont, WoffHeader, WoffTableDirectoryEntry

Constant Summary collapse

VERSION =
"0.4.19"

Class Attribute Summary collapse

Class Method Summary collapse

Class Attribute Details

.loggerObject

Returns the value of attribute logger.



140
141
142
# File 'lib/fontisan.rb', line 140

def logger
  @logger
end

Class Method Details

.configure {|_self| ... } ⇒ Object

Yields:

  • (_self)

Yield Parameters:

  • _self (Fontisan)

    the object that the method was called on



142
143
144
# File 'lib/fontisan.rb', line 142

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.

Examples:

TTF → WOFF2 (modern browsers)

Fontisan.convert("f.ttf", to: :woff2, output: "f.woff2", brotli_quality: 11)

TTF → WOFF (legacy browsers, max zlib)

Fontisan.convert("f.ttf", to: :woff, output: "f.woff", zlib_level: 9)

WOFF with no compression (legal per WOFF 1.0 §5.1)

Fontisan.convert("f.ttf", to: :woff, output: "f.woff", uncompressed: true)

Parameters:

  • path (String)

    Input font file

  • to (Symbol, String)

    Target format: :ttf, :otf, :type1, :woff, :woff2, :svg, :ttc, :otc, :dfont

  • output (String)

    Output font file path

  • opts (Hash)

    Conversion options. Format-specific knobs:

    • WOFF: :zlib_level (0–9, default 6), :uncompressed (bool), :compression_threshold (bytes)
    • WOFF2: :brotli_quality (0–11, default 11), :transform_tables (bool)
    • Variable fonts: :coordinates, :instance_index, :preserve_variation
    • Collections: :target_format ("preserve"|"ttf"|"otf")

Returns:

  • (Hash)

    Result hash with :success, :output_path, source/target format, input/output sizes, and variation strategy.



213
214
215
# File 'lib/fontisan.rb', line 213

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.

Examples:

Get full info

info = Fontisan.info("font.ttf")
puts info.family_name
puts info.copyright  # populated in full mode

Get brief info (5x faster)

info = Fontisan.info("font.ttf", brief: true)
puts info.family_name       # populated
puts info.postscript_name   # populated
puts info.copyright         # nil (not populated in brief mode)

Serialize to JSON

info = Fontisan.info("font.ttf", brief: true)
puts info.to_json

Parameters:

  • path (String)

    Path to font file

  • brief (Boolean) (defaults to: false)

    Use brief mode for fast identification (default: false)

  • font_index (Integer) (defaults to: 0)

    Index for TTC/OTC files (default: 0)

Returns:



178
179
180
# File 'lib/fontisan.rb', line 178

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.

Examples:

Validate with default profile

report = Fontisan.validate("font.ttf")
puts "Valid: #{report.valid?}"

Validate for web use

report = Fontisan.validate("font.ttf", profile: :web)
puts "Errors: #{report.summary.errors}"

Validate and get detailed report

report = Fontisan.validate("font.ttf", profile: :production)
puts report.to_yaml

Parameters:

  • path (String)

    Path to font file

  • profile (Symbol, String) (defaults to: :default)

    Validation profile (default: :default) Available profiles:

    • :indexability - Fast validation for font discovery
    • :usability - Basic usability for installation
    • :production - Comprehensive quality checks (default)
    • :web - Web embedding and optimization
    • :spec_compliance - Full OpenType spec compliance
    • :default - Alias for production profile
  • options (Hash) (defaults to: {})

    Additional validation options

Returns:

Raises:

  • (ArgumentError)


245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
# File 'lib/fontisan.rb', line 245

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