FontoXML 7.3.0 (June 20, 2018)

New functionality

  1. This release introduces a new "embedded mode", which optimizes the amount of space used by Fonto's UI for scenario's where the editor is embedded in other applications. See the documentation for the use-embedded-mode configuration setting and useEmbeddedMode scope parameter for details.

  2. FontoXML now allows hierarchies with multiple occurrences of the same document. For example, it is now possible to load DITA maps with multiple topicref elements pointing to the same topic. Each instance of such documents will be editable, with edits automatically visible in all other instances. To reduce the confusion that this situation may cause, FontoXML marks these documents with an explanatory message in both the editor and structure view. Additionally, some operations now accept an optional hierarchyNodeId that allows targeting a specific instance of a reused document. Refer to Configure hierarchical multi-document management for details.
  3. In order to support different variants of publication previews and allow downloading previews, we've added two new operations to the fontoxml-publication-preview add-on: download-publication-preview and open-publication-preview-in-new-tab.

  4. This release adds the option to retry loading individual documents that failed to load initially, for instance due to temporary connectivity issues. Users can use this option in many cases to avoid having to restart the entire editor session when issues have been resolved. Implementations that use custom hierarchical multi-document management (i.e., using initialDocumentsManager.setLoadingStrategy) are encouraged to implement a new retry callback in order to enable this UI for their users. See the updated Configure hierarchical multi-document management guide for details and example code.
  5. Many built-in operations that normally operate on the selection now accept an optional overrideRange step data property, which can be used to override the range affected by the operation, as well as to obtain the resulting selection for further operations rather than modifying the actual selection directly.
  6. The open source add-on providing XHTML table support is upgraded to support a useBorders option, which can be set to false to turns border management off.
  7. configureAsListElements supports a new labelSelector option. This can be used to specify numbering-like elements that should automatically be removed when converting list items to paragraphs.
  8. A tableFilterSelector configuration option has been added to configureAsSimpletableTableElements in order to support conreffed DITA simpletables.
  9. Popovers can now be used in read-only contexts such as previews. Built-in popovers, including custom popovers based on FxReferencePopover, will automatically react to this context either by disabling themselves completely or by displaying in a read-only mode. Custom popovers may be disabled for read-only views by setting their static hidePopoverInReadOnlyViews property to true. Custom popovers are now passed an isReadOnly prop that can be used to adjust their appearance depending on the context. Note that popovers could be opened from a read-only preview of an otherwise editable document (which is also loaded in the editor). In such cases, operation-based components such as FxOperation would display as enabled, and may need to be disabled manually based on this prop to prevent editing the document from a read-only view.
  10. The fontoxml-structure-view add-on now exposes a public StructureView component, which can be used to create custom UI similar to the project browser. As an example, the project browser has now been made available as an open-source add-on.

  11. The breadcrumbs that are used in the status bar and in the cms browse modal library have been updated. Clicking the overflow now opens a drop with a menu, allowing access to the hidden items. To use this functionality in your own Breadcrumbs instance, implement the new renderTruncatedBreadcrumbMenuItem render callback prop.

  12. FDS Form and form field components have been improved to be more flexible and composable. Both Form and FormRow now support the spaceVerticalSize prop, which should help with aligning multiple fields in same row. Additionally, FormRow now supports the labelPosition prop to override labelPosition set on Form for a single row, FormRow may now be used outside of Form, and the message can now be omitted from form feedback.
  13. Together with FontoXML SDK version 7.3.0, we are releasing version 1.2.0 of the FontoXML content quality app. See the corresponding release notes for more details.
  14. A 'hasHeader' parameter has been added to table-insert operation.
  15. The fonto_date localization formatter now supports an optional "short" date format, which omits the year. See the documentation for details.

Resolved issues

  1. DITA maps are now validated before being processed. In previous releases, schema-invalid map documents could in some cases still be processed into a hierarchy when loaded, which could cause unexpected behavior.
  2. Built-in operations that use a stencil will no longer throw an error if the stencil contains elements not supported by the current schema. The operation will now merely be disabled.
  3. When using the default hierarchy loading strategy, loading new documents by changing the URL could leave the old documents in the content view. This has been resolved.
  4. The subtitle of a SidebarHeader no longer ignores the value of the userSelect prop.
  5. Resolved an issue where the wrap-selection-in-structure would fail when given the contextNodeId of a node that does not support children, such as a text node. This now correctly disables the operation.
  6. A number of issues have been resolved where the cursor was either not correctly placed back in the editor when clicking non-interactive parts of the UI, or where interaction with the UI was not possible using keyboard shortcuts. In some cases, for instance, clicking in the masthead and then pressing tab to navigate through the available tabs and buttons would not work as expected.
  7. Copy/pasting within Fonto now preserves any inline markup surrounding the selection.
  8. Resolved a visual issue with text input fields in Edge.
  9. An issue has been resolved in the SDK portal's schema converter that incorrectly ignored xs:any if its processContents attribute is omitted in the schema. This value now correctly defaults to "strict". Please re-convert your schema if you may be affected by this issue.
  10. An issue has been resolved in the SDK portal's schema converter that caused conversion to fail for any schema that contains a redefinition of a complexType.
  11. The attributes editor will now correctly show fields for configured attributes that are allowed by an xs:anyAttribute declaration in the schema.
  12. The 7.2.0 release introduced an issue where the referrer document ID could be omitted for certain requests, including those to the /asset/preview and /document endpoints. This has been resolved.
  13. An error has been resolved that prevented selecting any node in the project browser if any document in the hierarchy could not be loaded.
  14. Hovering over an element having a operation-name attribute no longer changes the cursor to 'pointer' in read-only contexts.
  15. Primitives used to insert or modify text were not validated against the schema in some cases. This could cause operations to fail if these were applied to elements with XML Schema simple types. This has been resolved.
  16. Popovers no longer close unexpectedly when clicking on drops extending outside the popover.

Other improvements

  1. To improve performance, Fonto no longer tries to immediately render all loaded documents. Instead, Fonto now only renders those documents that are visible. This significantly improves loading performance by spreading out the time it takes to render all loaded documents. As a result of this change, users may see some slight changes in the ordering of Find results, comments and tracked changes: items inside out-of-order structures such as footnotes are now ordered as if they were placed inline at the footnote's anchor position.
    By default, Fonto renders documents which are off-screen when the browser detects it is idle to improve scrolling performance. This uses the requestIdleCallback API. Because this API is not available in all browsers, the feature is not always available. This behaviour can be influenced using the enable-experiment/render-invisible-views-when-idle experiment.
  2. The Wiris (MathML) modal can now be closed by either pressing esc or ctrl/cmd+enter, closing the modal or submitting the modal repectively.
  3. The convert-range-to-plain-text operation has been improved to yield the expected results in more cases. The operation will now always remove any formatting. Inline frames can be removed or shrunk, but will never be split.
  4. Fonto will now warn when an observed query uses multiple documents. This is not currently supported, as modifications in other documents will not correctly trigger updates.
  5. Unlocking a document with auto save enabled now triggers a auto save before unlocking. Unlocking a document with auto save disabled warns the user to first save before it enables the unlock button.
  6. By default, the XML source sidebar tab will now only display its icon. The show-xml-source-view-tab-label configuration value can be set to true to show the label.
  7. The icon widget can now be used on inline elements as well by setting the new isInline option to true when calling createIconWidget.
  8. To better indicate the active UI element, the blue outline indicating the focused sheet frames is now only shown when the sheet frame actually has focus.
  9. Various FDS components have been improved:
    • Text and TabButtons are now as big as their content rather than stretching to fill the available space.
    • OptionalInput now stretches to fill the available space just like other input components do.
    • CollapsibleInlay now uses a Block inside its content to avoid performance issues caused by using display: flex and overflow-y: auto styles on the same element. 
    • MultipleAutocomplete now supports tooltips for selected items by setting the item's tooltipContent property.
    • The layout of TimelineEvent has been tweaked for readability.
    • Drop and FormRow now support onMouseEnter and onMouseLeave props.
    • Heading now supports an icon prop.
    • Icon now supports a tooltipContent prop.
    • The icon and label of a TextLink are now properly aligned.
    • MenuItem and MenuGroup and their Fx derivatives are no longer required to be direct children of the Menu or MenuGroup components, as long as they are descendants of one.