Whether you create, edit or review content, it is validated realtime. You can only create valid XML content, compliant with the XML schema (e.g. DITA, JATS, etc.) in use. For example, buttons that trigger commands that cannot be applied on the current cursor position or selection, will be disabled. This prevents the author from ever having to deal with invalid content.
Authors can cut, copy and paste content from Word, PDF or HTML, using the familiar keyboard shortcuts. When pasting in Fonto, the text on the clipboard is inserted, keeping paragraphs and line breaks where we can recognize them from the source format. For content copied and pasted within Fonto, the XML markup is preserved as far as it’s valid at the target location.
Authors can insert images, audio and video in any file format that can be rendered by the browser. For editing and rendering MathML content we incorporate a third party MathML editor. Other kinds of assets can be integrated in ways that do not rely on browser capabilities.
We keep track of textual changes for each document separately. Every addition or deletion is stored in the document as an XML processing instruction (PI) and contains a timestamp and an identifier for the author as provided by the CMS. Adjacent or overlapping changes are merged where relevant. Authors may accept or reject these changes, which commits the change to the document and removes the associated PI from the document.
Authors can annotate a fragment of text with a comment. Every annotation is stored in the document as an XML processing instruction (PI) and contains a timestamp and the id of the author as provided by the CMS. Authors may edit or delete their comments, which modifies or removes the associated PI from the document.
FontoXML uses the UTF-8 character encoding. Authors can insert Unicode characters through an ‘Insert special character’ dialog. We combine custom and client typefaces to correctly render most characters and Unicode features.
For schemas that define document sets (e.g. DITA maps), FontoXML provides commands to add or remove documents to and from a collection, changing the order of documents within a collection, as well as changing their level within the hierarchy.