AppFlowy-IO / AppFlowy

Bring projects, wikis, and teams together with AI. AppFlowy is an AI collaborative workspace where you achieve more without losing control of your data. The best open source alternative to Notion.
https://www.appflowy.io
GNU Affero General Public License v3.0
55.48k stars 3.62k forks source link

[FR] Executing code blocks #3555

Open moolight-seashell opened 11 months ago

moolight-seashell commented 11 months ago

Description

add the possibility to run a codebloks with the output result bellow the code blocks

something like jupiter notebook for python we already have this feature in cherry tree and obsidian with an extention

maybe support only few language first like python because you can run the code directly without compile it

Impact

as i have try to show this is a quite common feature, and it allow to make better documentation for code.

It allows you to embed intelligence in a note

Additional Context

No response

MayurSMahajan commented 11 months ago

I am thinking this feature can not be provided as a default in AppFlowy. But maybe in the future, we can support it as an external plugin or extension. What are your thoughts?

cc @Xazin @a-wallen

moolight-seashell commented 11 months ago

yes, of course, there are more important things to consider, especially as it will probably be relatively complex to implement, and will probably not be used by the majority of users. but even if it takes a while or even if a single language is managed, it'll be great!

Xazin commented 11 months ago

This is quite complex, unless there is a service provider that can do this for us, then it is most likely not going to be prioritized in the near future.

The idea of hosting virtual machines with development environments setup, and supporting queued compilations/runs, and for it to be fast enough for the user to actually feel convenience, is not easy.

Not to mention the infrastructure and tooling are quite complex, and the reward of this is not something I believe would benefit AppFlowy or its users in the near future.

I know Replit used to offer an API, but they retired it approx. a year ago. Maybe there are other providers with a similar amount of language support?

Could possibly use something like Heroku (and it would most likely be super expensive), but I would have to research this a bit.

annieappflowy commented 11 months ago

Hi @moolight-seashell , thanks for submitting this feature request. Could you please share more about your use cases? For example, what are you trying to achieve by running a script inside a doc?

moolight-seashell commented 11 months ago

Allowing execution in block codes can do so many things that it would be difficult to cover them all.

in the case of jupyter notebook in python, it was used extensively by my teacher-researchers on AI (tensorflow), who used jupyter both as an explanatory document for their research and to integrate code and models directly into the document.

i only find these examples so : https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/Intro.ipynb https://jupyter.org/try-jupyter/retro/notebooks/?path=notebooks/sqlite.ipynb

it can be used as a tutorial or code documentation, as you'll find more and more on all development sites.

https://www.geeksforgeeks.org/openai-python-api/#text

it can also be used as a simple calculation tool. For example, let's say I'm doing some DIY and I want to make an object of some kind, let's say a wardrobe, I can make a little script to automatically calculate the sizes of all my boards to obtain a piece of furniture of the desired size. ok maybe not the greates example but you have the idea

in any cas allowing to execute code bloks can have a huge impact on how we can takes notes and it can drasticaly improve a wiki / documentation of something