「Show HN: JavaScript優先でオープンソース化されたWYSIWYG DOCXエディタ」

2026/02/10 1:33

「Show HN: JavaScript優先でオープンソース化されたWYSIWYG DOCXエディタ」

RSS: https://news.ycombinator.com/rss

要約

Japanese Translation:

記事では、React用のオープンソースWYSIWYG DOCXエディタである @eigenpal/docx-js-editor を紹介しています。このエディタはブラウザ上だけで完結し、サーバーを必要としません。まずパッケージのインストール方法(

npm install @eigenpal/docx-js-editor
)を示し、その後
useRef<DocxEditorRef>
を使って
save()
getDocument()
setZoom()
focus()
scrollToPage()
print()
などのエディタメソッドを呼び出す最小限の関数コンポーネント例へと進みます。

コンポーネントのプロパティは詳細に説明されています。

  • documentBuffer(ArrayBuffer)は必須であり、事前に解析された
    document
    をオプションで渡すこともできます。
  • UIトグル(
    showToolbar
    showRuler
    showZoomControl
    showVariablePanel
    )はツールバーのどの部分を表示するかを制御します。
  • initialZoom
    は初期ズームレベルを設定し、
    readOnly
    が true の場合にはキャレットと選択UIが無効になります。
  • コールバックプロパティとして
    onChange
    onSave
    onError
    があります。

クライアントサイドのみで動作するため、サーバーコードは不要です。また記事では Next.js のような SSR フレームワークとの互換性を保つために、コンポーネントをダイナミックインポートで遅延ロードする方法も解説しています。

プラグインシステム(

PluginHost
)により開発者はカスタム機能を追加できます。例として
templatePlugin
は docxtemplater タグの構文ハイライトを提供し、
docs/PLUGINS.md
にドキュメント化されています。エディタは Microsoft Word と同等の完全性(テキスト・段落フォーマット・表・画像・ハイパーリンク・Undo/Redo・検索&置換・キーボードショートカット・印刷プレビュー)を備えています。

最後に、プロジェクトは MIT ライセンスです。将来的には機能セットの拡張と追加プラグインの導入を計画しており、開発者が従来のサーバーベースエディタをこの軽量なブラウザ内ソリューションに置き換えられるようにすることを目指しています。

本文

@eigenpal/docx-js-editor

React 用のオープンソース WYSIWYG DOCX エディタ。

.docx
ファイルをブラウザ上だけで編集・保存でき、サーバーは不要です。ライブデモをお試しください。


インストール

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);

  const handleSave = async () => {
    const buffer = await editorRef.current?.save();
    if (buffer) {
      await fetch('/api/documents/1', {
        method: 'PUT',
        body: buffer,
      });
    }
  };

  return (
    <>
      <button onClick={handleSave}>保存</button>
      <DocxEditor
        ref={editorRef}
        documentBuffer={file}
        onChange={() => {}}
      />
    </>
  );
}

Next.js / SSR – エディタは DOM を必要とします。
サーバーサイドでのレンダリングを避けるために、動的インポートや

useEffect
の遅延読み込みを利用してください。


Props

PropTypeDefault説明
documentBuffer
ArrayBuffer
ロードする
.docx
ファイルの内容
document
Document
事前に解析済みのドキュメント(バッファの代わり)
readOnly
boolean
false
読み取り専用プレビュー(カーソル・選択不可)
showToolbar
boolean
true
書式ツールバーを表示
showRuler
boolean
false
水平ルーラーを表示
showZoomControl
boolean
true
ズームコントロールを表示
showVariablePanel
boolean
true
テンプレート変数パネルを表示
initialZoom
number
1.0
初期ズームレベル
onChange
(doc: Document) => void
ドキュメントが変更されたときに呼び出される
onSave
(buffer: ArrayBuffer) => void
保存時に呼び出される
onError
(error: Error) => void
エラー発生時に呼び出される

Ref メソッド

const ref = useRef<DocxEditorRef>(null);

await ref.current.save();          // .docx の ArrayBuffer を取得
ref.current.getDocument();         // 現在の Document オブジェクトを取得
ref.current.setZoom(1.5);           // ズームを 150% に設定
ref.current.focus();               // エディタにフォーカス
ref.current.scrollToPage(3);       // ページ 3 にスクロール
ref.current.print();               // ドキュメントを印刷

読み取り専用プレビュー

<DocxEditor documentBuffer={file} readOnly />

編集機能、カーソル、選択 UI が無効になります。


プラグイン

エディタにプラグインシステムで拡張できます。

PluginHost
DocxEditor
を包み、ProseMirror プラグインやサイドパネル、ドキュメントオーバーレイ、カスタム CSS を提供できるプラグインを渡します。

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

function Editor({ file }: { file: ArrayBuffer }) {
  return (
    <PluginHost plugins={[templatePlugin]}>
      <DocxEditor documentBuffer={file} />
    </PluginHost>
  );
}

利用可能なプラグイン

プラグイン説明
Docxtemplater
docxtemplater タグの構文強調表示と注釈パネルを提供

詳細は

docs/PLUGINS.md
を参照してください。ここには、パネルやオーバーレイ、ProseMirror 統合を持つカスタムプラグインの作成方法も記載されています。


主な機能

  • Microsoft Word と同等のフル WYSIWYG 編集
  • テキスト・段落書式(太字・斜体・フォント・色・配置・間隔)
  • 表、画像、ハイパーリンク
  • 拡張可能なプラグインアーキテクチャ
  • アンドゥ/リドゥ、検索&置換、キーボードショートカット
  • 印刷プレビュー
  • サーバー不要

開発

ライセンス: MIT

同じ日のほかのニュース

一覧に戻る →

2026/02/11 7:20

テルネットが消えたその日

## Japanese Translation: > GreyNoiseは、**2026年1月14日〜21:00 UTC(日本時間で10時頃)**に世界のtelnetトラフィックが急激かつ持続的に減少したことを観測しました。セッション数は1時間以内に65%(約74,000から22,000へ)、翌時間にはさらに83%減少し、2月10日まで平均で59%の削減となりました。この減少はステップ関数的であり、**事前に5万以上のセッションを持つ18のASN**(Vultr AS20473、Cox Communications AS22773、Charter/Spectrum AS20115、BT/British Telecom AS2856など)がゼロになり、ズンビア、ウクライナ、カナダ、ポーランド、エジプトの5か国がGreyNoiseデータセットから消えました。 > このパターンはユーザー行動の変化ではなく、**北米Tier‑1トランジットプロバイダーが米国内メンテナンスウィンドウ(約16:00 EST / 21:00 UTC)に合わせてポート23フィルタリングを実装したこと**によるルーティングインフラの変更を示しています。主要クラウドプロバイダーはほぼ影響を受けず、むしろトラフィックが増加しました(AWS +78%、Contabo +90%、DigitalOcean +3%)。一方で住宅/企業向けISPは大きな損失を被り、Verizon/UUNET AS701はセッションの79%を失いました。 > タイミングは**CVE‑2026‑24061**(GNU Inetutils telnetdにおけるUSER環境変数注入による認証バイパス、CVSS 9.8)の公開と一致しています。この脆弱性は2015年に発見されましたが、約11年間知られていませんでした。悪用は1月21日に初めて確認され、1月22日には報告され、2月上旬までに約2,600セッション/日でピークを迎えました。 > 減少後のトラフィックではサワーソース型のスパイクが観測され、これは不定期なフィルタリングまたはルーティングフラップを示唆しています。週平均はベースライン119%から2月上旬には約35%に低下しました。連邦機関向けCISAの修正期限は**2026年2月16日**です。 > telnetをまだ使用している組織は、GNU Inetutilsを**v2.7‑2+**にアップグレードするか、サービスを完全に無効化すべきです。この事件は、脆弱性の遅延公開が重要インフラを曝露するリスクと、迅速なパッチ適用および協調的ネットワークフィルタリング対応の必要性を浮き彫りにしています。

2026/02/11 2:04

シンギュラリティは火曜日に起きます。

## Japanese Translation: --- ## 要約 著者は、人間の注意力と制度的対応が急速なAI進歩に追いつけなくなる「社会的シンギュラリティ」(人間の注目と機関の反応がAIの進展に遅れを取る点)が差し迫っていると主張しています。 これを定量化するため、5つのAI進歩指標(ドルあたりトークン数を対数変換した値・リリース間隔の逆数)を \([0,1]\) に正規化します。各系列は独立に双曲線モデル \[ x(t)=\frac{k}{t_s-t}+c \] でフィットさせ、共通のシンギュラリティ時間 \(t_s\) を共有させます。アーカイブ(arXiv)の「emergent」ペーパー指標だけが明確な有限時間ピークを示し、それを除外するとフィットは検索境界に崩れ、予測されるシンギュラリティ日付は実質的にこの単一指標から導かれていることを示しています。 著者は \(t_s\) を超知能の到来ではなく、機関がAIによる驚きを吸収できない社会的出来事として解釈します。支持証拠には以下が含まれます: - **労働市場ショック** – 2025年に110万件のレイオフが発表され、そのうち55,000件以上がAI関連と報告。 - **規制遅延** – EU AI法は2027年へ延期。米国では行政命令が取り消されたり改訂されたり、州レベルで連邦政策を上回るルールが導入されている。 - **資本集中** – 2025年時点でS&P 500のトップ10銘柄(主にAI関連)が指数ウェイトの40.7%を占め、ChatGPT開始以降AI株はリターン・利益成長・資本支出の75–90%を捉えている。 - **信頼低下** – 世界的なAIへの信頼は56%。米国労働者の自信は18%低下し、使用率は13%増加。60%が創造よりも雇用削減を恐れる。 - **再現性ギャップ** – AI研究の再現可能性は3分の1未満で、コード共有は5%未満。企業ラボは公開が少ない。 - **政治的再編** – ポピュリストの反発、中間選挙への影響予測、MAGIのAI影響に関する分裂、左派–右派軸がAI政策問題で揺らぐ。 著者はシンギュラリティ日付が単一指標に基づいており、定常性を仮定し、追加の双曲線系列を含めると変動する可能性があると警告します。制限事項としては MMLU の飽和とトークン/ドルあたりの非単調挙動があります。 **予測される結果:** - AI企業に対する規制強化と市場集中度の増大。 - AI政策を巡る政治的分極化の激化。 - 労働者の雇用不安定化、投資家へのリターン変動、公共信頼の低下が有益なAI技術採用の遅延を招く可能性。

2026/02/11 4:25

Windows 95は実際に「Weezerの*Buddy Holly*ビデオをOS自体に『入れた』わけではありません。 この映像は、Microsoftが第三者コンテンツプロバイダーからライセンスした「Video Player」サンプルセットの一部として、Windows 95 CD‑ROM に同梱されていました。 1994年に宣伝用に制作されたビデオは、既にWeezerとレコードレーベル(Geffen Records)からCD‑ROM メディアで配布する許可を得ており、その上でMicrosoftは別途ライセンスを取得して Windows 95 バンドルに含めました。 こうすることで、すべての著作権保有者が適切に報酬を受け取り、コンテンツが米国の著作権法に準拠していることが保証されます。

## Japanese Translation: MicrosoftのWindows 95 CDは、システムの機能を示すためにマルチメディアエクストラを同梱していました。そのうちの一つがウィーザー(Weezer)の「Buddy Holly」のミュージックビデオで、Microsoftはバンドの出版元Geffen Recordsから権利を取得しましたが、メンバーへの相談は行わずに済ませました。初めはバンド側も動揺していましたが、後には大きなチャンスとして受け止められました。 ビデオでは「ハッピーデイズ」(Happy Days)のセットを再現し、登場人物のクリップを編集して使用しました。このため、弁護士は*Happy Days* の全出演者―ヘンリー・ウィンクラー(Henry Winkler)を含む―に連絡したり代理人と交渉したりして許可を取得する必要がありました。 レイモンドは30年以上の経験を持つベテランWindows開発者で、2003年から人気サイト「The Old New Thing」を運営しています。同氏はAddison Wesleyより2017年に同名の書籍 *The Old New Thing*(2007)を執筆し、時折 Windows Dev Docs のTwitterアカウントにも投稿しています。 このプロモーション戦略はWindows 95 のグラフィカルおよびオーディオ機能を披露するとともに、テクノロジー市場での将来のクロスインダストリーコラボレーションへの先駆けとなりました