In addition to the platform FontoXML provides a selection of add-ons. These add-ons range from providing additional functionality to UI components made using our FDS component library. Some of our add-ons are open source and allow you to send in pull requests or create forks and make adjustments needed for your specific implementation.
|Comments||Add comments and replies to your documents|
Edit the attributes for any element in your documents
|Clipboard instruction||Inform users on how to use the clipboard|
|CMS browser library||
Create operations to browse files and folders in your CMS
|PostMessage CMS communication||
Requires CMS support. Use postMessage rather than REST calls to implement the CMS contracts
|Cross references library||Build an intuitive user experience for cross-document references|
Add support for DITA 1.2 and 1.3 features, including map loading and mutation
|Find and replace||
Find and replace content across all loaded documents
|FontoXML Connectors integration||
Requires CMS support. Integrate your editor with your FontoXML Connectors deployment
View and edit MathML equations in your documents
|Nodes browser library||
Create operations to browse nodes in loaded documents
|Operations browser library||
Create operations to browse in configurable sets of operations
|Project browser library||Create operations to browse the currently loaded documents and their nodes|
Requires CMS support. Open a modal showing a PDF preview of the current document
|Single document with multiple sheetframes||
Display a single, large document as multiple sheet frames, for improved overview and performance
Insert special characters that are not easily accessible from the keyboard
|Spell checker||Check the spelling in your documents|
Add a sidebar tab giving an overview of the hierarchy of the loaded documents and important elements within them
|CALS table support||Add support for CALS tables|
|XHTML table support||Add support for XHTML tables|
|Track textual changes||
Track and review changes made to the text of your documents
|Web references library||Build an intuitive user experience for web references|
|XML Source view||
Add a sidebar tab showing the XML source of the current document
Starting with FontoXML 7.0, we are making some of our add-ons available as open-source software. This page describes how to obtain, integrate and modify these add-ons for your application.
Initially, this mainly concerns UI-focused add-ons, as we've noticed that different FontoXML applications often present unique requirements. Rather than continuously adding more options to configure these UI elements, we now provide flexible components that can be used to re-compose them as needed. Furthermore, these add-ons are fully functioning examples of such compositions out-of-the-box, and can also be used without modifications if desired.
We aim for these add-ons to provide easy to follow examples that can be used as a starting point for your own FontoXML customizations. Therefore, we plan to extend this open-source model to other types of FontoXML add-ons in future releases.
Integrating an open-source add-on without modifications
Each open-source add-on is available in its unmodified form from our SDK portal. To get started, install and integrate the add-on as usual. If you don't plan to modify this add-on, you can stop here and refer to the add-on's documentation for further instructions. Otherwise, the SDK portal provide links to the GitHub repositories for each open-source add-on. These repositories can also be found from our FontoXML GitHub page.
Modifying an open-source add-on
GitHub provides the ability to easily create a copy of any repository, including our open-source add-ons. This is referred to as "forking". Click the "Fork" button to create a copy, and then clone the new repository to your local machine. You can then change the code as desired, and commit your changes back to your copy.
There are several possibilities for integrating a modified add-on in your FontoXML application:
Replace the add-on with the modified code
To replace the add-on with your modified version, simply include the add-on directory in the
packages-shared directory of your application. The add-on will automatically override the version located in the
While it isn't strictly necessary to keep the
platform version of the add-on, first installing an add-on using the SDK portal ensures that any dependencies for the add-on are installed as well.
If you choose this approach, make sure to keep the existing API of your add-on compatible with the original, as other add-ons may depend on its behavior.
Rename the add-on
If you want to allow integrating your add-on side-by-side with the original, or its functionality has changed significantly from the original, it may be worth renaming the add-on. This essentially creates a new add-on with no relation to the original except for the shared provenance. If you do this, make sure to avoid conflicts with other add-ons by renaming any items that share a namespace with other add-ons. At present, this means that each of the following items provided by the add-on should be uniquely named. Prefixing each of these with the add-on's name is an easy way to ensure unique names.
- operations (including internal ones),
- transforms, actions and custom mutations,
- operation key bindings,
- custom XPath functions,
- configuration values,
- registered React components,
- editor sidebar IDs
After renaming, simply place the new add-on in the
packages-shared directory of your application and integrate as usual.
Contribute your changes back to the open-source project
If you have made changes that you feel would be a great addition to the open-source add-on, we encourage you to contribute these changes back to us. To do this, GitHub allows making a Pull Request. Make sure your changes have been committed and pushed to GitHub, and then create a Pull Request. This allows us to review your changes and eventually include them in a future release of the add-on, after which the new functionality can be used by anyone out-of-the-box.
To streamline this process, we plan to make add-on releases independent of the FontoXML platform release cycle. When this happens, we'll add details to this article on this process and how to ensure compatibility with a specific release of the platform.