Lightweight and Flexible UFO Objects for Font Editing

Blake Bradford Avatar

·

Font editing applications require powerful and efficient tools to manipulate font data. One such tool that has gained significant attention in the tech community is Defcon. Defcon is a set of UFO based objects optimized for use in font editing applications. What sets Defcon apart is its lightweight, fast, and flexible nature, making it a valuable asset to developers.

At its core, Defcon is designed to provide base functionality so that developers can focus on their application’s behavior, rather than getting caught up in object observing or maintaining cached data. By abstracting these intricate details, Defcon allows developers to streamline their development process and enhance their productivity.

Defcon implements UFO3, which adheres to the UFO font format <http://unifiedfontobject.org>. This ensures compatibility and interoperability with other font editing tools that support the same standard. Moreover, for those who require the older UFO2 version of Defcon, the ufo2-deprecated branch <https://github.com/typesupply/defcon/tree/ufo2-deprecated> is available.

Installation

Getting started with Defcon is straightforward. The latest stable release of Defcon can be downloaded and installed from the Python Package Index <https://pypi.python.org/pypi/defcon>_ using the widely-used pip <https://pip.pypa.io/en/stable/installing/>_ command line tool. Simply run the following command:


pip install --upgrade defcon

Defcon also offers additional functionality through the fontPens package <https://github.com/robofab-developers/fontPens>_. If you require features such as Glyph.correctDirection() and Contour.contourInside(), you can install Defcon with the fontPens package using the following command:


pip install --upgrade defcon[pens]

For faster XML reading and writing capabilities, Defcon can be installed with support for lxml <https://github.com/lxml/lxml>_ by running:


pip install --upgrade defcon[lxml]

Multiple extras can be installed simultaneously by separating them with a comma, for example: defcon[pens,lxml].

Documentation

To help developers quickly get up to speed with Defcon, a comprehensive documentation resource is available at defcon.robotools.dev <http://defcon.robotools.dev/en/latest/>_. This documentation covers all aspects of Defcon, from installation and basic usage to advanced topics, tips, and tricks. Whether you are a beginner or an experienced developer, this documentation will serve as a valuable reference throughout your font editing journey.

Copyrights and Licensing

Defcon is distributed under the MIT license, ensuring its openness, flexibility, and availability to developers. The underlying framework of Defcon is built in Python <http://www.python.org>, a widely-used and powerful programming language. Parts of Defcon utilize fontTools <https://github.com/behdad/fonttools>, an OpenSource font toolkit initiated by Just van Rossum. Additionally, Defcon incorporates the Property List file format in XML, which is subject to the copyright of Apple Computer <http://www.apple.com>. The tables and names from PostScript and the OpenType FDK, used by Defcon, are copyrighted by Adobe <http://www.adobe.com>.

Conclusion

Defcon is a game-changer in the world of font editing applications. Its lightweight, fast, and flexible UFO objects provide the foundation for efficient font data manipulation. With the seamless implementation of UFO3, straightforward installation process, comprehensive documentation, and a commitment to open source and licensing compliance, Defcon empowers developers to create powerful and innovative font editing tools.

If you have any questions or would like more information, please feel free to reach out. Let’s leverage the potential of Defcon and revolutionize the font editing landscape together.

References:
– Defcon GitHub Repository: https://github.com/typesupply/defcon
– Python Package Index: https://pypi.python.org/pypi/defcon
– fontPens Package: https://github.com/robofab-developers/fontPens
– lxml Library: https://github.com/lxml/lxml
– fontTools GitHub Repository: https://github.com/behdad/fonttools

Leave a Reply

Your email address will not be published. Required fields are marked *