
2026/05/22 5:23
Show HN: ドキュメントアプリの構築に利用可能なオープンソースの .docx エディタ ライブラリです
RSS: https://news.ycombinator.com/rss
要約▶
Japanese Translation:
.docx ファイル用のオープンソースの WYSIWYG エディタを導入するこの革新的なツールは、React、Vue、または Nuxt アプリケーションを開発している開発者が専用パッケージ(
@eigenpal/docx-editor-react、vue、および nuxt)を通じて瞬時にリッチなドキュメント編集機能を追加できるようにします。その際立った特徴は「agent-ready」アーキテクチャであり、MCP サーバーやブリッジを含む AI 統合のための SDK を提供しています。以前のソリューションでは複雑な手動設定が必要とされたのに対し、このフレームワーク無効のコアエンジン(@eigenpal/docx-editor-core)はパース(OOXML)、シリアライゼーション、レイアウトレンダリングの重い作業を処理し、追跡変更やリアルタイムコラボレーションなどの高度な機能を標準でサポートします。このソリューションは英語、ドイツ語、ポーランド語、ポルトガル語(ブラジル)、トルコ語、ヘブライ語、簡体中国語を含む広範な言語をサポートし、手動での翻訳努力を排除する共有ロカリゼーション文字列を提供します。開発者は自動展開されたライブプレビューサーバー(latest.docx-editor.dev)を使用して更新を直ちにテストするか、または bun run dev などの特定のコマンドを使用することで検証できます。知的なアプリケーションとの円滑な相互作用を確保するために、このツールはテンプレート用のプラグインホスト(例:PluginHost)のような柔軟なプラグイン API を提供し、Next.js などの SSR に優しい環境でのみ動的インポートを必要とします。このエンドツーエンドのアプローチにより、チームがコードベースを手動でフォークする必要がなくなり、ユーザーは機能を容易に拡張しながら、Vite、Remix、Astro、Vue、および Nuxt 間の互換性を確保できます。本文
オープンソースの WYSIWYG.docx エディタ。React および Vue 向け。正規化された OOXML、変更追跡機能、リアルタイムコラボレーションに対応。エージェント対応済み。ライブデモ | ドキュメント
クイックスタート
npm install @eigenpal/docx-editor-react
上記は React 向けのクイックスタートです。
npm install @eigenpal/docx-editor-vue
上記は Vue 向けのクイックスタートです。
npm install @eigenpal/nuxt-docx-editor
上記は Nuxt 向けのクイックスタートです。
パッケージ一覧
| パッケージ | 説明 | ドキュメント |
|---|---|---|
| React アダプター。ツールバー、ページ付きエディタ、プラグインを含む。 | ドキュメント |
| Vue 3 アダプター。ツールバー、ページ付きエディタ、プラグインを含む。 | ドキュメント |
| Vue アダプターをラップした Nuxt 3 および 4 モジュール。 | ドキュメント |
| フレームワーク非依存のコア機能:OOXML パーサー、シリアライザ、レイアウトエンジン、ProseMirror スキーマ。React または Vue アダプターをフォークする場合、これに依存してください。 | ドキュメント |
| 両方のアダプターで共有されるロケール文字列および型定義。 | ドキュメント |
| エージェント向け SDK およびチャート UI:フレームワーク非依存ブリッジ、MCP サーバー、AI SDK アダプター、さらに UI コンポーネントを含む。 | ドキュメント |
アダプターのフォークを検討されている場合: 保持するフォークの規模は小さく保ってください。パーサー、シリアライザ、レンダリングの修正が自動的にビルドに組み込まれるように、
@eigenpal/docx-editor-core に直接依存し、各アップストリームの変更を手動でパッチ適用する手間を省きましょう。
React
import { useState } from 'react'; import { DocxEditor } from '@eigenpal/docx-editor-react'; import '@eigenpal/docx-editor-react/styles.css'; export function App() { const [buffer, setBuffer] = useState<ArrayBuffer | null>(null); return ( <> <input type="file" accept=".docx" onChange={async (e) => setBuffer((await e.target.files?.[0]?.arrayBuffer()) ?? null)} /> {buffer && <DocxEditor documentBuffer={buffer} mode="editing" />} </> ); }
Next.js / サーバーサイドレンダリング (SSR): ダイナミックインポートを使用してください。エディタは DOM を必要とします。完全なドキュメント:
packages/react · API リファレンス。
Vue
<script setup lang="ts"> import { ref } from 'vue'; import { DocxEditor } from '@eigenpal/docx-editor-vue'; import '@eigenpal/docx-editor-vue/styles.css'; const buffer = ref<ArrayBuffer | null>(null); async function loadFile(e: Event) { const file = (e.target as HTMLInputElement).files?.[0]; buffer.value = file ? await file.arrayBuffer() : null; } </script> <template> <input type="file" accept=".docx" @change="loadFile" /> <DocxEditor v-if="buffer" :document-buffer="buffer" mode="editing" /> </template>
完全なドキュメント:
packages/vue · API リファレンス。
Nuxt
// nuxt.config.ts export default defineNuxtConfig({ modules: ['@eigenpal/nuxt-docx-editor'], });
@eigenpal/nuxt-docx-editor は Vue アダプターを Nuxt 3 および 4 モジュールとしてラップしています:SSR 安全な <DocxEditor> コンポーネント(手動でのインポートなし、<ClientOnly> ラッパー不要)および Vue コンポーザブルを自動インポートします。
完全なドキュメント:packages/nuxt。
プラグイン
import { DocxEditor } from '@eigenpal/docx-editor-react'; import { PluginHost, templatePlugin } from '@eigenpal/docx-editor-react/plugin-api'; <PluginHost plugins={[templatePlugin]}> <DocxEditor documentBuffer={buffer} /> </PluginHost>;
完全なプラグイン API については プラグインドキュメント を参照してください。
開発環境での構築
bun install bun run dev # localhost:5173 bun run build bun run typecheck
メインツリーのライブプレビューは
latest.docx-editor.dev で自動デプロイされます。npm にパッケージ化する前に変更を試すのに便利です。
サンプルプロジェクト:Vite | Next.js | Remix | Astro | Vue | Nuxt ドキュメント | プロパティとリファメソッド | プラグイン | アーキテクチャ
コントリビュート
コントリビュートをご歓迎いたします。セットアップ、テスト、および一度限りの CLA 署名については
CONTRIBUTING.md をご参照ください。
翻訳
| ローカライズ用言語 | 言語名 |
|---|---|
| en | 英語 |
| de | ドイツ語 |
| pl | ポーランド語 |
| pt-BR | ポルトガル語(ブラジル) |
| tr | トルコ語 |
| he | ヘブライ語 |
| zh-CN | 中国語(簡体字) |
エディタをあなたの言語へ翻訳するお手伝いをしてください!完全な i18n コントリビュートガイドについては こちら をご参照ください。
bun run i18n:new de # ドイツ語のローカライズ用ファイルをスコーラフトする bun run i18n:status # 翻訳の進行状況を確認する
商用サポート