Fonto 7.12.0 (September 24, 2020)

For the upgrade instructions, head over to Upgrade from 7.11 to 7.12.

A number of APIs will be removed in the 7.14 release. They are listed on the Upcoming Deprecations 7.14 page.

New functionality

  1. Authors can now resize the sidebar to their preferred width. Resizing can be done by dragging the black line that appears when hovering the mouse on the left side of the tab buttons while the sidebar is open.

  2. We've heard frequent questions about Implementing generated texts for cross references, so we wrote a new guide showing how to do that. To help, we're introducing a number of new XPath functions (fonto:is-document-loaded, fonto:is-document-errored, fonto:document and fonto:resolve-permanent-id). As these make it easier to resolve the target of a reference and query the target document's DOM, they may also be useful in many other cases.

  3. Input and search fields now include a convenient clear button to remove the current value.

  4. The error pages shown when opening Fonto Editor in an unsupported browser or on an unsupported device now allow users to 'continue anyway' if they know better, or want to try and use it regardless.

  5. You can now supply a different syntax for the formatDateLabel prop on calendarinput @ fds/src/components/calendar/calendarinput.js. Using this override results in having 3 separate text inputs for the year/month/date(day) parts of a date that can be typed manually to quickly select a date that is far in the past or future.

  6. The popup shown after clicking on the i icon in the status bar on the bottom right can now be customized. We've created a new guide to explain how.

  7. The new wiris-mathtype-script-url @ fontoxml-mathml/src/setdefaultconfiguration.js configuration value replaces the old wirisEditorScriptUrl scope parameter and can be used to allow running a self-hosted wiris version. Please refer to the Upgrade from 7.11 to 7.12 instructions for details.

  8. The fontoxml-special-characters add-on has a new primaryFontFamily option to customize the primary (CSS) font-family that is used to render the Unicode symbol of a special character. This allows you to use a font that is also used in your publication so authors see the same symbol glyphs in the editor and in the publication.

  9. We've added multi-select capabilities to the structureview @ fontoxml-structure/src/structureview.jsx component and fontoxml-project-browser add-on. The new open-project-browser-modal-with-multi-select @ fontoxml-project-browser/src/operations.json operation allows selecting multiple structure view items simultaneously. Supporting this are new showCheckboxSelector, onItemCheckboxClick, checkedItems and indeterminateItems props on the structureview @ fontoxml-structure/src/structureview.jsx component.

  10. The fontoxml-dita @ /opt/app/workspace/editor-source/fontoxml-dita/ add-on contains a new insert-topicref-next-to-context-node @ fontoxml-dita/src/operations-topicref-insert.json operation that allows inserting a new topicref or mapref element as a sibling to the context node rather than as its last child (as append-topicref @ fontoxml-dita/src/operations-topicref-insert.json would do).

  11. It's now possible to customize the names of all table-related elements and attributes in configureascalstableelements @ fontoxml-table-flow-cals/src/configureascalstableelements.js.

  12. The new fontoxml-table-flow-basic @ /opt/app/workspace/editor-source/fontoxml-table-flow-basic/ add-on can be configured to support most table models that do not include merging and splitting of cells, including the DITA simpletable and reltable structures.

  13. Contextual operations configured for table cells now appear in a new element menu widget in the top right of the cell if they are allowed to appear in the element-menu context.

  14. The columnBefore widget area can now be used in DITA <simpletable>s as well as other basic tables. For these tables that lack column-defining elements, the widgets in this area are linked to the cells in the first row of the table. Additionally, it's now possible to configure multiple widgets to be shown in the columnBefore area for all table types.

  15. The new documentsHierarchy.get method allows efficiently retrieving the documentshierarchynode @ fontoxml-documents/src/documentshierarchynode.js for a given hierarchynodeid @ fontoxml-documents/src/documentshierarchynode.js. If you previously used documentsHierarchy.find or manual iteration for this purpose, consider using this new method for improved performance.

  16. Editors using embedded mode can now configure whether the status bar is initially visible or hidden using the statusbar-configuration @ fontoxml-editor/src/setdefaultconfiguration.js configuration value.

  17. The Fonto Development Tools now offer a --write-to-disk option for development builds of Fonto Editor. This can be used to output the incremental development builds under the ./dev directory on disk instead of keeping them in-memory only. This can be useful for certain development set-ups.

Resolved issues

  1. We've improved the performance and reliability of using addreducer @ fontoxml-indices/src/addreducer.js (automatic numbering) on large documents. These cases should no longer sometimes trigger stack overflow errors.

  2. Resolved an issue where the wrong isSourceNode value was passed to a reducer function in certain cases where the reducer's selector matches hierarchy source nodes.

  3. We fixed validation of certain simple types that were either being too strict (NMTOKEN, Name and NCName, all of which did not allow non-ASCII characters) or that allowed a few values that should not be allowed (float and double).

  4. It's now allowed to edit an element in a way that causes it to become read-only due to configureasreadonly @ fontoxml-families/src/configureasreadonly.js configuration rules.

  5. We fixed a case where using configureasinvalid @ fontoxml-families/src/configureasinvalid.js in combination with a selector that concerns attributes could cause an error.

  6. Fixed an issue where update scripts using the "replace value of node" expression would crash.

  7. Fixed a few issues where executing table operations on a table that did not support the corresponding feature (e.g., splitting a cell on a basic table) could cause future operations to crash.

  8. The convert-element @ fontoxml-base-flow/src/operations.json operation no longer places your cursor before the converted element if it was empty. It now leaves the cursor inside of the element.

  9. We fixed a bug that could cause a "Cannot read property 'hasPermanentSaveError' of null" error to occur when working in an editor with JIT-loading enabled under certain conditions.

  10. We fixed an issue where attempting to scroll in an overflowing toolbar could cause a crash.

  11. We resolved an issue where normalization would sometimes not occur when moving the cursor to a different document.

  12. If an operation leaves the cursor in an invalid position and no valid position can be found nearby, Fonto will now clear the selection. In previous releases and with certain configurations such operations could cause the cursor to appear in unexpected positions, such as between table rows.

  13. We fixed an issue in the fontoxml-dita @ /opt/app/workspace/editor-source/fontoxml-dita/ add-on that would cause topics to stay in the loading placeholder state indefinitely when their format attribute was not (or did not default to) "dita" or "ditamap".

  14. We resolved an issue where scrolling nodes into view would not always work reliably for targets in JIT-loaded documents.

  15. The open-operations-browser-modal @ fontoxml-operations-browser/src/operations.json operation from the fontoxml-operations-browser add-on now correctly uses the data for each of the specified operations when an operation is selected and executed.

  16. The inlineBefore and inlineAfter widget areas now also work for the configureasinlineimage @ fontoxml-families/src/configureasinlineimage.js CVK family.

  17. Setting the defaultTextContainer property in configureasinlinestructure @ fontoxml-families/src/configureasinlinestructure.js now works as expected.

  18. The isReadOnly prop on configured popovers in the content view is now updated accordingly when the read-only state changes while the popover is open.

  19. We fixed a bug in the crossreferencepopover @ fontoxml-crosslink-references/src/crossreferencepopover.jsx.js that would cause it to ignore a configured titleQuery when generating the title preview for the link target.

  20. Resolved an issue where errors thrown while rendering a document would in some cases cause Fonto to go to the error route instead of causing only the view in question to display an error.

  21. A conditional tab in the editor masthead (for example the table toolbar tab) now correctly stays active while certain updates occur out of order. In previous releases, operations such as removing an element that contains the cursor and simultaneously moving the cursor to another location could cause the toolbar to switch back to the first tab.

  22. Right-clicking in locations where there is no context menu no longer prevents scrolling.

  23. When opening Fonto with multiple consecutive documents that have errors, sometimes not enough documents were displayed initially to fill up the complete viewport. This has been fixed.

  24. The grey background of an inactive text selection is no longer visible when displaying a document in preview mode (e.g., when the document currently containing the cursor is shown in a browse modal).

  25. Using the breadcrumbs @ fds/src/components/breadcrumbs/breadcrumbs.js component with certain custom components as breadcrumb items no longer causes an error.

  26. Rendering multiple fxnodepreview @ fontoxml-fx/src/fxnodepreview.jsx.js components in a scrolling sidebar no longer causes that sidebar's scroll position to jump back when attempting to scroll.

  27. If multiple operations fail (or fail to determine their state) at the same time, Fonto no longer shows multiple instances of the "Something went wrong" modal stacked on top of each other.

  28. The configureasinlineimageinframe @ fontoxml-families/src/configureasinlineimageinframe.js family no longer ignores the given markupLabel. These images are now also better centered in their frame.

  29. The configureasinlineobjectinframe @ fontoxml-families/src/configureasinlineobjectinframe.js family no longer ignores the given createInnerJsonMl option, making it actually useful now. Note that while configureasinlineobject @ fontoxml-families/src/configureasinlineobject.js renders this JsonML as an inline-block and does not render children, this family renders as an inline frame containing the JsonML as an inline element followed by the element's children.

  30. We fixed a long-standing issue where the configureAsInlineAnchorTo families would not set the baseLine CVK option to superscript by default.

  31. Selecting a table or its various parts with widgets enabled no longer shows the selection highlight extending outside of the table.

  32. We resolved a few cases where the grey inactive selection would cover a larger area than the normal yellow selection, in particular when selecting complete sheet frames.

  33. Sheet frame borders no longer 'leak through' expanded tables when toggle-display-mode-document @ fontoxml-editor/src/operations-display-mode.json is used.

  34. We resolved an issue where the selection in the XML source view could be displayed incorrectly at browser or system text zoom levels other than 100%.

  35. Squiggles are no longer selected unexpectedly when dragging over them and releasing the mouse. Only clicking on a squiggle (without dragging) selects it.

  36. Fixed a bug that would cause the popover for configureasrelatedlink @ fontoxml-dita/src/configureasrelatedlink.js elements to close unexpectedly if the document becomes read-only.

  37. We've improved the performance of navigating through large tables using the tab key.

  38. We've improved the performance of the documentshierarchy @ fontoxml-documents/src/documentshierarchy.js's findNextVisibleHierarchyNode method in large hierarchies.

  39. Fixed an issue where fonto:hierarchy-source-node and fonto:current-hierarchy-node-id would not invalidate queries if their result changed.

  40. The development server, used for developing Fonto Editor instances, will not verify SSL certificates anymore for proxy endpoints.

Other improvements

  1. We have implemented various optimizations in our table operations to make them even more efficient, making the table context menu a lot faster to open now.

  2. We have made some tweaks to the organization of the default table context menu for improved usability and performance.

  3. The filter function registered using registerpastednodesfilter @ fontoxml-clipboard/src/registerpastednodesfilter.js is now also applied to content generated by pasting HTML or other rich text. Previously it would only be applied when copy / pasting from Fonto.

  4. We now default the allowMergingWithAncestor CVK option to allowMergingWith for inline formatting families. Please refer to our upgrade instructions for details on how to check whether this affects your configuration.

  5. We've deprecated the old *-ui-pane operations and replaced them with the open-sidebar-tab @ fontoxml-editor/src/operations-sidebar.json and toggle-sidebar-tab @ fontoxml-editor/src/operations-sidebar.json operations. The ui-pane terminology was a leftover of our old Fonto 6.x UI components.

  6. The neutral theme is now the default theme for Fonto. See Themes for information on how to switch back to the blue theme.

  7. We've updated the icons for the Quality Check and Review sidebars to be different from each other.

  8. Previously, Fonto included a font that covered a subset of emoji, which caused some emoji characters to be displayed in a different style compared to others not covered by that font. Emoji and other special characters will now always be displayed using the system fonts.

  9. The same errors/warnings that are shown for documents in their sheet frame header are now also reflected on the corresponding item in the structure view.

  10. When loading, Fonto will now place the cursor in the first document rather than the first editable one. To override this, use the initialDocumentsLoadedNotifier on the initialdocumentsmanager @ fontoxml-remote-documents/src/initialdocumentsmanager.js to execute an operation to move the cursor to the desired location when the initial documents finish loading.

  11. Document previews that fail to load now include a Retry button to try loading the document again.

  12. The image browser now shows the preview pane as soon as it opens in order to prevent the visual shift seen when you select an image in previous versions.

  13. The calendarinput @ fds/src/components/calendar/calendarinput.js can now be fully controlled using the keyboard, using Tab to reach all parts and arrow keys to navigate through the calendar grid.

  14. FDS positioners (used for popovers, drops, tooltips, etc.) will now try to prevent overlapping other positioners automatically.

  15. Submenus in the Outline view are now able to be rendered outside of the bounds of the sidebar.

  16. Popovers opened from the sheet frame header now automatically close when scrolling.

  17. We improved the text in the Replace All warning modal in the fontoxml-find-and-replace add-on.

  18. We improved the text in the remote document state popovers to better align with the corresponding messages shown in the sheet frame header.

  19. We aligned the appearance of the fontoxml-annotations @ /opt/app/workspace/editor-source/fontoxml-annotations/ squiggles with those from Fonto Review.

  20. We fixed the inconsistent padding around icon widgets with a clickOperationName used in the columnBefore area.

  21. We now remove abstract element definitions from the compiled schemata. As per standard, these definition can never be validated against. This shrinks the size of compiled schemata.

  22. This release includes FontoXPath 3.13.3. Please refer to its releases page for more information. We've also made sure to update the xspattern library so the behavior of fn:matches better follows the specification.

  23. For the release notes of Fonto Review, please click here.

  24. For the release notes of Fonto Document History, please click here.