Fonto 7.9.0 (December 19, 2019)

For the upgrade instructions, head over to Upgrade from 7.8 to 7.9.

Starting from this release, new Fonto Editor SDK versions can only be obtained through the Fonto Development Tools. The SDK portal will remain on version 7.8.3 and will be taken offline in the coming months. Please make sure to install the latest version of the Fonto Development Tools. Installation instructions are available on its npm page.

New functionality

  1. Our Find & Replace functionality has been improved, especially for large publications. The new UI provides more feedback on long-running search tasks and a better overview on results and replacements you are about to make. It is now also compatible with just-in-time loading, meaning that even the largest publications can be searched. Please refer to the add-on's documentation for details.

  2. The new addmutationhook @ fontoxml-blueprints/src/addmutationhook.js API can be used to automatically make changes to loaded documents if any operation adds or removes certain nodes or causes the value of some query to change.

  3. The Fonto Development Tools now work with multiple Fonto Editor releases, retroactively starting from 7.8.2. Most notably, an fdt editor add-ons command is now available to add/remove add-ons with. Please refer to the upgrade instructions for details about the changes made to FDTs commands.

  4. We have updated our icon library to Font Awesome 5 (Pro). This means that you now have access to 7.702 different icons (as opposed to the 675 icons in version 4.7.0). Many icons have been updated as a result to create a more consistent style across the application. Read the upgrade instructions on how this might impact you and the new Font Awesome concept guide on what new Font Awesome 5 features you can now start to leverage.

  5. Starting from this release, Fonto supports validating xs:pattern restrictions in your schemas, enabled by our new open-source regular expression engine. If you manually removed patterns from your XSD files for earlier releases, make sure to restore them and recompile your schema packages.

  6. Fonto can now receive and process additional documents in certain scenarios when requesting the initial document. Please refer to the CMS connectors API for more details.

  7. The new fonto:curated-text-in-range @ fontoxml-families/src/configuresxmodule.js and fonto:curated-text-in-node @ fontoxml-families/src/configuresxmodule.js functions make it easier to obtain a plain-text representation of a selection or node while taking configuration such as footnotes into account.

  8. We now have a license info modal showing all of the 3rd party JavaScript dependencies used by Fonto. It can be opened from the version info popover, which can be found by clicking the "i" icon on the bottom right in the status bar.

  9. The fontoxml-table-flow-xhtml @ /opt/app/workspace/editor-source/fontoxml-table-flow-xhtml/ add-on now supports resizing columns. Please refer to our guide for details on how to enable this feature.

  10. You can now opt-out of the default context menu used for tables by setting the new useDefaultContextMenu option to false when configuring table elements using configureastableelements @ fontoxml-table-flow/src/configureastableelements.js or one of its table-specific versions.

  11. The new table widgets introduced in 7.8.0 can now be configured using the configureproperties @ fontoxml-families/src/configureproperties.js function.

  12. The fontoxml-structure-view add-on has a new structure-view-expand-items-until-level @ fontoxml-structure-view/src/setdefaultconfiguration.js configuration value that allows controlling until what level the items of the structure view are expanded when opening the outline (or any other place where a StructureView is used). By default all items at all levels are expanded.

  13. Together with this release, we are also releasing new versions of our other products. Please refer to the corresponding release notes for more details:

    • Fonto Connectors 7.9.0

    • Fonto Document History and Fonto Content Quality were both bumped to 7.9.0 but contain no functional changes compared to the previous release.

Resolved issues

  1. We resolved an issue where an error could occur when opening the image browser when there is no selection. Applying this fix in your application may require some changes. Please refer to the upgrade instructions for details.

  2. We resolved an issue that prevented popovers opened from other popovers from working correctly. This includes the ability to create sub-menus in the element menu.

  3. Resolved a bug that prevented attributes from being inserted correctly using XQuery Update Facility insert ... into expressions.

  4. Resolved a bug that caused DocumentType nodes to match as children of the Document node in XPath queries while they should have been ignored according to the XPath 3.1 specification. Please refer to the upgrade instructions for more details.

  5. Resolved an error that could occur in the merge-and-insert @ fontoxml-base-flow/src/operations.json operation in certain cases.

  6. Resolved an issue where rapidly clicking toolbar buttons could cause the cursor to move unexpectedly.

  7. Resolved a regression introduced in 7.8.1 that sometimes prevented the cursor from appearing when clicking items in the outline sidebar.

  8. Resolved an issue where the delete-node @ fontoxml-base-flow/src/operations.json operation could leave the cursor in an invalid position

  9. Resolved an issue where the split-and-insert @ fontoxml-base-flow/src/operations.json operation would not place the selection in the newly added element in certain cases.

  10. Resolved an issue where merging table cells would in some cases leave the cursor in an invalid position.

  11. Resolved an issue where right-clicking while the context menu is open would not move the cursor.

  12. Resolved an issue where the cursor could be left in unexpected positions when clicking the same position a second time.

  13. Resolved an issue where selecting images in table cells would sometimes cause too many images to be selected.

  14. Resolved an issue where the selection shown when the editor does not have focus would sometimes highlight content that is not actually included in the selection.

  15. Resolved an issue where automatically upper-casing the first word of a sentence would fail if the sentence started with certain characters, such as such as quotes (") or a starting exclamation/interrogation mark (¿, ¡).

  16. Resolved an issue where Fonto would not copy content to the clipboard for certain selections, including single table cells.

  17. Resolved an issue that would degrade loading performance when Fonto assigns unique IDs in a large DITA map while it is loading.

  18. Resolved an issue that caused the scroll position to jump unexpectedly in some cases in large collections.

  19. Resolved an issue where custom mutations were allowed to make tables invalid in some cases.

  20. Resolved an issue that prevented having two tables of the same type (for example, CALS) but with different element names (for example, <table> and <informaltable>) in the same editor.

  21. Resolved an issue that caused table column resizing to fail in some cases.

  22. Browse modals from the fontoxml-cms-browser @ /opt/app/workspace/editor-source/fontoxml-cms-browser/ add-on now automatically reload the root folder if a previously remembered sub folder no longer exists when opening a browse modal, instead of showing a confusing "folder no longer exists" error message without any easy recovery options.

  23. The popover for the lock icon widget on the left top side of a sheet frame now updates as the document state changes. It also closes the popover as soon as the widget is hidden due to a state update.

  24. Resolved an issue where fxeditormasthead @ fontoxml-fx/src/fxeditormasthead.jsx.js tabs using the isVisibleTabQuery property would not respond to changes in some cases.

  25. Resolved an issue where spell check suggestions were truncated in some cases in Firefox.

  26. The column resizer popover now correctly turns disabled when the document turns read-only.

  27. Resolved an issue where error placeholders for documents that failed to load could not be clicked if "Document view" was enabled.

  28. Resolved an issue where a textlink @ fds/src/components/text-link/textlink.js with the href prop set would be dragged instead of allowing its text to be selected (if the userSelect prop is set to true).

  29. The timeselect @ fds/src/components/date-time/timeselect.js and datetimeselect @ fds/src/components/date-time/datetimeselect.js components now work correctly with 00 values for hours, minutes and seconds.

  30. Resolved a regression introduced in 7.8.0 that caused the chevron at the right side of menu items to not align properly with the text.

  31. Resolved a regression in 7.8.0 that caused borders to disappear for inline frames with no backgroundColor set.

  32. Resolved an issue where the bottom table border was not always rendered correctly for cells merged across multiple rows.

  33. Resolved an issue where table borders were not rendered correctly for nested tables if the outer table has a border.

  34. Resolved an error that could occur when toggling cell borders in certain cases where tables are nested.

  35. Resolved an error that could occur when copying a broken table.

  36. Resolved an error that could occur when navigating left from the first cell of a nested table.

  37. Resolved an error that could occur in reducers when documents are unloaded.

  38. Resolved a regression in 7.8.1 that could cause an error to appear in the browser console when a modal appears directly following another modal.

  39. Resolved an error that could occur when scrolling things into view with certain combinations of options.

  40. Resolved an error that could occur when dragging structure view items to the bottom of the structure view in some cases.

  41. Resolved an error that could occur in the useremotedocumentstate @ fontoxml-remote-documents/src/useremotedocumentstate.jsx React hook when documents are unloaded.

  42. Resolved an issue that caused errors thrown by operations to not always include the full stack of operations, which made debugging such errors much harder.

  43. Resolved issues where editing or removing an annotation could cause an error if there is no selection.

  44. Resolved an issue with the Fonto Development Tools which prevented new root schemas from being added after a schema compile.

Other improvements

  1. We have further improved the performance when working with tables. Operations which mutate the table show an improvement of ~40% to ~60% and the performance to calculate the state of operations have improved ~50% to ~80%.

  2. Fonto now allows using XQuery in all places where XPath is allowed. This means it is now possible to use XQuery-specific syntax and features, such as importing other modules.

  3. Fonto will now automatically generate prefixes for unknown namespaces when it needs to. Previously, any such namespace had to be configured using the namespacemanager @ fontoxml-dom-namespaces/src/namespacemanager.js. Prefixes configured in the namespaceManager are still preferred over automatically generated ones.

  4. Removing a table row containing the cursor will now move the cursor to a nearby cell instead of to the start or end of a nearby row.

  5. Table cells now have a minimum width. To preserve table proportions, the width of the entire table will be increased to make sure none of the columns get uncomfortably narrow.

  6. The "Expand table" contextual operation is now hidden from the context menu if the table is not allowed to expand.

  7. We improved the error message when using an inline XPath in an operation that returns something other than a boolean, string, number, node or empty sequence.

  8. We improved the error messages when a custom mutation or mutation hook creates an invalid selection.

  9. Invalid XQuery modules now show a more descriptive error when running the editor using the dev-server (in non dist mode).

  10. The loading page opened by the fontoxml-publication-preview @ /opt/app/workspace/editor-source/fontoxml-publication-preview/ add-on's operations now instructs users to close the tab after the download completes, in case the browser does not do so automatically.

  11. We've made the sizes of our browse modals bigger and more consistent.

  12. We've slightly adjusted the color of elements configured with backgroundColor "black" to better match similar backgrounds used in the editor.

  13. Images included in the selection now remain highlighted when another part of the UI is focused.

  14. Very long feedback messages and/or very many feedback messages will no longer overflow outside of the modal that shows up if you try to close the properties sidebar when there is form feedback.

  15. We've removed the border around the masthead toolbars and active tab button in the neutral theme to make them more visually consistent with the default (fontoBlue) theme.

  16. When clicking on a masthead or sidebar tab button that is partially obscured by the overflow gradient/button, it will now automatically scroll itself into view. Note: for now, this does not work for buttons in a toolbar, only for the tab buttons.

  17. Clicking the save button will now return focus to the document.

  18. The unsaved warnings modal no longer shows up when editing a required property and clicking within the same element whose property you're editing.

  19. This release includes version 3.9.2 of the FontoXPath engine. Refer to its release notes for details.

  20. The Fonto XPath playground now supports pasting XML directly from Fonto. Simply copy any content in the Fonto editor and paste it in the XML input field. Unfortunately, due to browser limitations, this feature does not work in Safari.

  21. The fdt editor init command of the Fonto Development Tools will now scaffold an exemplary masthead and the dev-cms/files folder.

Deprecated APIs

  1. The getModelUsingStencil transform should no longer be used. We recommend using inline XPath instead to retrieve values from XML as stepdata @ fontoxml-operations/src/operationsmanager.js.

  2. The optional environmentQuery in custom TableDefinitions should no longer be used. If you forked one of our open-source table implementations, please refer to the changes in those repositories and update your fork accordingly to benefit from our performance improvements.