Supported features

Beta

The tables below show how each document feature behaves across the three stages of the conversion pipeline:

  1. Import converts DOCX content into Tiptap JSON.
  2. Editor renders that JSON in the browser. Each node and mark type requires a matching Tiptap extension to display correctly.
  3. Export converts the editor's content back into a DOCX file.

A feature can be supported at one stage and unsupported at another. For example, subscript text is imported and rendered correctly, but the export extension does not yet write it back to DOCX.

Import and export each have two integration paths: an editor extension and a REST API. For most features, both paths produce identical results. Where they differ (footnotes, headers/footers, export customization), the relevant install pages document the specifics.

Editor column assumes ConvertKit

The editor column in the tables below assumes the recommended setup: ConvertKit installed as the editor's extension kit. ConvertKit is a superset of the basics (StarterKit-equivalent nodes plus DOCX-aware overrides for Paragraph, Heading, Image, and the table stack). Without ConvertKit, paragraph spacing and indentation, image cropping, and table cell formatting are extracted into the JSON but dropped by the editor's schema. Where editor support depends on something else (Pages, a custom extension), the row notes the dependency.

Other formats

These tables describe the DOCX pipeline specifically because DOCX is the reference format that all other exports build on. PDF, ODT, EPUB, and DOC each work by first generating a DOCX file and then converting it to the target format via a cloud service. Features that work in DOCX export generally carry through, though each format may introduce its own limitations. See the respective format pages for details.

Markdown follows a completely separate conversion path and supports a different set of features. It is documented on its own page.

Inline formatting

FeatureImportEditorExport
Bold
Italic
Underline
Strikethrough
Subscript
Superscript
Inline code
Text color
Highlight
Font family
Font size
Hyperlinks
Tabs~~
Internal bookmarks~~

Block elements

FeatureImportEditorExport
Paragraphs
Headings 1 to 6
Blockquotes
Code blocks
Horizontal rules
Hard breaks

Text and paragraph styling

The import service extracts paragraph-level styling attributes like spacing, indentation, and line height from the DOCX source. ConvertKit's custom Paragraph and Heading render them automatically. For typography from the document's named-style catalog (Heading 1, Normal, Quote, etc.), use the experimental CSS injection feature, which extracts the catalog as scoped CSS rules.

FeatureImportEditorExport
Text alignment
Line spacing✕***
Paragraph spacing
Indentation
Letter spacing✕*
Paragraph borders
Word styles~~**~

* Letter spacing is extracted as textStyle.letterSpacing but no bundled extension renders it. To render imported letter spacing, extend TextStyle.
** Word's named-style typography is not applied by default. Use CSS injection to extract it as scoped CSS.
*** Line height imports as a paragraph node attribute and renders correctly in the editor with ConvertKit. The DOCX export reads line height from a textStyle mark instead, so round-trip is broken: imported values are present in the editor but dropped on export.

Lists

FeatureImportEditorExport
Bullet lists
Ordered lists
Ordered list numbering format~
Nested lists
Task lists

Tables

The cell- and row-level attributes (backgrounds, borders, vertical alignment, height) require ConvertKit's ConvertTableKit, which is included by default. With the standalone @tiptap/extension-table, these attributes are extracted into the JSON but dropped by the editor's schema. For paginated layout via the Pages extension, use PagesTableKit instead; its table extensions internally extend ConvertKit's, so the same DOCX cell attributes flow through. See the tables content reference for the exact composition.

FeatureImportEditorExport
Basic tables
Merged cells (colspan)
Merged cells (rowspan)
Table header rows
Column widths
Cell backgrounds
Cell borders
Cell vertical alignment
Row height

Media

FeatureImportEditorExport
Inline images
Floating images~
Image dimensions
Image cropping~*
Math and equations

* ConvertKit's custom Image declares cropTop/cropBottom/cropLeft/cropRight and emits them as data-crop-* attributes. To produce a visual crop, add CSS that translates those data attributes into clip-path or object-position.

Page layout

FeatureImportEditorExport
Page breaks~
Headers and footers✓*
Sections~
Page size and margins
Page numbers~
Footnotes✓*
Endnotes✓*

* Import behavior differs between integration paths. The REST API returns footnotes, endnotes, and headers/footers as separate fields in the response. The editor extension auto-applies headers and footers via the Pages extension but does not surface footnote or endnote data. See the install pages for details.

Page layout requires the Pages extension

Headers, footers, page breaks, and paginated layout all require the Pages extension for editor rendering. Without it, these features have nowhere to render even if the conversion service produces them.

Not supported

These features are not converted or have limited conversion during import.

FeatureStatus
Comments and annotationsNot converted. The comments extension exists but is not connected to conversion.
Tracked changes and revisionsNot converted. The tracked changes extension exists but is not connected to conversion.
Table of ContentsImported as tableOfContents node (title and heading range). A custom extension is needed to render it in the editor. The existing Table of Contents extension is a headless utility for building sidebar navigation, not a document block renderer. Not exported.
Text boxesNot converted. Content inside text boxes is not extracted.
Shapes, SmartArt, WordArtNot converted. These elements are not extracted during import.
Field codes (DATE, AUTHOR, PAGE, MERGEFIELD)The cached display value is preserved as plain text (e.g., a DATE field showing "April 10, 2026" imports as the text "April 10, 2026"). The field code itself is not converted, so the value becomes static and will not update.
Document metadata (author, title, keywords)Not converted. Metadata is not included in the JSON output.
Form fields and content controlsNot converted. Inline structured document tags (SDTs) have their text content preserved, but the control metadata is discarded.
Hidden textText runs marked as hidden (w:vanish) are excluded from the import output.
Right-to-left text directionDOCX <w:bidi> (paragraph direction) and <w:rtl> (run direction) are not parsed on import or written on export. Documents authored in Arabic, Hebrew, Persian, Urdu, and other RTL languages render with the editor's CSS direction (LTR by default). Set dir="rtl" on the editor root or detect language at the application level to handle this today. See Text alignment for details.