diff options
author | Roozbeh Pournader <roozbeh@google.com> | 2014-12-01 22:02:51 -0800 |
---|---|---|
committer | James Godfrey-Kittle <jamesgk@google.com> | 2015-04-16 12:16:23 -0700 |
commit | 5ed29bb54cd0153d2a927c4fb12ac5d9095acd38 (patch) | |
tree | 85ab557968f7da630e36ce7e6be88ec63f473dac /scripts/subset_for_web.py | |
parent | 6ca0d935997f3a1f1bd53169a6b2f10ab4ae75d3 (diff) |
Expand scripts for webfont generation.
Diffstat (limited to 'scripts/subset_for_web.py')
-rw-r--r-- | scripts/subset_for_web.py | 49 |
1 files changed, 47 insertions, 2 deletions
diff --git a/scripts/subset_for_web.py b/scripts/subset_for_web.py index e100dfc..fa80590 100644 --- a/scripts/subset_for_web.py +++ b/scripts/subset_for_web.py @@ -1,4 +1,5 @@ #!/usr/bin/python +# coding=UTF-8 # # Copyright 2014 Google Inc. All rights reserved. # @@ -39,14 +40,58 @@ def read_charlist(filename): charlist.append(char) return charlist +LATIN = ( + range(0x0020, 0x007F) + range(0x00A0, 0x0100) + + [0x0131, 0x0152, 0x0153, 0x02C6, 0x02DA, 0x02DC, 0x2013, 0x2014, 0x2018, + 0x2019, 0x201A, 0x201C, 0x201D, 0x201E, 0x2022, 0x2039, 0x203A, 0x2044, + 0x2074, 0x20AC, 0x2212, 0x2215]) + +CYRILLIC = range(0x0400, 0x0460) + [0x0490, 0x0491, 0x04B0, 0x04B1, 0x2116] + +SUBSETS = { + 'cyrillic': LATIN + CYRILLIC, + 'cyrillic-ext': ( + LATIN + CYRILLIC + range(0x0460, 0x0530) + [0x20B4] + + range(0x2DE0, 0x2E00) + range(0xA640, 0xA6A0)), + 'greek': LATIN + range(0x0384, 0x0400), + 'greek-ext': LATIN + range(0x0384, 0x0400) + range(0x1F00, 0x2000), + 'latin': LATIN, + 'latin-ext': ( + LATIN + range(0x0100, 0x0250) + + [0x02BC, 0x0300, 0x0301, 0x0303, 0x030F] + + range(0x1E00, 0x1F00) + + [0x2026, 0x2070, 0x2075, 0x2076, 0x2077, 0x2078, 0x2079, 0x207F] + + range(0x20A0, 0x20D0) + range(0x2C60, 0x2C80) + + range(0xA720, 0xA800)), + 'menu': [ord(c) for c in u' ()DNQRabcfgortu΄ΕάαεηικλνКаилрцốữ'], +} +SUBSETS = {k: frozenset(v) for k, v in SUBSETS.iteritems()} + def main(argv): """Subset the first argument to second, dropping unused parts of the font. """ - charlist = read_charlist('res/web_charset.txt') + charlist = read_charlist('res/charsets/web.txt') # Add private use characters for legacy reasons charlist += [0xEE01, 0xEE02, 0xF6C3] - subset.subset_font(argv[1], argv[2], include=charlist) + + features_to_keep = [ + 'c2sc', 'ccmp', 'cpsp', 'dlig', 'dnom', 'frac', 'kern', 'liga', 'lnum', + 'locl', 'numr', 'onum', 'pnum', 'smcp', 'ss01', 'ss02', 'ss03', 'ss04', + 'ss05', 'ss06', 'ss07', 'tnum'] + + source_filename = argv[1] + target_filename = argv[2] + subset.subset_font( + source_filename, target_filename, + include=charlist, + options={'layout_features': features_to_keep}) + + for suffix in SUBSETS.keys(): + subset_filename = target_filename.replace('ttf', suffix) + subset.subset_font( + target_filename, subset_filename, + include=SUBSETS[suffix]) if __name__ == '__main__': |