Some checks failed
Verify / Install node dependencies (push) Failing after 2s
Verify / Build packages (push) Has been skipped
Verify / Check linting & formatting (push) Has been skipped
Verify / Run unit tests (push) Has been skipped
Verify / Run e2e tests (shard 1/4) (push) Has been skipped
Verify / Run e2e tests (shard 2/4) (push) Has been skipped
Verify / Run e2e tests (shard 3/4) (push) Has been skipped
Verify / Run e2e tests (shard 4/4) (push) Has been skipped
Publish / Resolve publish config (push) Failing after 2s
Publish / Send notification to Slack (push) Has been skipped
Publish / Send failure notification to Slack (push) Failing after 8s
Verify / Merge e2e reports (push) Has been skipped
Publish / Build (push) Has been skipped
Publish / Bump Versions OR Release to Registry (push) Has been skipped
@tiptap/static-renderer
Introduction
Tiptap is a headless wrapper around ProseMirror – a toolkit for building rich text WYSIWYG editors, which is already in use at many well-known companies such as New York Times, The Guardian or Atlassian.
Official Documentation
Documentation can be found on the Tiptap website.
Limitations & workarounds
The static renderer builds the ProseMirror schema and runs each extension's
renderHTML, but it does not instantiate an Editor. As a result:
addProseMirrorPlugins,onCreate,onUpdate, and transaction hooks do not run.- Extensions that assign attributes via those mechanisms — such as
UniqueID(data-id) andTableOfContents(id,data-toc-id) — will not populate those attributes on their own.
For these cases, pre-process the JSON document before rendering:
import { generateUniqueIds } from '@tiptap/extension-unique-id'
import { generateTocIds } from '@tiptap/extension-table-of-contents'
import { renderToHTMLString } from '@tiptap/static-renderer/pm/html-string'
let doc = sourceJson
doc = generateUniqueIds(doc, extensions) // if using UniqueID
doc = generateTocIds(doc, extensions) // if using TableOfContents
const html = renderToHTMLString({
content: doc,
extensions,
staticEditorOptions: { textDirection: 'auto' }, // mirrors a subset of EditorOptions
})
Editor-level options that affect output are accepted via the
staticEditorOptions object (currently textDirection). Other editor options
that depend on a runtime view or transaction stream are out of scope.
License
Tiptap is open sourced software licensed under the MIT license.