XM L 7.0.0 ( December 20, 2017)
FontoXML 7.0.0 is a major version release. This means that, as well as introducing new functionality, a number of APIs that previously remained stable have changed. This document lists the most important changes in this version.
Multiple release channels
Starting with the 7.0 release, FontoXML will maintain multiple release channels, giving you ample time to upgrade to 7.0.
The service channel consists of the previous major version (eg. 6.x). It will only be updated with critical bugfixes until the next major version (8.0) is released. At this time, the last version of the 7.x cycle will become the “previous major version”.
The stable channel is the current major version (7.x). This version is recommended for all applications and will contain bug and feature releases without changing any APIs.
From time to time we may release previews of future releases on our fresh (pre-8.0) channel. These releases are intended to experiment with possible new features, underlying architecture and new or modified APIs.
DS: a new approach to Fonto’s UI
FontoXML 7.0 introduces a brand new library of UI components. This includes out-of-the box components for common FontoXML integrations, including, but not limited to:
Components for composing the toolbars in a familiar but more powerful way
Components for easily building custom modals, popovers and (self-registering) sidebar tabs
Components for building rich form experiences within these
The new UI library uses a better declarative model than was used in previous releases. Based on the modern React library, it is easier than ever to write more flexible components than continue to perform well. More low level parts and better examples, as well as open source ready-made functionality, enable you to quickly construct the UI your application needs.
You can explore and experiment with the new FDS components in the FDS playground.
By default, FontoXML 7.0 will periodically refresh the state of any locks from the CMS, as well as checking whether the document was updated remotely. This is then visualized using a new icon shown on every sheet frame, as well as by making documents read-only or editable when appropriate. This way, users get near-real-time feedback on the activity of other users working on the same collection of documents. This new UI is clearer and less invasive than previous releases, where the document would spontaneously reload if a conflicting edit was detected.
At the same time, the impact on CMS contracts has been kept to a minimum, requiring only a few changes:
A revision ID replaces the eTag header to improve interoperability with proxies
An optional document state endpoint can be added to give users near-real-time feedback of changes in locks and content.
Neutral color theme
We realize that our Fonto blue doesn't always match your CMS. FontoXML 7.0 can now be configured to use a new neutral color theme. This theme is optimized to blend in with other environments while maintaining our intuitive authoring experience.
Improved structure view
The new structure view, now an optional add-on, allows collapsing and expanding groups of items. The structure view configuration API has been simplified to get started more quickly, and we've brought operation support for the structure view in line with the normal contextual operations used throughout the platform. These operations can now modify the document hierarchy (such as the DITA map) even if not all of the documents referenced by it could be loaded.
Improved attributes editor
The new attributes editor features a redesigned FDS-based form UI. Auto-saving means you won’t lose your changes ever again. FontoXML will warn you if any changes could not be saved automatically.
Even though these are some big changes, we've also included some smaller quality-of-life improvements, including:
Contextual operations will now highlight the corresponding element.
The context menu will more intelligently make use of available space.
If the toolbar, its tabs, or the sidebar tabs, are too big to fit the screen, FontoXML will now show controls to scroll their contents.
Refreshed browse modals help you find what you are looking more quickly.
More modular platform
FontoXML now has a single, leaner base platform. Various features that were previously included in the platform (and a few new ones as well) are now available as separate add-ons. This provides more flexibility when composing your applications. Your application doesn't need a structure view? Simply don’t install the add-on.
We’ve moved many bits of standard UI from the base platform to separate add-ons to enable you to more easily customize the user’s experience. These add-ons are now available as open-source software. They are fully-functional out of the box, with a documented API for configuration and integration, but can also be used as a basis on which to build your own customizations (forks).
After the 7.0 release, add-ons will get their own release schedules independent of the main platform. This means we can get new features in your hands more quickly. Also, we happily accept any improvements you might come up with as a Pull Request on our open source add-ons, removing the need to maintain your own fork. Feel free to share your ideas with the Fonto community!
The redesigned references API offers fine-grained control over reference transformation. Using the reference CMS endpoints is now optional, and can be omitted for reference types that do not require permanent IDs to be assigned. Adding popovers for a reference is now unified with the way other types of popover are configured, and the popovers themselves can be created more easily using FDS and a few convenience components that handle most of the work out of the box.
XM L namespaces
FontoXML 7.0 properly supports content from multiple schemas in multiple namespaces. This support is fully standards-compliant, using familiar XML APIs for the DOM and XPath. We've also made XML serialization more predictable; we no longer use the browser’s implementation, so the resulting XML is now consistent across browsers and platforms.
Public table add-ons
New add-ons provide official support for tables using various standard models:
CALS (now independent of DITA)
DITA Simpletable (part of the DITA add-on)
AP I improvements
Most properties of elements can now be configured separate from their family, in order to reduce configuration / selector complexity.
XPath 3.1 support has been improved, with support for namespaces and more functions supported out of the box.
The CMS can now use the new (optional) documentContext contract extension to store document-specific state on the client, which will be included with every request that concerns the corresponding document.
The WIRIS MathML editor can now be configured by setting the wiris-initialization-parameters configuration value.
FontoXML 7.0 includes improved error handling: applications can now get notified when errors occur and handle them appropriately. For instance, they can attempt to re-authenticate the user if their session has expired.
Various quirks have been smoothed out by changing the APIs to be more predictable, both in naming and behavior.
Various other stability improvements
We've streamlined the loading process; no more stuttering spinners!
More stable selection behavior.
And lots of other bugfixes and stability improvements.
Despite all these improvements, the performance of your application should remain roughly the same when you upgrade to FontoXML 7.0. In fact, we've made some improvements to reduce the bundle size that could make your application load slightly faster.
DK & documentation
The FontoXML 7.0 release also introduces a new documentation platform with much improved search and a better content structure. We've worked hard to improve almost all parts of the FontoXML documentation. Our new API docs are always in sync with the facts because they are now generated directly from the actual code. We've also written more guides to help you get started quickly and solve common problems easily.
The FontoXML Developer Tools (FDT) remains our focus to bring you one convenient way to help you better understand your schemas, content and application, and easily configure your application with the speed and convenience of the command line.