Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Make GlyphsBackend writable #76

Open
wants to merge 89 commits into
base: main
Choose a base branch
from
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
89 commits
Select commit Hold shift + click to select a range
de23e83
Add all missing 'put' methods from WritableFontBackend as stubs
ollimeier Jan 8, 2025
35015d3
GlyphsBackend work in progress: two options for discussion
ollimeier Jan 16, 2025
417d2fd
Remove option 2, use some better options for openstep_plist.dump, adj…
ollimeier Jan 17, 2025
1f25bbb
Rework putGlyph based on brainstorming together with Just
ollimeier Jan 17, 2025
e8ef42a
Add A-cy for testing
ollimeier Jan 17, 2025
e2a2626
get the right glyphspackage glyph file name
ollimeier Jan 17, 2025
6dcbf38
Add _findAndReplaceGlyph
ollimeier Jan 17, 2025
d8ac61e
openstep_plist: Fix order issue with toOrderedDict
ollimeier Jan 17, 2025
354e7fd
Remove _findAndReplaceGlyph idea
ollimeier Jan 17, 2025
bf1bfb9
Commit current stage.
ollimeier Jan 17, 2025
c7a66a4
Use pen for drawing
ollimeier Jan 19, 2025
62d0e93
Adding some comments
ollimeier Jan 19, 2025
f76ea61
Add A-cy also to Glyphs 2 and 3 file for unittests
ollimeier Jan 19, 2025
b560a89
Rework unittests and fix issue based on self.parsedGlyphNames
ollimeier Jan 19, 2025
fc5469a
Fixing the special layer issue with adding a gsLayer.layerId mapping …
ollimeier Jan 19, 2025
eaf8559
Extend unittest with test_deleteLayer
ollimeier Jan 19, 2025
53a106d
Add unittest test_addLayer (work in progress)
ollimeier Jan 19, 2025
c27e22e
Add support for 'intermediate layer'
ollimeier Jan 20, 2025
e343a3d
putGlyph including components and anchors + unittests
ollimeier Jan 21, 2025
b43907a
Adjust comments, restructure a bit + more unittests
ollimeier Jan 22, 2025
f6a6728
Fix missing comma and remove 'local hack'
ollimeier Jan 22, 2025
7afe3fa
Rework gsFormatting
ollimeier Jan 22, 2025
f6fe46c
Extend Readme file
ollimeier Jan 22, 2025
14144d3
Move getGlyphspackageGlyphFileName to utils and add unittest
ollimeier Jan 22, 2025
6d8e783
Move comment and make it a bit more clear.
ollimeier Jan 22, 2025
3a210e6
Remove seenLayerIDs. Use 'new' layerName (equal to layerId)
ollimeier Jan 22, 2025
698722f
Update test data "A-cy" + fix test_getGlyph: bug in GlyphsApp 2 file
ollimeier Jan 22, 2025
a40a429
Replace getGlyphspackageGlyphFileName with userNameToFileName (fontto…
ollimeier Jan 22, 2025
f25b1b6
Refactor and fix unittests
ollimeier Jan 22, 2025
1e0ae6a
rework _writeRawGlyph (dumps)
ollimeier Jan 22, 2025
e4e097e
Remove resolved comment
ollimeier Jan 22, 2025
f1fc7e0
Fix variable name, add and remove some comments
ollimeier Jan 22, 2025
7d56bac
Improve getAssociatedMasterId + unittests
ollimeier Jan 23, 2025
248fdf1
Raise NotImplementedError for stubs
ollimeier Jan 23, 2025
00753f9
Update self.glyphMap within putGlyph
ollimeier Jan 23, 2025
834dfe7
replace gsFormatting with convertMatchesToTuples
ollimeier Jan 23, 2025
a7fbd45
Fix customBinaryData formatting with regEx
ollimeier Jan 23, 2025
d41b0b2
Adding guideline to get- and putGlyph
ollimeier Jan 23, 2025
2161e6d
Removing toOrderedDict, not necessary anymore
ollimeier Jan 23, 2025
33840a3
Updating fontra data, because of missing guideline
ollimeier Jan 23, 2025
3568338
Raise error when trying to delete a master layer. Remove numbers from…
ollimeier Jan 23, 2025
0d558d8
Update workflow pytest.yml with Just's openstep-plist
ollimeier Jan 23, 2025
5a0b821
Return copy, as callers may mutate the result. This fixes googlefonts…
justvanrossum Jan 23, 2025
4ed0ac5
Better deepcopy the glyphMap, as clients may mutate
justvanrossum Jan 23, 2025
eb1a70c
Remove fixCustomBinaryDataFormatting and fix some unittests
ollimeier Jan 28, 2025
e1452c1
Don't raise error if some deletes master layer
ollimeier Jan 28, 2025
1ec4a25
Removing fixCustomBinaryDataFormatting
ollimeier Jan 28, 2025
b00dd76
Removing Just's version of openstep-plist because it's part of the of…
ollimeier Jan 31, 2025
2f99a3a
Fix issue with fontra source name
ollimeier Feb 4, 2025
df72ef5
Fix round-trip issue with adding non-master-layer
ollimeier Feb 5, 2025
3d8a990
Fix round-trip unittest + fix issue with smartcomonent
ollimeier Feb 5, 2025
fa207bf
duplicate glyph and add as new glyph
ollimeier Feb 5, 2025
e0bc5ca
Create new glyph + unittest
ollimeier Feb 5, 2025
a39e88a
figure out if master layer based on location + use 'Default' for unit…
ollimeier Feb 5, 2025
af1e72d
Rework gsLocation
ollimeier Feb 5, 2025
b458ba9
Update Fontra test data (dense location)
ollimeier Feb 5, 2025
36127f9
Update getLocationFromSources
ollimeier Feb 5, 2025
43ebf28
Fix typing
justvanrossum Feb 5, 2025
b4b1845
Add NotImplementedError: Intermediate layer within a smart glyph is n…
ollimeier Feb 13, 2025
ef5263b
Round-trip alignment of gsComponent
ollimeier Feb 18, 2025
37b3c56
Update font data and unittest
ollimeier Feb 18, 2025
3341bda
Update comment
ollimeier Feb 18, 2025
b2e08a1
Adjust formatting of README.md
ollimeier Feb 26, 2025
7b96b89
Removing unnecessary reference
ollimeier Feb 26, 2025
919f2dc
Code improvement 'gsComponent.alignment': use .get() + default to 0
ollimeier Feb 26, 2025
8cc61e9
Fixing typo
ollimeier Feb 26, 2025
aaf6f83
Support smart component with intermediate layer
ollimeier Feb 13, 2025
aa2e6a1
Fix merge conflict issue
ollimeier Feb 26, 2025
acd2c38
Add glyph axes to existing smart component glyph
ollimeier Feb 26, 2025
a782504
Find and fix issue with poleValue being a sting not a number + extend…
ollimeier Feb 27, 2025
a6f7c6f
Merge pull request #85 from googlefonts/issue-75-make-GlyphsBackend-w…
ollimeier Feb 27, 2025
c9237ec
Add "GlyphsApp Backend:" to error messages.
ollimeier Feb 27, 2025
917516b
Fix Enum string conversion on Python 3.10
justvanrossum Feb 27, 2025
f693b48
Little refactoring + some comments
ollimeier Feb 27, 2025
67c4c33
Add unittest for 'Add new glyph axis to existing smart comp glyph' + …
ollimeier Feb 27, 2025
8918d8a
Update pattern based on "real" project
ollimeier Feb 27, 2025
307e084
To avoid any confusion: Transform as GSTransform
ollimeier Mar 4, 2025
dba34b6
Adding a failing unittest for skewing of a component
ollimeier Mar 5, 2025
dfa397f
Remove redundant 'if' statement
ollimeier Mar 5, 2025
c311352
Raise TypeError when skewing a component + update unittest
ollimeier Mar 5, 2025
d9eea8e
Update README.md
ollimeier Mar 6, 2025
3243d31
Refactoring: getSourceFromLayerName, return defaultSource
ollimeier Mar 6, 2025
7c9cadc
When assigning self.gsFilePath ensure it is a pathlib.Path
ollimeier Mar 6, 2025
21e395c
Remove unnecessary int()
ollimeier Mar 6, 2025
ec8536d
Add failing unittest test_smartGlyphRemoveGlyphAxis
ollimeier Mar 6, 2025
3db0c21
Fix issue with deleting a glyph axis from a smart glyph within Fontra
ollimeier Mar 6, 2025
09db979
Fix a bug (get can return 0)
ollimeier Mar 6, 2025
10443fc
Add failing unittest test_smartGlyphChangeGlyphAxisValue
ollimeier Mar 6, 2025
6e9d9e1
Fix: update glyph axis values
ollimeier Mar 6, 2025
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
11 changes: 10 additions & 1 deletion README.md
Original file line number Diff line number Diff line change
@@ -1,8 +1,17 @@
# fontra-glyphs

Fontra file system backend for the Glyphs app file format. **Read-only** for now.
Fontra file system backend for the Glyphs app file format.

It supports the following features:

- Brace layers
- Smart components (for now restricted to interpolation: axis values need to be within the minimum and maximum values)


### Writing is currently limited to ...

#### Glyph Layer
- Contour (Paths, Nodes) ✅
- (Smart) Components ✅
- Anchors ✅
- Guidelines ✅
Loading