Skip to content

Extensions

The module always registers the StarterKit (all of its nodes, marks, and extensions), the Link mark, and the Image node.

The Code Block Lowlight extension and the lowlight composables (createLowlight, commonLanguages, allLanguages) are only registered when the tiptap.lowlight option is not false. Since the module’s default is lowlight: false, lowlight is opt-in — enable it to get syntax highlighting and keep your bundle smaller when you don’t.

More details

See the Code Block Lowlight example for how to enable and use it.

For the full list of every name the module auto-imports, see the Auto-imports reference.

The module auto-imports only its curated default set plus the custom image-upload extension. Any other Tiptap extension is yours to install and wire up — but you can make it feel just like a built-in by re-exporting it from a file Nuxt auto-imports.

It’s recommended to install extensions into devDependencies:

Terminal window
pnpm add -D @tiptap/extension-placeholder

Whenever you install an external extension that isn’t included by default, the cleanest way to use it everywhere is to re-export it from a composables/ or utils/ file — Nuxt auto-imports those, so the extension becomes available app-wide without manual imports.

For example, create composables/tiptapExt.js:

export { Image as TiptapImage } from '@tiptap/extension-image'
export { Youtube as TiptapYoutube } from '@tiptap/extension-youtube'
export { Underline as TiptapUnderline } from '@tiptap/extension-underline'
export { TextAlign as TiptapTextAlign } from '@tiptap/extension-text-align'
export { Placeholder as TiptapPlaceholder } from '@tiptap/extension-placeholder'
export { CharacterCount as TiptapCharacterCount } from '@tiptap/extension-character-count'

Now every manually installed extension is available app-wide under your chosen name, just like the module’s defaults.