Add a build step to generate extended metrics that additionally contain glyph widths

Summary:
The ability to use pre-determined character widths will benefit alternative
layout engines such as gagern's canvas layout engine.  I would also like to
experiment would using CSS transforms to absolutely position each glyph.  This
diff adds a new make rule, make extended_metrics, which generates metrics that
also containing glyph widths.

Test Plan:
- run `make extended_metrics`
- verify that fontMetricsData.js contains entries with 5 numbers instead of 4

Reviewers: emily alpert
This commit is contained in:
Kevin Barabash
2015-09-30 09:58:56 -07:00
parent e9f4b07611
commit 1573e1eed6
5 changed files with 23 additions and 7 deletions

View File

@@ -3,6 +3,12 @@
import sys
import json
props = ['depth', 'height', 'italic', 'skew']
if len(sys.argv) > 1:
if sys.argv[1] == '--width':
props.append('width')
data = json.load(sys.stdin)
sep = "module.exports = {\n"
for font in sorted(data):
@@ -11,10 +17,8 @@ for font in sorted(data):
for glyph in sorted(data[font], key=int):
sys.stdout.write(sep + json.dumps(glyph) + ": ")
values = [data[font][glyph][key] for key in
['depth', 'height', 'italic', 'skew']]
values = [value if value != 0.0 else 0 for value in values]
values = [value if value != 0.0 else 0 for value in
[data[font][glyph][key] for key in props]]
sys.stdout.write(json.dumps(values))
sep = ",\n "