summaryrefslogtreecommitdiff
path: root/scripts/subset_for_web.py
diff options
context:
space:
mode:
Diffstat (limited to 'scripts/subset_for_web.py')
-rw-r--r--scripts/subset_for_web.py49
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__':