Word and Google Docs to Markdown: paste, export and check

RichMarkdown showing visual editing and Markdown export controls

Moving a document from Word or Google Docs into a README, a knowledge base or a notes app needs more than removing bold markers. Start with rich text, export Markdown, then check the structures Markdown can represent.

Try a real writing workflow

RichMarkdown is a live app built with RichTextEditor. Paste a document into its visual editor, review the export checklist, then copy Markdown or download a .md file. It also offers Word export, local notes and research clips.

For a small API demonstration, use Markdown import and export. To build around those APIs, follow the Markdown writing app guide.

Paste rich text first

  1. Copy the selection in Word or Google Docs.
  2. Paste into the visual editor with the normal paste action. Plain-text paste intentionally removes formatting.
  3. Review headings, list nesting, links, quotes and tables.
  4. Export Markdown and inspect it before replacing the original document.

Pasting from the clipboard and opening a .docx file are different operations. File import needs a document-import workflow; do not pass a Word file's binary bytes to fromMarkdown().

Export the editor's content

// Call this after the editor is ready and the user has finished pasting.
const markdown = editor.toMarkdown();

// Save this string to your authenticated backend or offer a .md download.
// Reopen Markdown through the visual editor.
editor.fromMarkdown(markdown);

If conversion should not replace the current document, request HTML without applying it:

const previewHTML = editor.fromMarkdown(markdown, { apply: false });

Review what may change

ContentWhat to check
Headings and listsKeep heading levels and nested list structure, not just visual font size.
TablesUse simple rectangular tables. Markdown pipe tables cannot represent merged cells.
ImagesCheck that each URL works where the Markdown will be published. Browser previews are not portable image hosting.
CodeKeep inline code separate from fenced blocks. Check indentation and the fence's language label.
Comments and formattingReview comments, tracked changes, colors and fonts before export. Keep the original if those are part of the record.

Give code a clear boundary

Put a multi-line example in a code block. Use the correct language label and inspect the exported fence in the destination tool. Markdown readers differ in which languages they highlight.

```javascript
const message = "Hello";
console.log(message);
```

The language label is metadata for readers and highlighters. It is not permission to run code from a document.

Publish a copy you can verify

Open the exported file in the Markdown tool your readers will use. Check a long list, a table, an image and a code block. Keep the original rich document until the exported version has been reviewed.

If a server accepts and renders user documents, enforce authentication, authorization, upload limits and output sanitization there. See image storage, form validation and the quick start.

Read next