New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
wip: feature: server-side processing #451
base: main
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
@YousefED Hi! Could you please tell me when you plan to deliver this feature? It would be very useful for me :-) |
@YousefED Hello! 🌟 I'm eagerly looking forward to using this. Could you please complete it? Your work is much appreciated! 🚀 |
Hi @nikkimontoya @Jakisundays! Atm we're prioritizing some work for our sponsors and I currently don't require this feature myself - so even though I'd love to, it will be a while before we can dig into this. You can consider sponsoring or opening a bounty to encourage community members to step in |
💎 $25 bounty • odufuwasSteps to solve:
Thank you for contributing to TypeCellOS/BlockNote! |
Hi @YousefED, this is also something which is required, so that we can use BlockNote. |
Hi @m-risto! Thanks and thanks for your sponsorship. Would love to hear more about your exact requirements before we continue working on this. Mind specifying more here, or reaching out on Discord / X / email (team@blocknotejs.org)? |
Hi @YousefED i will write it down tomorrow, if i have a some free time. The short version is we want to create a pdf server side with puppeteer and that's why we need the html extract. But i will write you more via discord. |
This introduces a
server-util
package which can be used to interact with BlockNote without instantiating an entire editor. For example, it can be used to render HTML from BlockNote blocks in JSON format (or from a YDoc) for server-side rendering. Or, for server-side conversion to markdown for server-side search indexing.TODO
The current state is a PoC, there are several important todos to figure out:
document
. If we don't want this, we either need a more lightweight polyfill, or replace ourdocument.createElement
related calls with something else. Or for example, use React / JSX for built-in nodes as well, as React supports server-side rendering without a dependency ondocument
toExternalHTML
,toInternalHTML
) currently expect aneditor
parameter. Is this useful / desired? Currently we fake an editor by passingeditorContext
instead@blocknote/core
package (and if you'd use a react custom block, it would pull in all of@blocknote/react
). Perhaps we can organize our package structure to be more lightweightcloses #387
closes #311