-
Notifications
You must be signed in to change notification settings - Fork 1.2k
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
Introduce "Multi Wiki Server" Plugin #7915
base: master
Are you sure you want to change the base?
Conversation
The latest updates on your projects. Learn more about Vercel for Git ↗︎
|
@Jermolene -- Is this PR intended to collect early feedback, or just to track your own progress? |
It's no different from any other draft PR, which is to say that it is the product of working in the open, and is published so that others can review and provide feedback. |
Cool, can different bags belong to different folders? (So they can be synced to different Github repos, some of them are private bags and in private Github repo, and some public will be used to build public gh pages blog). |
Hi @linonetwo
This is not a hierarchical structure; bags are flat and do not contain other bags. Bag can appear in multiple recipes at the same time.
That is correct, there are several motivations that might apply for placing a particular set of tiddlers in a bag of their own:
|
Sorry for the confusion,
I want to ask about the folder structure on the file system, will it still be one I know |
The tiddlers for the hosted wikis are stored in a SQLite database, they are not stored as files in the file system. |
I think this was introduced in #8455 sorry it took me so long to notice
@Jermolene -- This may be of interest: https://nodejs.org/docs/v22.12.0/api/sqlite.html#sqlite |
Goodness it will make life easier to have sqlite integrated into Node.js, excellent. When is it scheduled to hit the release version of Node.js? |
At the moment it is Stability Index: 1.1 -- Active Development See: https://nodejs.org/api/documentation.html#stability-index May be middle of 2025 -- Once it reaches 1.2 RC we could do more serious testing. |
I did a test with Deno's SQLite module, but it crashes -- The API seems to be incompatible. |
Introduction
Please see https://mws.tiddlywiki.com/ for instructions on how to use MWS
This PR introduces the "Multi Wiki Server" (MWS) plugin. It adds support for hosting multiple wikis at the same time. For performance and scalability, it uses SQLite to store tiddlers.
Hosted wikis are independent of the main wiki, which is still used for administration functions:
Related Work
SQLite Browser Wasm Experiments
Last year, I worked on #7329 which involved using the Wasm version of SQLite in the browser to make an alternate implementation of the wiki store object. The current status is that everything works but the overall performance is worse than the current JavaScript store implementation. I believe that it is possible to significantly improve on the JS performance by compiling filters directly into SQL. I hope to return to that work, but in the meantime I think we can get a lot of value from SQLite on the server without requiring the ability to execute filters against tiddlers in the database.
Bob.Exe
MWS has similar goals to @inmysocks's Bob.Exe at https://github.com/OokTech/TW5-Bob with the key differences being:
Progress
SqlTiddlerStore
class for storing and retrieving tiddlers with bags and recipesSqlTiddlerStore
class/wiki/:recipe_name
HTTP route that serves a TW5 wiki template with the tiddlers from a given recipe spliced in--mws-save-archive
to handle attachments