fonttools/notes.txt
2015-11-08 11:11:11 +01:00

102 lines
3.7 KiB
Plaintext

ufoLib
------
- UFOReader
- need to add up-conversion for kerning and kerning groups
- this needs to be done in three different methods:
- readInfo
- default suffixes can be set in __init__
- readGroups
- maybe skim the kerning for referenced groups and rename on the fly.
this creates a race condition of sorts in that he kerning could be modified
after the groups have been read. there isn't any way around this. maybe the
doc should say that for < version 3 kerning and groups should always be read
at the same time.
- readKerning
- need to temporarily read the groups for conversion. see above.
- readInfo
- double check to make sure that no conversion is needed
- add support for new attributes
- add a method for getting the images path
- add a method for getting the directory path
- add a getLayerNames method
- how will this handle indicating that a layer is the default?
- getGlyphSet
- add a layerName=None argument
- UFOWriter
- change default version
- writeInfo
- need down-convert function to filter out >= 3 attributes
- add support for new attributes
- writeKerning and writeGroups
- down conversion of modified group names is going to be a problem
when writing into an existing < 3 file.
- getGlyphSet
- add layerName=None argument
- add the user name to file name conversion abstraction to glifLib
- add an isDefaultLayer=True (or something) argument for when the default layer has a name
- update layercontents.plist each time a glyph set is created or make the caller do it?
- add a method for getting the images path
- add a method for getting the directory path
- change the directory mod time for each write
- build version 3 attribute definitions
- maybe do a dynamic copy of the version 2 data
- update validation functions
- are the in place version converters necessary?
glifLib
-------
X roll in server optimizations
- make GlyphSet a new style class
- GlyphSet
- add a readLayerInfo(info) method
- add a writeLayerInfo(info) method
- writeGlyph
- need to support guides
- glyph object must have a list like object located at the guidelines attribute.
the objects returned from that object must have a dict like behavior.
API sketch:
for guideline in glyph.guidelines:
x = guideline["x"]
y = guideline["y"]
...
- need to support images
- glyph object must have a dict like object located at the image attribute.
API sketch:
fileName = glyph.image["fileName"]
xScale = glyph.image["xScale"]
- readGlyph
- need to support guides
- glyph object must accept a list of dicts at the guidelines attribute.
API sketch:
glyph.guidelines = [
dict(x=100, y=100, angle=12.3, name="name", color="0,0,0,1", identified="identifier1"),
dict(x=100, y=100, angle=12.3, name="name", color="0,0,0,1", identified="identifier2")
]
- need to support images
- glyph object must accept a dict at the image attribute.
API sketch:
glyph.image = dict(fileName="foo.png", xScale=1, yScale=1, ..., color="1,0,0,0.5")
- GLIFPointPen
- update to new API
- writeGlyphToString needs to be adapted
- add a formatVersion=3 argument
- add a buildOutline_Format2 function
- add the user name to file name conversion from the UFO spec
- don't write "180.0"
point pen protocol
------------------
- add an identifier=None to the beginPath method
- add an identifier=None to the addComponent method
- add an identifier=None to the addPoint method?
- add **kwargs to beginPath and addComponent?