shaping

fontbakery.profiles.shaping.collides_glyph_test_results(vharfbuzz, shaping_file, failed_shaping_tests)[source][source]
com.google.fonts/check/dotted_circle[source][source]

Ensure dotted circle glyph is present and can attach marks.

Rationale:

The dotted circle character (U+25CC) is inserted by shaping engines before mark glyphs which do not have an associated base, especially in the context of broken syllabic clusters.

For fonts containing combining marks, it is recommended that the dotted circle character be included so that these isolated marks can be displayed properly; for fonts supporting complex scripts, this should be considered mandatory.

Additionally, when a dotted circle glyph is present, it should be able to display all marks correctly, meaning that it should contain anchors for all attaching marks.

com.google.fonts/check/shaping/collides[source][source]

Check that no collisions are found while shaping

Rationale:

Fonts with complex layout rules can benefit from regression tests to ensure that the rules are behaving as designed. This checks runs a shaping test suite and reports instances where the glyphs collide in unexpected ways.

Shaping test suites should be written by the font engineer and referenced in the FontBakery configuration file. For more information about write shaping test files and how to configure FontBakery to read the shaping test suites, see https://simoncozens.github.io/tdd-for-otl/

com.google.fonts/check/shaping/forbidden[source][source]

Check that no forbidden glyphs are found while shaping

Rationale:

Fonts with complex layout rules can benefit from regression tests to ensure that the rules are behaving as designed. This checks runs a shaping test suite and reports if any glyphs are generated in the shaping which should not be produced. (For example, .notdef glyphs, visible viramas, etc.)

Shaping test suites should be written by the font engineer and referenced in the FontBakery configuration file. For more information about write shaping test files and how to configure FontBakery to read the shaping test suites, see https://simoncozens.github.io/tdd-for-otl/

com.google.fonts/check/shaping/regression[source][source]

Check that texts shape as per expectation

Rationale:

Fonts with complex layout rules can benefit from regression tests to ensure that the rules are behaving as designed. This checks runs a shaping test suite and compares expected shaping against actual shaping, reporting any differences.

Shaping test suites should be written by the font engineer and referenced in the FontBakery configuration file. For more information about write shaping test files and how to configure FontBakery to read the shaping test suites, see https://simoncozens.github.io/tdd-for-otl/

com.google.fonts/check/soft_dotted[source][source]

Ensure soft_dotted characters lose their dot when combined with marks that replace the dot.

Rationale:

An accent placed on characters with a “soft dot”, like i or j, causes the dot to disappear. An explicit dot above can be added where required. See “Diacritics on i and j” in Section 7.1, “Latin” in The Unicode Standard.

Characters with the Soft_Dotted property are listed in https://www.unicode.org/Public/UCD/latest/ucd/PropList.txt

See also: https://googlefonts.github.io/gf-guide/diacritics.html#soft-dotted-glyphs

fontbakery.profiles.shaping.create_report_item(vharfbuzz, message, text=None, buf1=None, buf2=None, note=None, extra_data=None)[source][source]
fontbakery.profiles.shaping.fix_svg(svg)[source][source]
fontbakery.profiles.shaping.forbidden_glyph_test_results(vharfbuzz, shaping_file, failed_shaping_tests)[source][source]
fontbakery.profiles.shaping.generate_shaping_regression_report(vharfbuzz, shaping_file, failed_shaping_tests)[source][source]
fontbakery.profiles.shaping.get_from_test_with_default(test, configuration, el, default=None)[source][source]
fontbakery.profiles.shaping.get_shaping_parameters(test, configuration)[source][source]
fontbakery.profiles.shaping.is_complex_shaper_font(ttFont)[source][source]
fontbakery.profiles.shaping.run_a_set_of_shaping_tests(config, ttFont, run_a_test, test_filter, generate_report, preparation=None)[source][source]
fontbakery.profiles.shaping.run_collides_glyph_test(filename, vharfbuzz, test, configuration, failed_shaping_tests, extra_data)[source][source]
fontbakery.profiles.shaping.run_forbidden_glyph_test(filename, vharfbuzz, test, configuration, failed_shaping_tests, extra_data)[source][source]
fontbakery.profiles.shaping.run_shaping_regression(filename, vharfbuzz, test, configuration, failed_shaping_tests, extra_data)[source][source]
fontbakery.profiles.shaping.setup_glyph_collides(ttFont, configuration)[source][source]