Bold, italic, underline, strikethrough
These are inline marks applied to text runs. In Word they come from run properties (<w:rPr>). In Tiptap they are marks on text nodes. All four are registered by ConvertKit out of the box.
What you need
- Extensions:
ConvertKit— bundles Bold, Italic, Underline, and Strike. - Configuration: None required. All four marks work out of the box.
Support overview
| Mark | Import | Editor | Export | Notes |
|---|---|---|---|---|
| Bold | Supported | Supported (ConvertKit) | Supported | Full round-trip |
| Italic | Supported | Supported (ConvertKit) | Supported | Full round-trip |
| Underline | Supported (val="single" only) | Supported (ConvertKit) | Supported | Other underline styles not converted |
| Strikethrough | Supported (with a known leak across paragraphs, see below) | Supported (ConvertKit) | Supported | Full round-trip |
| Double strikethrough | Not supported | Not supported | Not supported | Not converted |
Import
Import these marks using the editor extension or the REST API. Both produce identical output.
The conversion service reads Word run properties and produces the corresponding Tiptap marks:
| Word element | Tiptap mark |
|---|---|
<w:b/> | bold |
<w:i/> | italic |
<w:u val="single"/> | underline (other val values not converted) |
<w:strike/> | strike |
<w:dstrike/> | Not handled |
Bold, italic, and strikethrough import cleanly for the runs that carry the marks. Underline is only imported when the Word element has val="single". Other underline styles (double, wavy, dotted, dash) are not converted. Combined marks (bold + italic on the same text) are fully preserved. There is a known issue where strikethrough can leak from one paragraph into the next on import; see Strikethrough below.
Editor rendering
All four marks ship inside ConvertKit. No separate installation is needed.
| Mark | Extension | Renders as | Keyboard shortcut |
|---|---|---|---|
| bold | Bold | <strong> | Cmd+B |
| italic | Italic | <em> | Cmd+I |
| underline | Underline | <u> | Cmd+U |
| strike | Strike | <s> | Cmd+Shift+S |
All four marks can be active simultaneously on the same text.
Export
Export these marks using the editor extension or the REST API. Both handle them identically.
Each mark maps to a DOCX run property:
| Tiptap mark | DOCX run property |
|---|---|
bold | bold = true |
italic | italics = true |
underline | UnderlineType.SINGLE |
strike | strike = true |
Strikethrough round-trips correctly. The import produces the correct strike mark name, so no formatting is lost.
Strikethrough
Known issue: strikethrough leaks across paragraphs
Importing a paragraph that carries strikethrough formatting can cause the following paragraph to also be rendered as strikethrough, even when the source DOCX did not strike the second paragraph. The import JSON appears to carry the strike mark beyond the original paragraph boundary. If you hit this, inspect context.content in the onImport callback before loading content into the editor and strip stray strike marks where appropriate.
Double strikethrough is not supported
Double strikethrough (<w:dstrike/>) is not handled. It is not converted on import.
Only single underline is imported
Word supports many underline styles (double, wavy, dotted, dash, and others). On import, only val="single" produces an underline mark. All other styles are not converted and are not downgraded to a plain underline. On export, every underline becomes UnderlineType.SINGLE. Text content is preserved, but the underline formatting is lost for non-single styles.