Xopus 5.3

This release includes various improvements to editing behavior, a tags on view, additional API for creating a custom spellchecker and much more.

Release date: 2015-12-17

Release notes

Tags on view

An additional configuration option is available to define a tags on view. The tags will be automatically injected in the rendering. Configuration is available to define what tags should have a tag shown and if the pretty name or the raw XML name should be shown.

API for defining custom spell checker functions

New API methods are now available for letting you define a custom spell checker, which for example can use a server-side spell checking service.

Table editing improvements

Several improvements will let you edit tables much more easily.

Pasting merged cells
Tables with merged cells are now pasted correctly into documents that use the CALS table model. You can have merged cells if they were copied from Word or HTML.

Column names in CALS tables
In tables that are following the CALS table model, every column has a name specified in the column specification. This can be used on the cells to facilitate spanning cells over multiple columns. These column name attributes are now updated correctly when inserting new columns.

Column commands from the breadcrumb for column
When working with CALS tables the breadcrumbs show an item for the column element (colspec) as well. The menu for this item now shows options to delete or move the column, and add to additional columns to either side of the current column.

Improved label: Change cell type
The label for changing a header cell used to say "Change header cell", but it was not clear what will be changed. The new label is "Change cell type (cell/header cell)" for when you wish to switch the cell type from header to regular(non-header) cell.

Allow delete of selection spanning several cells
In previous versions, selections over multiple cells could not be deleted at all, or resulted in a broken table structure. It is now possible to select a part of the table and delete, the table will be kept valid, and the selected content will be removed.

Delete tables from the table tab
You can now delete tables from the Table tab as well.

Bug fix: Table is broken (additional tgroup added) when pasting table with header
Pasting a table with a header would result in a table with two tgroups: one tgroup with the header row and and a row with one empty cell, and another tgroup with the table body.

Codeblock editing improvements

The following changes have been made to improve editing behavior in codeblocks and other space-perserving elements:
  • The cursor position is now displayed correctly when inline elements are used in a codeblock.
  • Space-preserving content is now wrapping in the xml view.
  • Newline at the end of a codeblock is now shown.
  • Linebreaks are no longer lost when copying codeblock to another codeblock.
  • Cursor down in a codeblock now works correctly in Chrome.
  • Cursor position is now rendered correctly at the end of the line in a codeblock in IE.
  • New linebreaks are now shown in IE after moving cursor.
  • Cursor position is now updated when typing in codeblock in IE.

XMetal-style placeholders

In XMetal, placeholders can be configured by using an XML processing instruction in the document or template. Those placeholders are now behaving as real placeholders in our editor as well. This is not a replacement of the existing placeholder feature, but an addition for improved compatibility.

Handle unique attributes

  • Some attribute values are meant to be unique in the context of a document. However, the default behavior in the editor is to copy attributes when pressing enter.
  • When attributes are defined as do-not-duplicate, those attributes are not duplicated on copy/paste. Attributes can be defined as unique because they are defined with the xs:ID type in the XML Schema, or by using the do-not-duplicate role in the node configuration.

Correctly identifying Opera

Opera 15 and later was recognized as Chrome, causing the editor to be run without warning that Opera is not a supported browser. The warning is now shown again. If you want to use Opera anyway, that is possible by clicking the try anyway button, or by configuring a URL parameter (platformtest=skip).

Copy/paste bugfixes

Links are not pasted when pasting from Word 2013 into IE11
With certain HTML structures, links were stripped out of the content when they were pasted. This was the case when copying HTML structures in Word 2013. Now the links are maintained and can be pasted from Word 2013 into IE11.

Copy and cut do not place content on system clipboard when using the buttons in the UI
Content was copied and correctly pasted when pasting within the same document, but it was not available for pasting to external applications. Now the content is placed on the system clipboard and available to external applications.

Cut from the breadcrumbs sometimes leaves structure behind
Cut would not cut the exact element, but a selection which in some cases did not include the entire element. This now fixed.

Incorrect cursor behavior after pasting a table from external source
After pasting a table from Microsoft Word for example, the cursor behavior in the editor would not be correct, and required several key presses instead of one to move from one cell to another.

TypeError when pasting some types of lists from Microsoft Word into Chrome
When a list with items with multiple paragraphs was pasted, this could not be processed correctly. Now you can even paste lists that include paragraphs.

Other bugfixes

Prevent two consecutive spaces
This editor does not allow two consecutive spaces. Multiple spaces are not handled well by the editor and would for example cause cursor problems. The editor already prevented multiple spaces when pressing the spacebar. However there are other situations that can result in multiple spaces in the document and these are now fixed.

Template will overwrite existing attribute for empty children
When an element is applied on a selection, empty elements in that selection have their template applied again as well. When such an element has a template for an attribute, the template value would overwrite the value in the document. Now the template is applied only to elements with content.

addEventListener does not accept an object as second argument
The addEventListener function was documented to accept both a function and an object as the second argument. Using an object was not working, and this option is now removed completely.

Find/replace becomes very slow in IE when a lot of results are found
A somewhat slower response for longer documents is expected, but in IE the response time became unacceptable with more than 100 results. The speed is now reasonable for up to 1000 results, similar to the performance in Chrome and Firefox.

XML view collapses completely
In some situations the XML view would collapse to the root element. This no longer happens.

Inline SVG is not displayed in IE9+
Inline SVG is now supported again in Internet Explorer.

Known issues

  • Problems with rendering html content after the Xopus island in IE:
    In IE10 and later, html content after the <xml> island in the html might not be rendered correctly if self-closing tags are used in this xml. Wrap an extra <div> tag around <xml> or replace self-closing tags with pair-closing tags to resolve it.
  • When copying content in the tags on view in Internet Explorer, the text of the tags is copied to the clipboard as well.
  • Processing instructions for placeholders (xm-replace_text) inserted using the API after loading the document are not recognized as placeholders.
  • Pasting multiple paragraphs in Firefox without the SDL copy/paste extension does not paste all content.

Supported browsers

  • Microsoft Internet Explorer 10
  • Microsoft Internet Explorer 11
  • Google Chrome
  • Mozilla Firefox