Mammoth .docx converter

Description

Mammoth is designed to convert .docx documents, such as those created by Microsoft Word, and convert them to HTML. Mammoth aims to produce simple and clean HTML by using semantic information in the document, and ignoring other details. For instance, Mammoth converts any paragraph with the style Heading1 to h1 elements, rather than attempting to exactly copy the styling (font, text size, colour, etc.) of the heading. This allows you to paste from Word documents without the usual mess.

There’s a large mismatch between the structure used by .docx and the structure of HTML, meaning that the conversion is unlikely to be perfect for more complicated documents. Mammoth works best if you only use styles to semantically mark up your document.

The following features are currently supported:

  • Headings.

  • Lists.

  • Tables. The formatting of the table itself, such as borders, is currently ignored, but the formatting of the text is treated the same as in the rest of the document.

  • Footnotes and endnotes.

  • Images.

  • Bold, italics, superscript and subscript.

  • Links.

  • Text boxes. The contents of the text box are treated as a separate paragraph that appears after the paragraph containing the text box.

Embedded style maps

By default, Mammoth maps some common .docx styles to HTML elements. For instance, a paragraph with the style name Heading 1 is converted to a h1 element. If you have a document with your own custom styles, you can use an embedded style map to tell Mammoth how those styles should be mapped. For instance, you could convert paragraphs with the style named WarningHeading to h1 elements with class="warning" with the style mapping:

p[style-name='WarningHeading'] => h1.warning:fresh

An online tool can be used to embed style maps into an existing document. Details of how to write style maps can be found on the mammoth.js documentation.

Installation

Install the plugin in the usual way, and you should be able to use the Mammoth .docx converter when adding a post. If you can’t see the meta box,
make sure that it’s selected by taking a look at the “Screen Options” for adding a post.

FAQ

Installation Instructions

Install the plugin in the usual way, and you should be able to use the Mammoth .docx converter when adding a post. If you can’t see the meta box,
make sure that it’s selected by taking a look at the “Screen Options” for adding a post.

Reviews

Absolutely Fantastic

This is simply invaluable for instantly converting docx files into posts in WordPress it even brings across and uploads the images from a Word doc which you can’t do from cutting and pasting a Word doc into the WordPress editor.

The epitome of usefulness

I had ~50 Word docs with images that I needed to get into WordPress. I was not looking forward to the long and manual process this was going to be. Then I found this plugin and my day instantly got a lot better.

Sorry there’s not a sixth star

Never thought to look for it and gave it a try without much optimism.

Wow, simple, straightforward and super-clean output.

Even managed a Table of Contents and ignored an unwanted letterhead.

Importing texts with footnotes perfectly

When I first discovered this plugin last year, I couldn’t believe it first: I expected it to crash, or not to import content properly (I tested it with articles including up to 50 footnotes and more). But it has always worked very nicely, keeping what should be kept while getting rid of useless code. There are sometimes a few small things to fix due to peculiarities and flaws of the original document, but those are very minor issues.
Keeping in mind what a pain the import of Word content meant in the CMS I was using before I switched to WordPress, I am deeply grateful to the developer of Mammoth .docx converter for his great service to the community. This is a great plugin, and it has already saved me many hours of work.
A big thank you – and I hope that Mammoth .docx converter will continue in the “Gutenberg” era!

Excellent Solution to Google Docs Import to Post Issues

This plugin is a wonderful solution for those of you who write and edit posts in Google Docs and have run into the mess that copy/paste causes with formatting. This workaround is brilliant…export the .docx from Google Docs, then import using Mammoth and it’s a clean import complete with p tags and header hierarchy preservation, links, text formatting, etc. This is much simpler and easier than using Google Docs’ official WordPress importer, which as of September 2017 is not working and is too convoluted of a solution. This solves the issue perfectly and I am very pleased with this plugin. Rock on guys!

Read all 33 reviews

Contributors & Developers

“Mammoth .docx converter” is open source software. The following people have contributed to this plugin.

Contributors

Changelog

1.11.0

  • Fix IE11 support.

1.10.0

  • Add workaround for a bug in tinyMCE in WordPress 4.9.6.

1.9.0

  • Update mammoth.js to 1.4.6. This includes preservation of whitespace in pre elements, and paragraphs in endnotes, footnotes and comments.

1.8.0

  • Update mammoth.js to 1.4.4. This includes better support for reading documents created by Word Online.

1.7.0

  • Update mammoth.js to 1.4.2. This includes improved handling of grouped objects and non-breaking hyphens.

1.6.0

  • Allow MAMMOTH_OPTIONS to override idPrefix.

  • Update mammoth.js to 1.4.0. This includes improved handling of hyperlinks, and converts table headers into thead elements.

1.5.0

  • Handle unsuccessful image uploads where the HTTP request succeeds, but WordPress rejects the file. Fixes an issue where documents with EMF images couldn’t be imported.

  • Update mammoth.js to 1.3.2. This includes a fix for documents where images are referenced by a URI relative to the base URI.

1.4.0

  • Update mammoth.js to 1.3.1. This includes new ways to map styles, such as style name prefixes.

  • Improve styling of preview to match the editor.

  • Fix a bug where images wouldn’t upload on certain server configurations.

  • Allow options to be passed to mammoth.js through a MAMMOTH_OPTIONS global variable.

1.3.0

  • Update mammoth.js to 1.2.5. This includes better support for image alt text and boolean run properties (bold, italic, underline and strikethrough).

1.2.0

  • Include wp-image-* class when inserting images. This allows the WordPress editor to correctly identify the image and show appropriate editing options.

  • If an image has an alt text description in the original document, set the alt text in the media library when uploading that image.

  • If an image has an alt text description in the original document, use it to generate the filename.

  • Set image filename extension based on the image content type.

  • Show a message while the document is being inserted.

1.1.0

  • Update mammoth.js to 1.1.0. This includes support for merged table cells and content controls, such as bibliographies. This should also improve performance when converting larger documents.

1.0.0

  • Update mammoth.js to 0.3.33. This includes better support for reading documents that use undefined styles, and generates simpler HTML in some cases.

0.1.25

  • Update mammoth.js to 0.3.30. This includes better support for lists made in LibreOffice.

  • Fix JavaScript error on admin pages without editors.

0.1.24

  • Update mammoth.js to 0.3.29. This improves support for mc:AlternateContent elements.

0.1.23

  • Update mammoth.js to 0.3.28. This improves support for reading images.

0.1.22

  • Update mammoth.js to 0.3.28-pre.1. Fixes newlines being inserted around inline elements when the editor is in text mode.

0.1.21

  • Update mammoth.js to 0.3.27. Fixes recursive collapsing of HTML elements.

0.1.20

  • Update mammoth.js to 0.3.26. Improves the collapsing of HTML elements, such as allowing collapsing elements generated by different runs.

0.1.19

  • Update mammoth.js to 0.3.25-pre.1. Includes experimental support for embedded style maps.

0.1.18

  • Update mammoth.js to 0.3.23. Includes support for links and images in footnotes and endnotes.

0.1.17

  • Update mammoth.js to 0.3.22. Includes support for strikethrough.

0.1.16

  • Update mammoth.js to 0.3.21. Includes basic support for text boxes.

0.1.15

  • Update mammoth.js to 0.3.18. Includes support for hyperlinks to bookmarks in the same document.

  • Add support for CKEditor.

0.1.14

  • Support any post type that supports the WordPress editor.

  • Generate consistent footnote and endnote IDs based on the post ID.

  • Update mammoth.js to 0.3.15.

0.1.13

  • Update mammoth.js to 0.3.14. Includes support for endnotes.

0.1.12

  • Fix preview rendering on Chrome.

  • Update mammoth.js to 0.3.12.

0.1.11

  • Update mammoth.js to 0.3.11. Includes support for superscript and subscript text.

0.1.10

  • Update mammoth.js to 0.3.8. Includes support for line breaks.

0.1.9

  • Remove old script reference.

0.1.8

  • Update to mammoth.js 0.3.5. Includes support for tables.

0.1.7

  • Update to mammoth.js 0.3.2. Includes support for footnotes.

0.1.6

  • Update to mammoth.js 0.2.2

  • Pretty print HTML output

  • Hide inline image data in raw HTML preview

0.1.5

  • Fix versions

0.1.4

  • Fix readme.txt

0.1.3

  • Update to the latest version of mammoth.js (0.2.1)

0.1

  • Initial release