32 ポイント 投稿者 xguru 2023-04-28 | 3件のコメント | WhatsAppで共有
  • contenteditable 属性の代わりにカスタムレンダラーを使用し、ブラウザ/プラットフォーム互換性の問題を回避
  • 安定性、制御性、パフォーマンスを重視した設計
  • 現在はレンダリングに React を利用
    • Vue、Solid-js、SvelteJS などとも比較したが、現時点では最も開発者体験が良く、柔軟で、エコシステムも優れている
    • ただし、パフォーマンス改善のため、今後はネイティブ DOM レンダリングへリファクタリングが必要
  • 多様なプラグインをサポート
    • ショートカット、Markdown、コンテキストメニュー、配置、コードブロック、フォント、見出し、画像、リンク、リスト、メンション、テーブル、..

3件のコメント

 
roeniss 2023-05-05

Typora 号泣

 
alstjr7375 2023-04-28

FacebookのLexicalも思い出しますね
https://ja.news.hada.io/topic?id=6380

 
bbulbum 2023-04-28

slate の構造をそのまま使っているそうですね。新しい設計をしなくて済む点や、もし slate 形式でデータを保存しているなら、エディタを変更する際にも便利そうです。
テキストエディタはブラウザや OS との互換性が本当に難しいですが、これは新しいアプローチですね。
Android での日本語入力も問題なく動きますし、Selection クラスは本当に扱いづらかったので、いっそ作り直してあるのを見ると、開発時に楽そうです。(実際に getSelection() を試してみると、選択した範囲が取得できません)
初回読み込み時の性能改善は必要そうですが、クリティカルというほどではなさそうです。