Skip to content

eigenpal/docx-editor

Folders and files

NameName
Last commit message
Last commit date

Latest commit

 

History

458 Commits
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 
 

Repository files navigation

DOCX JS Editor

npm version npm downloads license Live Demo

@eigenpal/docx-js-editor

Open-source WYSIWYG DOCX editor for the browser. No server required. Live demo

DOCX JS Editor screenshot

  • WYSIWYG editing with Word fidelity — formatting, tables, images, hyperlinks
  • Track changes (suggestion mode) with accept/reject
  • Comments with replies, resolve/reopen, scroll-to-highlight
  • Plugin system, undo/redo, find & replace, print preview
  • Client-side only, zero server dependencies

Quick Start

npm install @eigenpal/docx-js-editor
import { useRef } from 'react';
import { DocxEditor, type DocxEditorRef } from '@eigenpal/docx-js-editor';
import '@eigenpal/docx-js-editor/styles.css';

function Editor({ file }: { file: ArrayBuffer }) {
  const editorRef = useRef<DocxEditorRef>(null);
  return <DocxEditor ref={editorRef} documentBuffer={file} onChange={() => {}} />;
}

Next.js / SSR: Use dynamic import — the editor requires the DOM.

Packages

Package Description
@eigenpal/docx-js-editor React UI — toolbar, paged editor, plugins. Install this one.
@eigenpal/docx-core Framework-agnostic core — parsing, ProseMirror, layout engine
@eigenpal/docx-editor-vue Vue.js scaffold — contributions welcome

Plugins

import { DocxEditor, PluginHost, templatePlugin } from '@eigenpal/docx-js-editor';

<PluginHost plugins={[templatePlugin]}>
  <DocxEditor documentBuffer={file} />
</PluginHost>;

See docs/PLUGINS.md for the full plugin API.

Development

bun install
bun run dev        # localhost:5173
bun run build
bun run typecheck

Examples: Vite | Next.js | Remix | Astro | Vue

Props & Ref Methods | Plugins | Architecture

License

MIT