kopia lustrzana https://github.com/inkstitch/inkstitch
43 wiersze
1.4 KiB
Python
43 wiersze
1.4 KiB
Python
# Authors: see git history
|
|
#
|
|
# Copyright (c) 2010 Authors
|
|
# Licensed under the GNU GPL version 3.0 or later. See the file LICENSE for details.
|
|
|
|
import json
|
|
import os
|
|
import sys
|
|
|
|
from ..i18n import _
|
|
from ..lettering.font_info import FontFileInfo
|
|
from .base import InkstitchExtension
|
|
|
|
|
|
class LetteringUpdateJsonGlyphlist(InkstitchExtension):
|
|
'''
|
|
This extension helps font creators to generate the json file for the lettering tool
|
|
'''
|
|
def __init__(self, *args, **kwargs):
|
|
InkstitchExtension.__init__(self, *args, **kwargs)
|
|
self.arg_parser.add_argument("--notebook")
|
|
self.arg_parser.add_argument("-f", "--font-file", type=str, default="", dest="font_file")
|
|
self.arg_parser.add_argument("-j", "--json-file", type=str, default="", dest="json_file")
|
|
|
|
def effect(self):
|
|
# file paths
|
|
font_file = self.options.font_file
|
|
json_file = self.options.json_file
|
|
if not os.path.isfile(font_file) or not os.path.isfile(json_file):
|
|
print(_("Please verify file locations."), file=sys.stderr)
|
|
return
|
|
|
|
glyphs = FontFileInfo(font_file).glyph_list()
|
|
|
|
with open(json_file, 'r') as font_data:
|
|
data = json.load(font_data)
|
|
|
|
data['glyphs'] = glyphs
|
|
|
|
# write data to font.json into the same directory as the font file
|
|
with open(json_file, 'w', encoding="utf8") as font_data:
|
|
json.dump(data, font_data, indent=4, ensure_ascii=False)
|