⚠️ Warning: This project is not yet stable and may undergo significant changes before reaching version 1.0.0. We strongly advise against using it in production environments.
Universal document format converter and DOCX editor built on TipTap/ProseMirror, with comprehensive TypeScript support. Convert between Markdown, HTML, and DOCX through a unified Tiptap JSON model.
| Package | Version | Description |
|---|---|---|
| docen | Universal converter — unified JSON API for Markdown, HTML, and DOCX | |
| @docen/docx | Tiptap DOCX editor + converters, powered by @office-open/docx |
For seamless conversion between Markdown, HTML, and DOCX through a single unified API:
# Install with pnpm
$ pnpm add docenimport { parseHTML, generateDOCX, parseMarkdown, generateHTML } from "docen";
// HTML → DOCX
const doc = parseHTML("<h1>Title</h1><p>Hello World</p>");
const docx = await generateDOCX(doc);
// Markdown → HTML
const doc2 = parseMarkdown("# Title\n\nHello World");
const html = generateHTML(doc2);A full-featured WYSIWYG DOCX editor with near-lossless round-trip conversion:
$ pnpm add @docen/docximport { createDocxEditor, parseDOCX, generateDOCX } from "@docen/docx";
const editor = createDocxEditor({ element: document.querySelector("#editor") });
editor.commands.setContent(parseDOCX(buffer));
const output = await generateDOCX(editor.getJSON());- Node.js 18.x or higher
- pnpm 9.x or higher (recommended package manager)
- Git for version control
-
Clone the repository:
git clone https://github.com/DemoMacro/docen.git cd docen -
Install dependencies:
pnpm install
-
Build all packages:
pnpm build
pnpm build # Build all packages
cd packages/<pkg> && pnpm build # Build one package
vp check # Lint & formatWe welcome contributions! Here's how to get started:
-
Fork the repository on GitHub
-
Clone your fork:
git clone https://github.com/YOUR_USERNAME/docen.git cd docen -
Add upstream remote:
git remote add upstream https://github.com/DemoMacro/docen.git
-
Install dependencies:
pnpm install
-
Build:
pnpm build
- Code: Follow our project standards (see CONTRIBUTING.md)
- Test:
pnpm build && <verify your changes> - Commit: Use conventional commits (
feat:,fix:,docs:,style:,refactor:,perf:,test:,build:,ci:,chore:,revert:) - Push: Push to your fork
- Submit: Create a Pull Request to upstream repository
This project is licensed under the MIT License - see the LICENSE file for details.
Built with ❤️ by Demo Macro