Svelte Installation
@editor42/editor42-svelte is a thin wrapper around Editor42 that makes it a Svelte 5 component. There is no account, no sign-up and no key of any kind.
Install
npm install @editor42/editor42-svelte
or for Yarn users:
yarn add @editor42/editor42-svelte
Svelte 5 is required — the component is written with runes.
Basic Setup
<script>
import Editor from '@editor42/editor42-svelte';
</script>
<Editor conf={{ height: 400 }} value="<p>Hello from Editor42</p>" />
With no extra props the editor script is loaded from https://cdn.editor42.com on the latest channel. That pointer only ever moves for security and bug-fix releases, because the Editor42 major version is fixed forever.
Reading and Writing the Content
value is bindable, so the content travels both ways:
<script>
import Editor from '@editor42/editor42-svelte';
let content = $state('<p>Hello from Editor42</p>');
</script>
<Editor bind:value={content} conf={{ height: 400, plugins: 'lists link' }} />
Self-Hosting
Point the component at your own copy of the script, using the full file URL:
<Editor scriptSrc="/js/editor42/editor42.min.js" />
Pinning a Version
<Editor channel="42.0.0" />
channel accepts latest, a latest-N alias, or an exact version.
Editor Options
Everything else is an Editor42 option, passed through conf:
<Editor conf={{ height: 400, menubar: false, plugins: 'lists link' }} />
See the Configuration Options for the full list.
Migrating from @tinymce/tinymce-svelte
npm uninstall @tinymce/tinymce-svelte
npm install @editor42/editor42-svelte
Change the import to @editor42/editor42-svelte and you are done. scriptSrc, channel and conf keep their names, and TinyMCE-style numeric channels resolve to latest.
All API-key and licence-key handling has been removed. The corresponding props are still accepted so existing code compiles, but they do nothing: no key is read, stored or sent anywhere, and no request ever reaches a vendor cloud.
The wrapper div class defaults to editor42-wrapper (it was tinymce-wrapper); set the cssClass prop if your styles target the old name.
The component also drives a stock TinyMCE if that is what is already loaded on the page, which keeps the switch reversible.
See the migration guide for the editor side of the move.
Live Demo
See it running, with its full source: the Svelte demo.
Links
- NPM:
@editor42/editor42-svelte - GitHub: editor42com/editor42-svelte