mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-03-07 11:51:50 +09:00
builder now has opentype sanitiser
This commit is contained in:
@@ -70,6 +70,24 @@ def main():
|
||||
no_features=args.no_features,
|
||||
)
|
||||
|
||||
# Run OpenType Sanitizer to catch issues browsers would reject
|
||||
try:
|
||||
import ots
|
||||
print("\nRunning OpenType Sanitizer...")
|
||||
result = ots.sanitize(args.output, capture_output=True)
|
||||
if result.returncode == 0:
|
||||
print(" OTS: passed")
|
||||
else:
|
||||
print(f" OTS: FAILED (exit code {result.returncode})", file=sys.stderr)
|
||||
if result.stderr:
|
||||
for line in result.stderr.decode().strip().splitlines():
|
||||
print(f" {line}", file=sys.stderr)
|
||||
sys.exit(1)
|
||||
except ImportError:
|
||||
print("\nWarning: opentype-sanitizer not installed, skipping OTS validation",
|
||||
file=sys.stderr)
|
||||
print(" Install with: pip install opentype-sanitizer", file=sys.stderr)
|
||||
|
||||
|
||||
if __name__ == "__main__":
|
||||
main()
|
||||
|
||||
@@ -53,6 +53,10 @@ def _should_have_cmap(cp):
|
||||
return True
|
||||
if 0x1B000 <= cp <= 0x1B16F:
|
||||
return True
|
||||
# Unicode noncharacters — never map these (U+FFFE, U+FFFF are reserved;
|
||||
# format 4 cmap uses 0xFFFF as a sentinel, so mapping it causes OTS rejection)
|
||||
if cp >= 0xFFFE and cp <= 0xFFFF:
|
||||
return False
|
||||
# Everything in standard Unicode ranges (up to 0xFFFF plus SMP)
|
||||
if cp <= 0xFFFF:
|
||||
return True
|
||||
|
||||
@@ -1,2 +1,3 @@
|
||||
fonttools>=4.47.0
|
||||
brotli>=1.1.0
|
||||
opentype-sanitizer>=9.2.0
|
||||
|
||||
Reference in New Issue
Block a user