@dskripchenko/wysiwyg

Vue 3 WYSIWYG-редактор без сторонних editor-движков. Собственный contenteditable-engine, selection API, sanitize, history. UI на @dskripchenko/ui.
2,800
Install
npm install @dskripchenko/wysiwyg
Latest Version:0.2.10
Vue:3
License:MIT
Last Updated:Oct 14, 2026
Links: GitHub  ·  npm
Maintainer: dskripchenko

@dskripchenko/wysiwyg

🌐 English · Русский · Deutsch · 中文

A full-featured Vue 3 WYSIWYG editor with zero peer dependencies on editor libraries — no Tiptap, no ProseMirror, no Quill, no Slate. Built on contenteditable + Selection/Range API.

npm License

~12 KB gzip. Optionally uses @dskripchenko/ui for toolbar icons.

Install

npm i @dskripchenko/wysiwyg

Optional (for nicer icons):

npm i @dskripchenko/ui lucide-vue-next

Quick start

<script setup>
import { ref } from 'vue'
import { DskWysiwyg } from '@dskripchenko/wysiwyg'
import '@dskripchenko/wysiwyg/style.css'

const html = ref('<p>Hello <strong>world</strong>!</p>')
</script>

<template>
  <DskWysiwyg v-model="html" :resizable="true" />
</template>

Features

  • Inline marks — bold/italic/underline/strike/code, link, image, hr.
  • Block formats — headings (h1-h6), blockquote, ul/ol, code-block.
  • Markdown shortcuts — # , ## , - , 1. , > , ``` at the start of a block.
  • Slash commands — type / to open a popup with heading/list/quote/ code/hr/table commands.
  • Tables — insert / addRow / addColumn / removeRow / removeColumn / removeTable.
  • Code syntax highlighting — js/ts/tsx/jsx/php/html/css/json in <pre><code class="language-X"> blocks.
  • HTML→Markdown — htmlToMarkdown(html) helper.
  • Source mode — toggle to raw HTML editor with beautify on view, minify on save, syntax highlighting overlay.
  • Sanitize — DOMParser-based whitelist (own implementation).
  • Undo/Redo — custom history stack with throttled commits.
  • Hotkeys — ⌘B, ⌘I, ⌘U, ⌘Z, ⌘⇧Z.
  • Themes — data-theme="dark" / :root.dark / prefers-color-scheme: dark aware.
  • Resizable — user can resize the widget vertically (min/max via props).

Documentation

License

MIT © Denis Skripchenko

Related Packages

@xproeditor/vue

Notion-like block editor for Vue 3 — supports a sticky format toolbar and/or a f...

1,516 1
@farena/fa-editor

Zero-dependency rich-text editor for Vue 3, with a strict and stable HTML contra...

539 0
@lilac-wysiwyg/core

Lilac - a smooth, modern WYSIWYG text editor built with pure TypeScript. Zero de...

1,851 15
eddy-editor

A lightweight WYSIWYG text editor for Vue and React

3,184 3
@gridigor/vue-lexical

Vue 3 bindings for the Lexical editor framework

3,797 1

Version History

Version Released Vue License
0.2.10 ^3.4 MIT
0.2.8 ^3.4 MIT
0.2.7 ^3.4 MIT
0.2.6 ^3.4 MIT
0.2.5 ^3.4 MIT