mirror of
https://github.com/curioustorvald/Terrarum-sans-bitmap.git
synced 2026-06-06 05:58:30 +09:00
builder now has opentype sanitiser
This commit is contained in:
@@ -70,6 +70,24 @@ def main():
|
|||||||
no_features=args.no_features,
|
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__":
|
if __name__ == "__main__":
|
||||||
main()
|
main()
|
||||||
|
|||||||
@@ -53,6 +53,10 @@ def _should_have_cmap(cp):
|
|||||||
return True
|
return True
|
||||||
if 0x1B000 <= cp <= 0x1B16F:
|
if 0x1B000 <= cp <= 0x1B16F:
|
||||||
return True
|
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)
|
# Everything in standard Unicode ranges (up to 0xFFFF plus SMP)
|
||||||
if cp <= 0xFFFF:
|
if cp <= 0xFFFF:
|
||||||
return True
|
return True
|
||||||
|
|||||||
@@ -1,2 +1,3 @@
|
|||||||
fonttools>=4.47.0
|
fonttools>=4.47.0
|
||||||
brotli>=1.1.0
|
brotli>=1.1.0
|
||||||
|
opentype-sanitizer>=9.2.0
|
||||||
|
|||||||
Reference in New Issue
Block a user