Tintero Developers

Editor extensions

How Tintero's 78 editor extensions map onto ProseMirror: which contribute a node, which contribute a mark, and which leave no trace in the file at all.

On this page

Tintero's editor is Tiptap, which is ProseMirror with a plugin system on top, and every feature you can see in the writing surface is one of its extensions. This page is what each of them turns into once a document is saved. There are 78, and they fall into two piles that behave very differently once you start reading files from outside.

What an extension is

Three kinds, in Tiptap's own terms. A Node adds a block or an inline element: a paragraph, a table, a scene wrapper. A Mark adds something laid over a range of text: bold, a link, a comment highlight. An Extension adds behaviour with no shape of its own.

One extension can bring in others. starterKit is a single entry that contributes most of the standard vocabulary, and screenplay is one Tintero extension that contributes twelve nodes, one per screenplay element. The groups below are by the extension you would register, not by the pieces it unpacks into.

Extensions that reach the file (28)

Each of these leaves at least one node or mark in the JSON. Names link to the document schema, which has the attributes.

bookmark Tintero customExtensions/bookmark-node.ts
customHighlight Tintero customExtensions/custom-highlight.ts
dialogMark Tintero customExtensions/dialog-mark.ts
documentLink Tintero customExtensions/document-link.ts
inlineAudioPlayer Tintero customExtensions/inline-audio-player.ts
intelligentQuote Tintero customExtensions/intelligent-quote.ts
noteHighlight Tintero customExtensions/note-highlight.ts
paragraph Tintero customExtensions/dialog-paragraph.ts
resizableImageClean Tintero customExtensions/resizable-image-clean.ts
scene Tintero customExtensions/scene-extension.ts
table Tintero customExtensions/custom-table.ts
tableCell Tintero customExtensions/custom-table-cell.ts
tableHeader Tintero customExtensions/custom-table-cell.ts
ttsEmotion Tintero customExtensions/tts-annotations.ts
ttsPause Tintero customExtensions/tts-annotations.ts
ttsSoundTag Tintero customExtensions/tts-annotations.ts
ttsVoice Tintero customExtensions/tts-annotations.ts
highlight standard
link standard
subscript standard
superscript standard
tableRow standard
taskList standard
textStyle standard
underline standard

Extensions that do not (18)

These change how the editor behaves and put nothing in the file. Listed because their absence from a document is the expected result rather than a bug: search and replace, the typewriter scroll, the decorations that paint characters and spelling errors, the handling that turns straight quotes into curly ones as you type.

With one exception that is worth knowing about. A few of these add attributes to nodes somebody else owns rather than nodes of their own, so they do reach the file even though they appear on this list. paragraphMargins is why a paragraph carries marginLeftMm, indent is where its indent comes from, and textAlign puts textAlign on every block that can be aligned. Look for the attribute on the node in the document schema, not for a node here.

advancedSuggestion characterHighlightDecoration dictationPreview externalLinkHandler foreignPasteColors indent linkDecoration paragraphMargins remoteSyncHighlight spellErrorDecoration ttsAnnotationsMode color focus fontFamily fontSize selection textAlign typography

Filled entries are Tintero's own. Outlined ones are standard Tiptap.