Wednesday, October 02, 2019

Enhancing DITA Publishing With Free Plugins Developed by Oxygen

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

The DITA Open Toolkit publishing engine comes with support for predefined output formats like HTM5, PDF, and Eclipse Help. As the architecture of the publishing engine is plugin based, over time we have developed lots of useful plugins in the Oxygen XML GitHub account that enhance the publishing and in this blog post, I will enumerate some of them. For the plugins which are already installed within Oxygen XML Editor's DITA Open Toolkit engine I added the [Bundled] marker.

Plugin that Converts DITA Maps to PDF Using CSS 3 [Bundled]

Maybe our most important work so far, this plugin can publish DITA to PDF using CSS. As a publishing engine, it can use either our Oxygen XML Chemistry processor (freely bundled with Oxygen XML Editor) or the Antenna House and Prince XML engines.

DITA Metrics Report [Bundled]

This is a very useful open source plugin that generates an HTML report from an existing DITA project containing lots of useful information like:
  • Total number of maps and topics that are part of the project.
  • Total number of elements used in topics and maps along with a table presenting all element names and their usage counter.
  • The used elements used from each DITA domain.
  • Total number of attributes used in topics and maps along with a table presenting all attribute names and their usage counter.
  • Statistics about the conditional attributes used in the project.
  • Information about content reuse.
  • Text and content statistics, including both total words (word count) and unique words (vocabulary).
  • List of largest and smallest topics and the number of words each one used.
  • Listing of all links to resources outside of the project.

Export DITA Map Plugin [Bundled]

You can use this free plugin to create a ZIP file from your entire DITA project. The plugin also takes filters/profiling into account when including topics.

Publish DITA Content with References to Video and Audio Resources. [Bundled]

A DITA Open Toolkit plugin that converts the DITA <object> element to various HTML 5 structures like <<video>, <audio>, or <iframe>.

Plugin That Adds Edit Links in HTML or PDF-based Outputs [Bundled]

This plugin adds edit links in the HTML or PDF-based outputs allowing subject matter experts to give feedback on the published content directly using a DITA web editing tool like Oxygen XML Web Author.

Create Single Merged XML Document From Entire DITA Project [Bundled]

This plugin produces a merged output from the entire DITA map structure without further processing. It's useful if you want to further process the merged XML document for producing various reports.

Dynamically Publish Excel Content as DITA

A DITA Open Toolkit plugin that dynamically converts to DITA Excel files referenced with format="excel" in DITA maps.

Dynamically Use JSON Content in DITA Topics

A DITA Open Toolkit plugin that dynamically converts to DITA JSON files referenced with format="json" in DITA maps.

Embed HTML Content in DITA Topics [Bundled]

A plugin that allows embedding well-formed HTML content in a DITA topic inside a special element.

Embed LateX Equations in DITA Content

A DITA Open Toolkit plugin that allows publishing embedded Latex mathematical equations to HTML and PDF.

Embed UML Diagrams in DITA Content

A DITA Open Toolkit plugin that allows publishing embedded UML diagrams equations to HTML and PDF.

Float Images in HTML and PDF Outputs

A plugin that allows floating an image referenced in a DITA topic left or right depending on the "outputclass" attribute value specified on it.

Embed Referenced MathML and SVGZ Images in HTML Output

A DITA Open Toolkit plugin that allows you to embed referenced MathML and SVG images in the HTML5 and XHTML output.

Dynamically Convert DITA Tables to Graphs

A DITA Open Toolkit plugin that converts DITA tables having a certain structure to SVG graphs.

Show Oxygen Change Tracking Information in the PDF Output [Bundled]

This plugin allows you to see Oxygen XML Editor track changes (insertions, deletions, or comments) in the PDF output.

Sample Customization Plugin for Classic PDF Output

This sample DITA Open Toolkit PDF customization plugin is a good starting point if you want to:
  • Customize fonts

  • Customize a Cover page to provide custom logos and coloring

  • Customize Page headers and footers

PDF - Generate Numbers Before Topic's Title

A DITA-OT PDF2 customization plugin that can be installed to generate numbers before each topic's title.

PDF Plugin That Presents Chapters With Landscape Orientation

A PDF customization folder that allows you to define landscape orientation for a certain chapter.

Wednesday, August 28, 2019

Implementing a Custom Author Action to Split a Table

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr
Let's say you are editing XML documents belonging to a certain vocabulary (like DITA) for which there is a framework configuration available. The purpose of this post is to create a new custom Author action for splitting the current edited table in two based on the table row in which the cursor is located. The custom action will use Javascript to call Oxygen's API and accomplish this. Here are some steps to follow:
  1. Follow the steps 1,3, 4 and 5 listed in this older blog post to create an extension of the DITA framework:

  2. In the Document Type Association preferences page, edit the DITA framework extension you just created. Go to the Author->Actions tab and create a new action with the ID split.table. Use the predefined JSOperation to invoke a custom Javascript code. The custom action definition would look like this:

  3. Set as value to the script parameter of the operation the following Javascript code:
    function doOperation(){
        current = authorAccess.getDocumentController().getNodeAtOffset(authorAccess.getEditorAccess().getCaretOffset()); 
        tableNode = null;
        rowNode = null;
        while(current != null) {
          if(tableNode == null && ("table".equals(current.getName()) || "informaltable".equals(current.getName()))) {
            tableNode = current;
          if(rowNode == null && ("row".equals(current.getName()) || "strow".equals(current.getName()))) {
            rowNode = current;
          current = current.getParent();
        if(tableNode != null && rowNode != null) {
          //Create a fragment starting from the row to the end of the table
          secondTable = authorAccess.getDocumentController().createDocumentFragment(rowNode.getStartOffset(), tableNode.getEndOffset());
          //Delete the content from the first table.
          authorAccess.getDocumentController().delete(rowNode.getStartOffset(), tableNode.getEndOffset() - 1);
          //Insert the second table.
          authorAccess.getDocumentController().insertFragment(tableNode.getEndOffset() + 1, secondTable);
  4. Go to the Author->Toolbar tab and use the Current actions panel to add the action with ID split.table to the toolbar.

  5. When editing a DITA topic, pressing the toolbar action for splitting the table should now call your custom action and split the current table.

  6. You can add keyboard shortcuts for all custom actions either when defining them or from the Oxygen main menu Preferences->Menu Shortcut Keys page.

Tuesday, May 07, 2019

Aspects and Facets of a Healthy DITA Project

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

How should a Happy and Healthy Documentation Project Look Like?

Do you have a Healthy Project?

  • Focus on writing and not on workflow.

  • Involve peer-reviews, SMEs and end users.

  • Easy start for first-time contributors.

  • Easier produce deliverables and correct errors in older deliverables.

  • Allow for future evolution: more writers, more outputs, more content, more products.

Why do big companies use the DITA standard?

  • Standard means owning your content and no vendor lock-in (editing or publishing).

  • DITA works very well with topic-based authoring.

  • Lots of content reuse potential.

  • Reuse lowers translation costs.

DITA Doc Project Aspects

  • Storage

  • Workflow

  • Collaboration

    • Sharing Common Constraints (editing, validation, spell check dictionaries, ...)

  • Structure

    • Managing links and reusable content

  • Translation

  • Publishing (Producing Deliverables)


  • Commercial content management systems (CMS).

  • Open Source version control systems: Git, Subversion, CVS

Version Control

  • Ability to Tag Releases and Create Branches.

  • See history for resources.

Working with the storage system

  • Commercial CMSs – Remote editing, locking.

  • Open Source version control systems – Local working copies, no editing restrictions → conflicts.

    Hint: Maybe you can use the same storage system as software developers in your company.

Collaboration and Workflow

  • We invest a lot of time each day collaborating with our team or external collaborators.

  • Collaboration should be as comfortable as possible.


Issue tracking

  • Using workflow features in the CMS

  • Using issue management systems like Bugzilla, Atlassian JIRA or Trello.

    • Tip: Linking the product development with the documentation development.

Issue Tracking Examples

Custom workflows

  • Documentation task specific workflow

  • Integrate QA and documentation in software development process

Issue tracking – Simple Documentation Workflow

Issue tracking – Development and Documentation Workflow

Issue Tracking and Storage Integration

Issue Tracker can provide a single place where you can monitor a ticket from start to end, including:

Issue description and details

  • Who worked on that issue

  • What was changed in the application

  • What was changed in the documentation

  • Who should be notified when issue is resolved.

Involving Subject Matter Experts

  • SMEs provide original content (DITA or Markdown or ...)

  • Let SMEs review the published output.

    • HTML with feedback forms

    • PDF with comments.

    • Formal review with web editing tool integrated with storage system.

    • Informal review DITA content using change tracking and comment capabilities

How can end users collaborate with us?

  • Send feedback via email/forum/phone.

  • Send feedback in the published HTML output.

  • Give feedback using an online DITA editing tool with comment-only capabilities.

Contribution Consistency

Sharing common settings between writers

  • Custom style guide.

  • Specific editing enhancements.

  • Specific validation settings.

  • Controlled attribute values.

  • Custom spell and auto-correct dictionaries.

  • Various other common preferences.

Custom Style Guide

The style guide is internal documentation about how to write documentation.

How can we remember what’s written in the style guide?

  • Searchable help output from internal style guide.

  • Find an automatic way to impose style guide rules when editing.

Automating Style Guide Rules

  • Schematron to add custom validation rules.

  • Schematron Quick Fixes to propose quick fixes for each custom error message.

  • Custom Spell dictionaries.

  • Custom auto-correct mappings.

  • Advanced terminology checkers like Acrolinx, HyperSTE or LanguageTools.

  • Building your own terminology checker using Schematron.

DITA Project Structure

  • Organizing various resources in various folders

  • Some CMSs may not consider this relevant.

File and folder naming/organization conventions

  • By type:

    • Tasks/t_installation.dita

    • Concepts/c_profiler.dita

  • By semantics:

    • xslt_debugger/backmapping.dita

    DITA Style Guide

Managing Content Reuse

  • Separate folders containing reusable content.

  • Keep dictionaries of reusable components

  • Prefer indirect references (conkeyrefs)

Managing Links

  • Prefer indirect links (key references)

  • Reuse link targets

  • Re-direct links depending on publication

  • Use relationship tables

Project-wide refactor operations

  • Convert between various topic types.

  • Rename or move one or more topics.

  • Change XML structure in topics from the entire project.

    • Example: Change the value of a specific attribute.


  • You create your content in the primary language using a DITA authoring tool .

  • Send a copy of the relevant DITA files to the localization service provider (LSP).

  • Receive translated DITA content back from (LSP).

Optimizing for translation


  • Map-wide Validation and Consistency Checks

  • Validate each topic according to DITA standard.

  • Check for broken links, key references and content references, missing images or referenced resources.

  • Check for broken links to remote web sites.

  • Check for broken links in the context of profiling filters.

Producing the deliverables

  • Checking the project before publishing.

  • Sharing publishing customizations

  • Automatic production of deliverables either via CMS or via an automated open source server (Jenkins).

Useful links


A healthy DITA project needs to:

  • Be Manageable.

  • Allow for scalability.

  • Allow for easy collaboration.

  • Allow for detection and correction of mistakes before the deliverables are published.

  • Allow for correction of mistakes after the deliverables are published.

But don’t panic if you do not have all the aspects of a project covered, your project does not need to be perfect, it needs to be perfectible.

Tuesday, April 16, 2019

Oxygen XML Editor - DITA Oriented Tips And Tricks

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

Oxygen XML Editor has about 18 years of development under its wings. During these years, we added lots of functionality and many of our users usually do not know more than 20-30% of Oxygen's features. So this presentation is intended for technical writers using Oxygen to write DITA content and who may want to find out more about their tool.


There are lots of free add-ons provided by the Oxygen team that can be installed in an Oxygen standalone version. I will enumerate some of the most interesting one:

  • Git add-on. This plugin adds a side view allowing you to do some common Git operations like pull, commit, push (mostly 90% of what a regular Git user would do).
  • Content Fusion Connector add-on. Collaborate with your peers by sending them links that allow them to give you feedback on your work using a web browser without the need to pre-install anything on their side.
  • Translation package builder. Small plugin that can be used to prepare a zip file containing only the topics that have changed from one version to another.
  • Batch convertor add-on. Converts multiple HTML, Markdown, Excel files to DITA.

Project-related Functionality:

The Oxygen Project view is the place where you can organize and apply batch changes to all your DITA resources:

  • Master files support. Enable master files support in the DITA project, add your top level DITA Maps as master files and any structure changes, renaming or moving files will automatically update all links in the DITA Project. Also works for renaming/moving image resources.
  • Store options at project level. Almost all of Oxygen's preferences pages can be saved at project level. Once you do that, you can share the project.xpr file with somebody else and when they open it, they will also get the settings set inside the project.
  • Compare files/folders.
  • Refer to multiple folders.
  • Batch operations: Select a folder in the project and use the "Transform", "Validate", "Format and Indent", "Find/Replace in Files", or "Spell Check in Files". Or use the "XML Refactoring" action to apply a refactoring stylesheet over all the selected files.
  • Filter files. You can instruct the Project view to hide various file types.


Actions to find opened files, find files containing a certain content or navigate between files.

  • In the main Window menu, you can find the Next/Previous Editor actions and their shortcuts. Together with the Switch editor tab action, these help you navigate between opened XML documents.
  • The Open/Find Resource view (main menu Window->Show View) allows you to search for file names, search in file contents, or search for files containing comments or change tracking.
  • Right-click the tab of an opened DITA document and use the Copy location action. Or use the Show in Explorer/Finder action to locate the file.
  • Use the main menu File->Reopen last closed editor action to re-open the last closed file.
  • Open a DITA topic in the Text editing mode, right click, choose Go to definition to open the DTD, XML Schema or RelaxNG Schema at the precise location where that DITA element is defined, something useful for debugging DITA specializations.
  • Use the Navigation toolbar to Go back/forward/last modification.

Find/Replace Functionality

The Find/Replace functionality is the bread and butter of any editing application and Oxygen has lots of functionality in this regard:

  • Find/Replace in Files.
    • Restrict to XPath - If you want to make replacements only in certain parts of the XML document, the XPath restriction can be used to focus only on certain attributes or element content.
    • Ignore Whitespaces - You should usually check this checkbox as there is always there is a possibility what the words you are searching for may be split on multiple lines in the XML content.
  • The Find menu → Find Next/Previous actions allow you to find the next/previous occurrence of the current selected word(s). Or you can use the Find All action to find and highlight all occurrences of a word or a sequence of words.
  • The Find menu → Find all Elements action shows a dialog box allowing you to find elements or attributes containing a sequence of words.
  • The Find menu → Quick find toolbar is a compact toolbar giving you access to search functionality.
  • The XPath allows you to use XPath expressions (i.e. //comment()[contains(., 'TODO')]) to search the current topic or a set of topics for elements, attributes, or comments matching a set of conditions.

DITA Maps Manager

The DITA Maps Manager view's contextual menu gives you quite an impressive array of useful actions:

  • Fast create new topics. Create a set of DITA topics by specifying only their titles.
  • Add references to multiple topics.
  • Create key definition with keyword.
  • Edit Properties - You can even set profiling attributes on multiple selected topic references.
  • Export DITA Map - Export your DITA Map to a zip archive ready for translation.
  • Find Unreferenced Resources - Find all resources which are no longer used in a DITA project.
  • Refactoring menu
    • Rename/Move topic - Renames a topic and all references to it.
    • Rename key - Rename a DITA key and all its references in the entire project.
    • Conversions between topics - Convert between topics, tasks, concepts, and references for multiple selected DITA files.
    • Convert nested sections to new topics - Convert all sections located inside a topic to new topics.
    • Convert nested topics to new topic - Convert all nested topics to new topic files.
    • Apply custom refactoring scripts - Create and apply your own XSLT or XQuery refactoring scripts.
  • Find/Replace in Files.
  • Spell Check in Files.
  • Search References - Search all references to a particular referenced topic.
  • Remove from Disk - Check in how many places a topic is referenced and then remove it from disk.
  • Open with resolved topics - Open the DITA Map with all topic references expanded, useful if you want to have an overview of the entire publication.
  • Synchronized selection between DITA Maps manager and main editor area - Anytime a DITA topic is opened both in the DITA Maps Manager and the main editing area, moving the selection in one instance will also move the selection to the corresponding place in the other.

Editing in the Author Visual Editing Mode

  • Maximize editor area - Double-click the opened editor's tab to hide all side views and maximize editing space, double click again to show the side views.
  • Increase/decrease editor font - Use Ctrl/CMD +/- to increase or decrease the font in the current edited document.
  • Inserting elements - Pressing ENTER in the Author visual editing mode will show you a list with all possible elements that can be inserted. If you choose an invalid element, Oxygen will find a place for it. You can also add custom actions or code templates to the content completion list.
  • Select content then press ENTER to surround the content in a new element.
  • Select multiple intervals - Press the Ctrl/CMD button when selecting text to select multiple text intervals. Once you do that, you can use toolbar actions like Bold, Italic, or Underline or you can use the Edit Profiling Attributes action to set profiling attributes on all the selected items.
  • In-place attributes editor - Instead of using the Attributes view, you can press Alt-Enter to edit attributes for the current element in a small pop-up dialog box.
  • Select an entire element - Triple-click inside an element's contents to select the entire element. After this, you can move the element to a new place.
  • Double-click to select by word, then drag the mouse to select the content word by word.
  • Move elements (especially paragraphs, list items) up or down (ALT-UP/DOWN), indent or unindent list items (Tab, Shift-Tab).
  • Select content and then use the Toggle comment action (contextual menu Refactoring submenu) to quickly add an XML comment around it.
  • In the contextual menu the Text submenu contains useful actions to count the number of words in the entire document (or in the selected text), convert the selection to upper, lowercase, or sentence case
  • Bookmarks - Click the vertical left side bar in the editing area to add a bookmark. Navigate to that bookmark even after the file has been closed using the Ctrl/CMD + number shortcut.
  • Collapse other folds - Click a fold triangle in the Author visual editing mode and you can choose to close all other folds, useful when working with multiple sections in the same file.
  • Code templates - Define small fragments of XML content that can be inserted either by defining a shortcut key or by pressing ENTER in the editing area.

  • Editor variables - Certain Oxygen-specific macros can be automatically expanded. For example, a code template that inserts the current author name can use this editor variable:
    or a code template that surrounds the selection inside a <keyword> element:
    or a code template that first asks the end user for their name and then inserts it in the document:
    <author>${ask('Author Name', generic, 'John Doe')}</author>
    Code templates can also be used when creating new file templates.
  • Outline Quick find filter - The Outline view contains a filter that can be used to reduce the number of elements displayed in it (for example, display only the contained topics).

DITA-specific Editing in the Author Visual Editing Mode

  • DITA Reusable Components view. You can use this side view to quickly search for and insert references to keys or to reusable components.
  • Inserting links to resources. Besides using the toolbar actions you can also:
    • Drop a file from an outside location. Drag a DITA topic or other resource from the Explorer/Finder or from the Oxygen Project and drop it inside an opened DITA topic to insert a reference to it.
    • Paste a URL in the editing area to insert a reference to it.
  • Links to images:
    • Drop images from the Project view in the main editing area to insert references to them.
    • Copy an image and then paste it in the editing area to insert a reference to it.
    • Double-click broken image reference to modify attributes.
  • Reuse content:
    • Copy an element that has an ID set on it and then right-click elsewhere and use the "Paste Special → Paste as content reference" to insert a content reference to the element.
  • Select multiple sibling paragraphs and use the Insert list item toolbar item to convert them all to list items. Select multiple list items and use the Insert table toolbar action to convert them to a table.
  • Working with tables:
    • You can right-click inside a table and use the Table Properties action to change lots of table-related settings.
    • You can sort tables based on certain criteria.
    • In the contextual menu Refactoring submenu you can find actions to convert between CALS and simple tables.
    • You can select an entire table by clicking its left corner and select an entire row by clicking to the left of it.
  • Add hotspots to images - You can right-click any image reference and use the Image Map Editor to configure target links for various parts of the image.
  • You can right-click inside an element and use the About Element contextual menu item to find out more about it.
  • Pasting content from web browsers, Excel spreadsheets, or Word documents inside a DITA topic produces the equivalent DITA content.
  • The Styles drop-down toolbar menu allows you to choose between various CSS styles to apply while editing. The Hints and Inline actions layers should be interesting for you to experiment with. Or you can add your own.


Oxygen has a lot of global settings that can be configured, I will just list what I consider to be the most important ones:

Menu shortcut keys - You can use this preferences page to assign or to see the shortcut for any action available in Oxygen.

Fonts - This page allows you to change the default fonts used in the application.

Appearance - Change the default color theme in Oxygen (the Graphyte theme is quite popular).

Spell check - Customize the spell checker settings, use custom spell check dictionaries.

Save - Settings to automatically save or to check for errors before saving the file.

External tools - Define various command line tools that you can launch from Oxygen.

Annotations - Disable the tooltips which appear when hovering over various elements (useful if you have a small screen).


The Tools main menu is worth exploring sometimes. You can invoke XML refactoring actions from it or open other small applications like the SVG viewer.


The File menu offers the possibility to import HTML, CSV, Excel files, or database content as XML.

Other Views and Toolbars:

You can right-click in the toolbar area and use the Configure Toolbars action to see what toolbars are available or what toolbars can be removed.

The Symbols toolbar is quite interesting if you often want to insert symbols that are not on the current keyboard.

Other Small Tips:

The main Window menu has actions to tile all opened XML documents and also to enable synchronous scrolling in them (useful if you want to look at similar XML documents and maybe to copy/paste between them).

Keeping in Touch

Oxygen's Help menu allows you to use the Report problem action to contact us directly. The Support Tools->Randomize XML Content action allows you to randomize the content of an XML project before sending it to us for tests.

And there are a lot of other ways to get in touch with us or to find various videos or tutorials to read:

Friday, March 22, 2019

Oxygen XML Editor DITA Editing solution strong points

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

We are sometimes asked which are the differentiating features between Oxygen XML Editor and its competitors when it comes to DITA Editing. So below I tried to list some differentiating features (strong points) that Oxygen has:

Thursday, March 14, 2019

Adding support for embedding Latex equations in DITA content

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

LaTeX is a high-quality typesetting system that includes features designed for the production of technical and scientific documentation. LaTeX can also be used to express mathematical formulas in a textual format. By default, web browsers and PDF readers do not have support to show mathematical equations written in LaTeX but there are open source projects that can read LaTeX and convert it to other image types.

Adding support for writing LaTeX equations in DITA topics would imply three stages:
  • Find a way to write the equation in the DITA XML content. You can either create a DITA DTD specialization and add a new element (for example, called <latex> and it extends the DITA <foreign> element). Alternatively, you can use the DITA <foreign> element with a specific @outputclass attribute value directly:
    <!DOCTYPE topic PUBLIC "-//OASIS//DTD DITA Topic//EN" "topic.dtd">
    <topic id="testEquation">
        <title>Test equation</title>
            <p><foreign outputclass="embed-latex">L' = {L}{\sqrt{1-\frac{v^2}{c^2}}}</foreign></p>
  • If you want Oxygen to properly present the LaTeX equation when editing in the Author visual mode, you need an Oxygen plugin that converts the equation content to an image. There is a sample plugin that does that here: You can download and copy the plugin folder latex-images-support to the Oxygen plugins folder, then restart Oxygen.
  • Publishing to HTML-based and PDF outputs. This DITA Open Toolkit plugin automatically converts LaTeX images to SVG when publishing:

Friday, January 25, 2019

Migrating Various Document Formats to DITA

Share to Facebook Share to Twitter Email This Share on Google Plus Share on Tumblr

Most companies do not start new DITA-based projects from scratch. They already have content written in various other formats and somehow they need that content converted to DITA. In this blog post, I will offer some conversion advice depending on the format of your current project.

Migrating DocBook content to DITA.

Because DocBook content is XML, migrating it to DITA is quite straight forward:
  1. You first convert the DocBook document to a single large DITA composite file and you can do that with the predefined transformation scenario bundled with Oxygen called DocBook to DITA.
  2. There is a utility XSLT stylesheet on the Oxygen XML GitHub account that can convert a DITA composite to a DITA map with separate DITA topic files:

Migrating Microsoft Word content to DITA

The Oxygen XML User Manual has a detailed topic enumerating the possibilities to convert Microsoft Word content to DITA:

Migrating Excel content to DITA

You can use Oxygen's Smart Paste functionality to copy content from an Excel spreadsheet and paste it inside an opened DITA topic. Also, as an alternate possibility, the Oxygen Resources Converter add-on was updated to be able to batch convert Excel to DITA:

Migrating LibreOffice content to DITA

LibreOffice documents can be saved in Word format, and once you do that, you can convert the Word content to DITA as described above. Alternatively, you can save the LibreOffice documents to DocBook and then apply the DocBook to DITA conversion technique described above.

Migrating Google Docs to DITA

You have three possibilities to convert Google Docs to DITA using Oxygen:
  • Copy/Pasting from Google Docs to a DITA Topic opened in Oxygen in the Author visual editing mode should work and convert the pasted content to DITA.
  • Save the Google document as OpenDocumentFormat (ODF) then save the ODF document as DocBook with Libre Office, then apply the DocBook to DITA transformation scenario shipped in Oxygen to convert DocBook to DITA.
  • Save the Google document as HTML then use the Oxygen batch converter add-on to convert it to DITA:

Migrating Markdown content to DITA

The DITA Open Toolkit publishing engine bundled with Oxygen allows you to reference Markdown files directly in a DITA map and either publish them directly or export the Markdown files to DITA one by one: If you want to convert multiple Markdown documents at once, you can use the Oxygen Resources Converter add-on:

Migrating HTML content to DITA

Using Oxygen's Smart Paste functionality, you can open the HTML documents in a web browser, then copy the contents and paste it in a DITA topic opened in Oxygen's Author visual editing mode. If you want to convert multiple HTML files, you can use the Oxygen Resources Converter add-on:

Migrating unstructured FrameMaker to DITA

There is a FrameMaker plugin that can be used for this type of conversion:

Migrating MadCap content to DITA

Some recent MadCap versions seem to have facilities to export content directly to DITA. Otherwise, you will need to convert XHTML content to DITA with a custom XSLT stylesheet to preserve variable references.

Migrating other formats to DITA

You may find third-party applications (like Pandoc) that can convert your content to HTML or to some kind of XML format like DocBook. Once you have HTML or DocBook content, you can convert them to DITA using the advice above.