Show HN: ドキュメントアプリの構築に利用可能なオープンソースの .docx エディタ ライブラリです

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 向けのクイックスタートです。


パッケージ一覧

パッケージ説明ドキュメント
@eigenpal/docx-editor-react
React アダプター。ツールバー、ページ付きエディタ、プラグインを含む。ドキュメント
@eigenpal/docx-editor-vue
Vue 3 アダプター。ツールバー、ページ付きエディタ、プラグインを含む。ドキュメント
@eigenpal/nuxt-docx-editor
Vue アダプターをラップした Nuxt 3 および 4 モジュール。ドキュメント
@eigenpal/docx-editor-core
フレームワーク非依存のコア機能:OOXML パーサー、シリアライザ、レイアウトエンジン、ProseMirror スキーマ。React または Vue アダプターをフォークする場合、これに依存してください。ドキュメント
@eigenpal/docx-editor-i18n
両方のアダプターで共有されるロケール文字列および型定義。ドキュメント
@eigenpal/docx-editor-agents
エージェント向け 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      # 翻訳の進行状況を確認する

商用サポート

同じ日のほかのニュース

一覧に戻る →

2026/05/22 3:54

Ubuntu 16.04 で 10 ユーアー運用したブログを、FreeBSD に移行しました。

2026/05/22 4:32

視覚障害者の方々が Kagi シーチを使用してする方法

## Japanese Translation: Kagi は、ユーザーのサブスクリプションによって完全に資金提供され、SEO やエンゲージメント指標よりも結果の品質を優先する有料かつ広告非表示の検索エンジンです。主流の検索エンジンで見られる乱立した結果、自動再生動画、詐欺的なサイト、AI 生成ノイズなどによる「視覚疲労」に備えて採用されました。結果は有料配置やキーワードではなく品質に基づいてランク付けされ、プラットフォームは「small web」の高品質なソース(開発者ドキュメントやインデペンデントブログなど)を統合するとともに、よりクリーンで信頼性の高いリサーチ環境を構築するために豊富なカスタマイズ機能を備えています。 Kagi のサブスクリプションモデルには、無料トライアル(100 回検索)から Starter(月額 $5 で 300 回検索)、Professional(月額 $10 で無限検索)、Ultimate(月額 $25)までのティアが含まれます。「Fair Pricing」ポリシーにより、ユーザーは未使用の検索クレジットを将来の利用プランに転換したり、適切なクレジット調整とともにプランをダウングレードしたりすることができます。ユーザーは内蔵された CSS エディタを通じて不要な要素を非表示にし、テーマをカスタマイズし、フォントや高コントラスト設定を調整し、AI 生成画像を削除できます。追加の機能として、「Lenses」によるトピックフィルター(例:Academic、Programming)の保存、ドメイン制御による結果のブロック・低減・増加・ピン留め、Bangs コマンド(!w で Wikipedia など)、キーボードショートカット(`?` キーでアクセス可能)があります。「Share this Search」機能により、個々のリンクをコピーせずに特定の Kagi 検索結果を共有することが可能です。Chrome、Edge、Firefox のデフォルト統合を有効にすることで、Kagi は広告、自動再生コンテンツ、詐欺的なサイトへの露出を減らし、より高い検索品質を促すシームレスでプライバシー重視のエコシステムを提供しています。

2026/05/21 23:34

[Show HN] Freenet:分散型アプリケーション向けのピア・ツー・ピア・プラットフォーム

## Japanese Translation: Freenet プラットフォームは、大規模テック企業のインフラに依存せず動作する通信、コラボレーション、商用向けの分散型アプリケーションを可能にする転換的なアプローチをデジタル領域にもたらします。位置情報に基づいたリング構造で組織化されたグローバルピアツーピアネットワークとして機能し、ユーザーのコンピュータがノードとして作用することを許可するとともに、中央集権サーバーへの依存を排除します。ユーザーはこれらのアプリケーションをブラウザ経由で直接アクセスでき、通常のウェブサイトのように表示されますが、撤去されることができず、追跡不可能であり、従来のクラウドモデルで見られるデータ監視から自由です。開発者は Rust や TypeScript などの熟悉的なプログラミング言語を活用して、これら頑健なツールの構築が可能になり、高額なホスティングコストや依存関係に縛られずに済みます。汎用アクセシビリティのための開放標準を用いて構造化されており、ベンチャー資金によるモデルとは異なり、少数チームによる助成金と寄付に完全に頼っています。今後の成長は、持続可能で無料のデジタルインフラを求める開発者とユーザー双方における採用拡大に大きく依存しており、個人に必須ツールのアクセスを止められないようにするという/serverレス代替手段へと業界をシフトさせる可能性があります。