ufoJS is tested with nodeJS and current Firefox and Chrome. You can run the unit tests with other browsers and see where it breaks and where it works.
The GlyphSet and its dependencies are implemented and tested. This means
you now have control over everything in the
glyphs directory of your
UFOv2/v3 and the UFOv3 layers (which is data wise the same as the
glyphs directory). However, this is not stable yet. We will definitely
find some bugs when using it.
Not in the box yet are the APIs for everything above the glyph layer level. This is the next big task.
There are already significant differences to the RoboFab legacy:
ufoJS provides both a synchronous and an asynchronous API.
- The synchronous API is useful for adhoc-scripting, simple command line programms or webworkers. It is less complex to write synchronous scripts.
ObtainJS is used to implement the asynchronous and synchronous API side by side. Go to the ObtainJS Repository to learn how to use APIs implemented with it or how to implement APIs with ObtainJS.
ufoJS does file system abstraction based on a dependency injection pattern. You can write your own persistence module and just use it. See the I/O modules for the yet early state of the Interface.
There is no good Documentation or guide yet. You are welcome to start that and I would gladly support you. In the meantime your options are:
- Read the source, Luke and read the unit tests, too. Also, there is a mini sample App, the glif-renderer
- See how things are done with RoboFab and try to transfer you knowledge.
keep this under your pillow ;-)
The files of the Python sources are referenced in the headers of the files of this project.
FontTools Author: Just van Rossum
RoboFab Authors: Erik van Blokland, Tal Leming, Just van Rossum
The Tests are driven by (an old version of) the D.O.H: Dojo Objective Harness Authors: Alex Russell, Pete Higgins, Dustin Machi, Jared Jurkiewicz
The implementation of the Synchronous/Asynchronous APIs is made with ObtainJS Author: Lasse Fister
You should have received a copy of the MIT License along with this program. If not, see http://www.opensource.org/licenses/mit-license.php