Extension file spec

RoboFont extensions are folders acting like files *.roboFontExt.

File Structure

info.plist

Info.plist is a XML property list. see A DTD is available.

key value
addToMenu list
a list of menu descriptions that should be added to the extension menu,
see menu item description
required
developer string
name of the developer
required
developerURL string
site url of the developer
required
html integer
indicating it has a html folder. zero, 0 is False, one, 1 os True.
index.html is required!
not required
launchAtStartUp integer
indicating it should execute code during start up of RoboFont. zero, 0 is False, one, 1 os True. see mainScript
required
mainScript string
*.py filename path (relative to the lib folder) executed during start up of RoboFont.
can be an empty string.
required
name string
the name of the extensions.
required
timeStamp float
required
version string
version number of the extension
required
requiresVersionMajor string
the required major number of RoboFont. To help extension builders which aren't supporting older versions of RoboFont.
not required
requiresVersionMinor string
the required minor number of RoboFont. To help extension builders which aren't supporting older versions of RoboFont.
not required

The info.plist can have custom keys if necessary for the extension. It is advised to use reverse domain name as keys (com.example.myExtension).

menu item description

Each menu item descriptions is a dictionary with the following keys

path string
*.py filename path (relative to the lib folder) this will be executed when the menu item is being clicked.
required
preferredName string
the preferred name of the menu item, only be used during display of the menu item.
required
shortKey string or tuple

  • string: a single keystroke that can be attached to the menu item.
  • tuple: ( <modifierFlag> int, <keyStroke> string )

can be an empty string
required

 

lib

A folder containing all *.py scripts. If a developer prefers to send out only *.pyc files that should be possible but take note that the file should be made with python 2.7 (the build in python version)

This folder will be added to the sys.path so it can import all the other files and folders as modules.

As this lib folder is being added to the sys.path be aware to name your module carefully. It is advised to name them with your extension name as prefix or suffix.

html

An 'html' folder is not required. If such a folder is declared in the info.plist it should contain an 'index.html'. These is plain html that is rendered in the help window with WebKit.

Resources

Any additional file necessary for your extension. Commonly used for bitmap, *.png to build tool bar icons, cursors. Or additional compiled command-line tools.