Sveltemirror 📚
This is a collection of Svelte components that use CodeMirror to provide code editing functionality.
Getting Started
To get started, install the package from npm:
npm install sveltemirror
Usage
Basic
The most basic usage for just the editor is as follows:Loading editor...
<script> import CodeMirror from "sveltemirror"; import { html } from "@codemirror/lang-html"; let value = "<h1> Hi there! </h1>"; </script> <CodeMirror bind:value lang={html()} />
Loading editor...
<h1> Hi there! </h1>
Styling
The editor can accept props to be passed as styles to the editor and also custom themes
Loading editor...
<script> import CodeMirror from "sveltemirror"; import { html } from "@codemirror/lang-html"; import { dracula } from "@codemirror/theme-one-dark"; let value = "<h1> Hi there! </h1>"; </script> <CodeMirror bind:value lang={html()} theme={dracula} styles={{ "&": { "width": "500px", "maxWidth": "100%", "height": "100px" } }} />
Loading editor...
<h1> Hi there! </h1>
Renderer
For ease of use a barebones iframe renderer is provided. The renderer accepts an optional string preprocess function that can be used to modify the code before it is rendered.
Loading editor...
<script> import CodeMirror, { Renderer } from "sveltemirror"; import { html } from "@codemirror/lang-html"; import { dracula } from "@codemirror/theme-one-dark"; let value = "<h1> Hi there! </h1>"; </script> <div style="display:flex;" <CodeMirror bind:value theme={dracula} styles={{ "&": { height: "150px", }, }} lang={html()} /> <Renderer bind:value preprocess={(v) => "Hiiiii" + v} /> </div>
Loading editor...
<h1> Hi there! </h1>