TipTap mark extension for creating superscript text formatting with keyboard shortcuts and HTML parsing.
npx @tessl/cli install tessl/npm-tiptap--extension-superscript@3.4.0The TipTap Extension Superscript provides superscript text formatting functionality for TipTap editors. It creates a mark extension that allows users to format text as superscript with keyboard shortcuts, HTML parsing, and programmatic commands.
npm install @tiptap/extension-superscriptimport { Superscript } from "@tiptap/extension-superscript";For default import:
import Superscript from "@tiptap/extension-superscript";For CommonJS:
const { Superscript } = require("@tiptap/extension-superscript");import { Editor } from "@tiptap/core";
import { Superscript } from "@tiptap/extension-superscript";
// Add to editor extensions
const editor = new Editor({
extensions: [
Superscript.configure({
HTMLAttributes: {
class: 'my-superscript-class',
},
}),
],
content: '<p>E=mc<sup>2</sup></p>',
});
// Use commands programmatically
editor.commands.setSuperscript();
editor.commands.toggleSuperscript();
editor.commands.unsetSuperscript();
// Use keyboard shortcut: Cmd/Ctrl + .Creates a TipTap mark extension for superscript text formatting.
/**
* Superscript mark extension for TipTap editors
* Extends Mark.create with SuperscriptExtensionOptions
*/
const Superscript: Mark<SuperscriptExtensionOptions>;Configure the superscript extension with HTML attributes and other options.
/**
* Configuration options for the Superscript extension
*/
interface SuperscriptExtensionOptions {
/**
* HTML attributes to add to the superscript element
* @default {}
* @example { class: 'foo' }
*/
HTMLAttributes: Record<string, any>;
}The extension adds three commands to the TipTap editor's command interface.
/**
* Set a superscript mark on the current selection
* @returns Command execution result
* @example editor.commands.setSuperscript()
*/
setSuperscript(): boolean;
/**
* Toggle a superscript mark on the current selection
* @returns Command execution result
* @example editor.commands.toggleSuperscript()
*/
toggleSuperscript(): boolean;
/**
* Unset/remove a superscript mark from the current selection
* @returns Command execution result
* @example editor.commands.unsetSuperscript()
*/
unsetSuperscript(): boolean;The extension automatically parses HTML content containing superscript formatting.
Supported HTML Elements:
<sup> tags - Standard HTML superscript elementsvertical-align: super CSS styleHTML Rendering:
<sup> elementsDefault Shortcut:
Cmd + . (Mac) / Ctrl + . (Windows/Linux) - Toggles superscript formattingimport { Editor } from "@tiptap/core";
import { Superscript } from "@tiptap/extension-superscript";
const editor = new Editor({
extensions: [Superscript],
content: '<p>Water is H<sub>2</sub>O and E=mc<sup>2</sup></p>',
});
// Toggle superscript on selected text
editor.commands.toggleSuperscript();const editor = new Editor({
extensions: [
Superscript.configure({
HTMLAttributes: {
class: 'custom-superscript',
'data-type': 'superscript',
},
}),
],
});// Select text and apply superscript
editor
.chain()
.focus()
.setTextSelection({ from: 1, to: 5 })
.setSuperscript()
.run();
// Remove superscript from selection
editor
.chain()
.focus()
.setTextSelection({ from: 1, to: 5 })
.unsetSuperscript()
.run();/**
* Configuration options interface for the Superscript extension
*/
interface SuperscriptExtensionOptions {
/**
* HTML attributes to add to the superscript element
* @default {}
*/
HTMLAttributes: Record<string, any>;
}
/**
* Superscript mark extension instance
* Created using Mark.create<SuperscriptExtensionOptions>
*/
declare const Superscript: Mark<SuperscriptExtensionOptions>;