Comments (6)
documentation looks very cool 👍
from wolfram-js-frontend.
Great idea!
For now it is more like there is a sort of package folder and API, so all graphic and etc are delivered like that.
I think, for the first step I will probably introduce loading "plugins" via links to GitHub repos in the settings via web UI.
from wolfram-js-frontend.
The "plugins" via links to GitHub repos sounds like a cool idea.
I do not really know the architecture needed for plugin support. I found this question via google: https://stackoverflow.com/questions/10763006/plugin-architecture-in-web-apps-examples-or-code-snippets#:~:text=A%20good%20plugin%20architecture%20is%20difficult%20to%20achieve,polymorphism%2C%20Demeter%27s%20Law%20and%20the%20related%20Hollywood%20principle.
Ideally, the system should be flexible enough to naturally support the type of plugins that vscode and Obsidian can support without having to think a lot and hard code functionalities for the plugin implementation in advance. Examples of such plugins may include :
-
change the color theme
-
maybe allow the usage of vim or emacs keybindings (I have not used emacs in a while I do not remember if they look like the usual keybindings)
-
something like GitHub copilot to work on code using chatgpt
-
Latex document typing
-
Highlighting and organizing highlights in a separate window
-
web development plugins such as automatically adding the closing tag for an opened tag or maybe even a full no code drag and drop HTML building interface like Wix (this seems particularly hard as I am not sure even obsidian or vscode has that kind of flexibility I think).
-
Automatic code formatting
-
code linting and documentation hovering for other languages
-
allow an interactive-only mode that does not allow editing the code (to avoid editing by mistake when working with many versions of a file)
This looks like way too much work for even a team of 30 people maybe. But if the development of the plugin is not too hindered by the architecture design of this application, then if the project gains popularity** people will have the incentive to make and share their implementations.
(**) Specifically with plugin support in a popular language like javascript with the convenience of the Wolfram language, I think the project could be quite popular if it's published on Reddit (if they allow that) and your post on stack exchange is updated when the app is more stable.
from wolfram-js-frontend.
I asked ChatGPT 3.5 about creating plugin support. The prompt and answer are given below (note the security item in the list) (I do not know how reliable its answer is) :
Prompt:
what kind of code architecture is needed for plugin support ?
To support plugins in a software application, you will need to use a modular architecture that allows the application to load and use external modules dynamically. Here are some key architectural principles to consider when designing your plugin system:
-
Plugin API: Define a clear, well-documented API that plugins can use to interface with the application. This API should provide a set of functions, methods, or classes that allow plugins to interact with the application in a consistent and reliable manner.
-
Plugin Manager: Implement a plugin manager that can dynamically load and unload plugins at runtime. This manager should be responsible for discovering available plugins, loading them into memory, and managing their lifecycle.
-
Plugin Interface: Define a common interface that plugins must implement to be compatible with the application. This interface should define a set of methods or events that the application can call or trigger to communicate with the plugin.
-
Plugin Security: Ensure that plugins are loaded in a secure manner and cannot compromise the security of the host application or the system as a whole. This may involve sandboxing plugins or running them in a separate process.
-
Plugin Communication: Establish a communication mechanism between the host application and plugins that allows them to exchange data and events. This may involve using an event system, messaging system, or other forms of inter-process communication.
Overall, the architecture you choose will depend on the specific requirements of your application and the plugins you plan to support. By following these principles, you can design a robust and flexible plugin system that enhances the functionality of your application and enables third-party developers to extend it with new features and capabilities.
from wolfram-js-frontend.
It will also be great to a sort of palettes like in VScode or obsidian. In general I d like to pack it as a self-installing electron app.
PS: I am working on mostly to make it stable and user - friendly.
from wolfram-js-frontend.
Kinda done. Please, see the documentation on it ;)
Palettes are also available now in a form of snippets plugin wljs-snippets
(shipped with a frontend)
And ChatGPT has arrived already wljs-chatbook developed by @KirillBelovTest. Now it is a core package of a system
adv2.mp4
from wolfram-js-frontend.
Related Issues (20)
- Feature request: context menu
- Feature request: Electron wrapper HOT 2
- Interpretation Box support HOT 1
- Feature request : Option to use Vim/Neovim HOT 2
- 'uv.h' file not found HOT 16
- Kernel fails to start HOT 1
- Headless mode (sort of). Execute cells / dynamics from any page on the internet using local wolfram server HOT 6
- support linux HOT 9
- Problems with starting HOT 7
- NaN during init HOT 1
- add minimal supported mathematica version in readme
- Feature request: evaluation time for cells HOT 1
- Autocomplete for users defined symbols HOT 1
- Implement normal boxes support (internal ticket) HOT 1
- Feature request: delete all output menu item and delete imput cell button HOT 2
- [Feature Request] Infinite Canvas interface HOT 6
- Fail to start due to connection issue HOT 3
- Program starts with blank window HOT 3
- Add Docker server image
Recommend Projects
-
React
A declarative, efficient, and flexible JavaScript library for building user interfaces.
-
Vue.js
🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.
-
Typescript
TypeScript is a superset of JavaScript that compiles to clean JavaScript output.
-
TensorFlow
An Open Source Machine Learning Framework for Everyone
-
Django
The Web framework for perfectionists with deadlines.
-
Laravel
A PHP framework for web artisans
-
D3
Bring data to life with SVG, Canvas and HTML. 📊📈🎉
-
Recommend Topics
-
javascript
JavaScript (JS) is a lightweight interpreted programming language with first-class functions.
-
web
Some thing interesting about web. New door for the world.
-
server
A server is a program made to process requests and deliver data to clients.
-
Machine learning
Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.
-
Visualization
Some thing interesting about visualization, use data art
-
Game
Some thing interesting about game, make everyone happy.
Recommend Org
-
Facebook
We are working to build community through open source technology. NB: members must have two-factor auth.
-
Microsoft
Open source projects and samples from Microsoft.
-
Google
Google ❤️ Open Source for everyone.
-
Alibaba
Alibaba Open Source for everyone
-
D3
Data-Driven Documents codes.
-
Tencent
China tencent open source team.
from wolfram-js-frontend.