Add-ons

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.

Name Description
Comments Add comments and replies to your documents
Properties editor

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
DITA support

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

MathML support

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
fontoxml-publication-preview

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

Special characters

Insert special characters that are not easily accessible from the keyboard

Spell checker Check the spelling in your documents
Structure view

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

Open-source add-ons

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 or packages-shared directory of your application. The add-on will automatically override the version located in the platform directory.

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 or 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.