dream-num / univer

Univer is an isomorphic full-stack framework for creating and editing spreadsheets, docs, and slides across client and server.
https://univer.ai
Apache License 2.0
7.46k stars 642 forks source link

[Feature] Ability to add custom widget/nodes for univer docs #3916

Open OsamaHaikal opened 3 weeks ago

OsamaHaikal commented 3 weeks ago

Initial checklist

Problem

We are currently using Tiptap for our document editor, which allows us to create interactive custom nodes and components using Vue/React. This feature enables us to incorporate highly customized elements within the editor, tailored to our specific use case. However, we are exploring migrating to Univer Docs for better integration within our ecosystem.

Feature Request: We request the ability to add custom nodes and interactive components to Univer Docs, similar to Tiptap's extensible approach. Specifically, we would like:

  1. Custom Node Integration: The option to define new types of nodes/widgets in the document, rendered with custom styles and use pagination logic from univer
  2. Vue/React Component Support: The ability to inject Vue/React components for these custom nodes, allowing complex, interactive behaviors within the editor.

This feature would enable us to replicate our existing functionality in Tiptap while leveraging the Univer Docs framework.

Use Case: Our application requires an editor that supports rich, dynamic content. We have several custom nodes (e.g., interactive tables, real-time data components, charts) that users can add directly into their documents. Supporting these features would make Univer Docs a viable alternative for our document editing needs.

Jocs commented 2 weeks ago

@OsamaHaikal Does custom wedget need to interact with other content in the document? Or is it completely autonomous, taking care of content updates and rendering itself

OsamaHaikal commented 1 week ago

@Jocs For our case, it is completely autonomous, the only thing needed from document is getting/sending updates from/to document for handling paging and content pagination

Jocs commented 1 week ago

@Jocs For our case, it is completely autonomous, the only thing needed from document is getting/sending updates from/to document for handling paging and content pagination

Ok, it just like float object, we'll handle the float object layout and pagiation.