I'm quite new @ TiddlyWiki and I need some guidance.
I try to develop a new plugin to store tiddlers on IPFS.I hardly studied a few SyncAdaptor implementation but I'm lost :Here is what I want to achieve :- load a plain tiddlywiki (I'm planning to offer my users a set of predefined wikis, probably on IPFS but self-contained)
- the plugin is loaded but should be inert until the first save to the appropriate server. The first save should analyse the content and upload the content to IPFS.Each tiddlers in a separate file, especially for external attached file. Maybe the first step is to have a self contained file ??
Question :- how do I detect that the wiki is not fully IPFSified yet ? probably a property, but where ?)
- how to I bypass the SyncAdaptor (inert) during the first load ?
- It is not clear yet how savers and syncadaptors are processed :Let's say that you setup a github account and you have also the IPFS syncadaptor.Who's winning, the saver or the SyncAdaptor.A lot of questions I agree. I hope that my questions make sense and are clear.Thanks
--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/004560cd-7acf-4408-a3b2-63e049db291a%40googlegroups.com.
Hi XavierI'm quite new @ TiddlyWiki and I need some guidance.Welcome to the project!I try to develop a new plugin to store tiddlers on IPFS.I hardly studied a few SyncAdaptor implementation but I'm lost :Here is what I want to achieve :- load a plain tiddlywiki (I'm planning to offer my users a set of predefined wikis, probably on IPFS but self-contained)The general approach taken by the sync mechanism has two parts:* A means to construct a TW5 HTML file from the constituent tiddler files* A mechanism to sync individual tiddler changes from that HTML file back to the serverIt is orthogonal to the saver mechanism which is concerned with saving the entire HTML file as a single file.The two mechanisms are pretty much independent: one can be syncing individual tiddlers to a server and then simultaneously use the saver mechanism to save a snapshot of the entire wiki.
One crucial difference is that the syncer mechanism requires an external process to build the HTML file. That is done dynamically in the default client server configuration: the route `/` triggers a build of the entire wiki. It can also be done by an external build process that periodically rebuilds the HTML file.
- the plugin is loaded but should be inert until the first save to the appropriate server. The first save should analyse the content and upload the content to IPFS.Each tiddlers in a separate file, especially for external attached file. Maybe the first step is to have a self contained file ??IPFS is static storage so yes, I think it would be much easier to focus on the single file configuration.
Question :- how do I detect that the wiki is not fully IPFSified yet ? probably a property, but where ?)I'm not sure what you mean here?
- how to I bypass the SyncAdaptor (inert) during the first load ?When it starts up, the sync adaptor should interrogate the server to obtain any tiddlers that have been updated since the HTML file was built.
- It is not clear yet how savers and syncadaptors are processed :Let's say that you setup a github account and you have also the IPFS syncadaptor.Who's winning, the saver or the SyncAdaptor.A lot of questions I agree. I hope that my questions make sense and are clear.ThanksNo problem, I hope my brief answers help, please don't hesitate to ask followups. These kinds of discussions can be helpful for observers, too.Best wishesJeremy
--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
It is orthogonal to the saver mechanism which is concerned with saving the entire HTML file as a single file.The two mechanisms are pretty much independent: one can be syncing individual tiddlers to a server and then simultaneously use the saver mechanism to save a snapshot of the entire wiki.If I understand correctly. The save button call a saver (are the savers chained in case of multiple setup, eg gitub, gitlab...? ) while the syncadaptor is dynamic and reacts to events ? If its correct I like the mechanism as it gives users a way to easily backup their wikis.
One crucial difference is that the syncer mechanism requires an external process to build the HTML file. That is done dynamically in the default client server configuration: the route `/` triggers a build of the entire wiki. It can also be done by an external build process that periodically rebuilds the HTML file.I'm not sure to understand here. I think this is why I'm lost. While studying the syncadaptor I didn't get any understanding about how the remote stored wiki has been initialized in the first place and this is why I was thinking about my described mechanism. Load a self contained wiki. Setup the ipfs target and then use the syncadaptor to push the contents to IPFS.
If I understand correctly. The save button call a saver (are the savers chained in case of multiple setup, eg gitub, gitlab...? ) while the syncadaptor is dynamic and reacts to events ? If its correct I like the mechanism as it gives users a way to easily backup their wikis.
I'm not sure to understand here. I think this is why I'm lost. While studying the syncadaptor I didn't get any understanding about how the remote stored wiki has been initialized in the first place and this is why I was thinking about my described mechanism. Load a self contained wiki. Setup the ipfs target and then use the syncadaptor to push the contents to IPFS.
I think this is where I'm going to start. Define a saver and save the whole content. I was too ambitious to jump right away on a SyncAdaptor. There is always a learning curve...
I was following my idea. All the syncadaptors I studied assume that the content is already on a remote server and I didn't see how the content has been built in the first place. You explained earlier the external build process but I still don't understand how the first load is working. If I follow your mind It means that let's say you offer your user to start from a set of wiki templates. Those templates are already built by an external process. I was thinking like described. Load a plain wiki, install the plugin, setup the plugin then sync to IPFS. The property was meant to detect whether or not this wiki is already synced. I was looking to some index technics but I didn't figure out yet how to get and process the store list.
Not sure to understand what you mean by updated. I'm targeting a single user model. The only updates should come from the user actions. (updated tiddlers, removed tiddlers,etc...)
Many thanks for your great work.Warmly.
----
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/004560cd-7acf-4408-a3b2-63e049db291a%40googlegroups.com.
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/b59dab66-8c82-4739-acd2-cc2a714f5e5f%40googlegroups.com.
If I understand correctly. The save button call a saver (are the savers chained in case of multiple setup, eg gitub, gitlab...? ) while the syncadaptor is dynamic and reacts to events ? If its correct I like the mechanism as it gives users a way to easily backup their wikis.
I'm not sure to understand here. I think this is why I'm lost. While studying the syncadaptor I didn't get any understanding about how the remote stored wiki has been initialized in the first place and this is why I was thinking about my described mechanism. Load a self contained wiki. Setup the ipfs target and then use the syncadaptor to push the contents to IPFS.
I think this is where I'm going to start. Define a saver and save the whole content. I was too ambitious to jump right away on a SyncAdaptor. There is always a learning curve...
I was following my idea. All the syncadaptors I studied assume that the content is already on a remote server and I didn't see how the content has been built in the first place. You explained earlier the external build process but I still don't understand how the first load is working. If I follow your mind It means that let's say you offer your user to start from a set of wiki templates. Those templates are already built by an external process. I was thinking like described. Load a plain wiki, install the plugin, setup the plugin then sync to IPFS. The property was meant to detect whether or not this wiki is already synced. I was looking to some index technics but I didn't figure out yet how to get and process the store list.
Not sure to understand what you mean by updated. I'm targeting a single user model. The only updates should come from the user actions. (updated tiddlers, removed tiddlers,etc...)
Many thanks for your great work.Warmly.
----
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/004560cd-7acf-4408-a3b2-63e049db291a%40googlegroups.com.
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/b59dab66-8c82-4739-acd2-cc2a714f5e5f%40googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/65046341-255B-45EB-91BF-D4FB4F905892%40gmail.com.
Hi XavierIf I understand correctly. The save button call a saver (are the savers chained in case of multiple setup, eg gitub, gitlab...? ) while the syncadaptor is dynamic and reacts to events ? If its correct I like the mechanism as it gives users a way to easily backup their wikis.That's correct. The other thing to bear in mind is that the saver mechanism can also be used to export any data as a file, it's not restricted to saving the wiki itself.I'm not sure to understand here. I think this is why I'm lost. While studying the syncadaptor I didn't get any understanding about how the remote stored wiki has been initialized in the first place and this is why I was thinking about my described mechanism. Load a self contained wiki. Setup the ipfs target and then use the syncadaptor to push the contents to IPFS.In the case of the standard client server configution, the browser connects to the default route triggering a build of the entire wiki file:Another alternative is to start with an empty index.html stored anywhere accessible via HTTP and have it interrogate the server for tiddlers when it starts up.I think this is where I'm going to start. Define a saver and save the whole content. I was too ambitious to jump right away on a SyncAdaptor. There is always a learning curve...Indeed, the saver mechanism is conceptually much simpler. It's also likely to perform better in many situations as one large HTTP transaction is generally faster than lots of little ones.I was following my idea. All the syncadaptors I studied assume that the content is already on a remote server and I didn't see how the content has been built in the first place. You explained earlier the external build process but I still don't understand how the first load is working. If I follow your mind It means that let's say you offer your user to start from a set of wiki templates. Those templates are already built by an external process. I was thinking like described. Load a plain wiki, install the plugin, setup the plugin then sync to IPFS. The property was meant to detect whether or not this wiki is already synced. I was looking to some index technics but I didn't figure out yet how to get and process the store list.The core client-server implementation uses etags to keep track of whether a particular tiddler has changed.Not sure to understand what you mean by updated. I'm targeting a single user model. The only updates should come from the user actions. (updated tiddlers, removed tiddlers,etc...)That will certainly simplify things.Many thanks for your great work.Warmly.Thank you for your interest, IPFS is really very cool and I'm delighted to see you experiment with it,
Best wishesJeremy
----
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/004560cd-7acf-4408-a3b2-63e049db291a%40googlegroups.com.
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/b59dab66-8c82-4739-acd2-cc2a714f5e5f%40googlegroups.com.
Hi Xavier
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/b59dab66-8c82-4739-acd2-cc2a714f5e5f%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/65046341-255B-45EB-91BF-D4FB4F905892%40gmail.com.
To understand sync adaptors, you should look through these two plugins, which contain the two sync adaptors used in the official data folder based server edition (using the listen command).This one is loaded in the client and saves changes back to the server.This one is loaded on the server and saves changes to the filesystem.In addition, here is the module that calls the sync adaptors to get everything done.With a little bit of fiddling I managed to get the filesystem plugin working in Electron so that it saved browser changes directly to the filesystem without going through any kind of NodeJS server instance, but that's a side note. For anyone else reading this who is curious, it actually did save changes directly from the browser instance. I didn't load the server listener or go through any kind of intermediary at all. It required some modifications to boot.js though to correctly detect that a datafolder was being loaded into the browser!
Hope that helps.
Hi Xavier
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/b59dab66-8c82-4739-acd2-cc2a714f5e5f%40googlegroups.com.
--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/65046341-255B-45EB-91BF-D4FB4F905892%40gmail.com.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/0635867c-aab3-4067-847a-62b4c3a6ea8b%40googlegroups.com.
1 - Interresting behaviour.
Is there a way to influence the priority ordered list ?You didn't comment Mario's clarification about chaining savers.
Is there any reason why savers are not chained ?
2 - I started to work on a saver.I'll see the syncadaptor afteward.Step by step :-)
Is there any reason why savers are not chained ?hmm, ... Nobody did create a backwards compatible PR ... yet ;)
2 - I started to work on a saver.I'll see the syncadaptor afteward.Step by step :-)I think, that's the right way to go. savers are much simpler at the beginning.-m
--
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddlywikide...@googlegroups.com.
To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/4e18f2b7-8867-496f-8104-112d60ab208d%40googlegroups.com.
Tiddlyweb is client oriented while filesystem is server oriented.
Is there any reason why savers are not chained ?hmm, ... Nobody did create a backwards compatible PR ... yet ;)What does "chained" mean in this context? The savers are already stored in a priority ordered list.
Is there any reason why savers are not chained ?hmm, ... Nobody did create a backwards compatible PR ... yet ;)What does "chained" mean in this context? The savers are already stored in a priority ordered list.Best wishesJeremy
--2 - I started to work on a saver.I'll see the syncadaptor afteward.Step by step :-)I think, that's the right way to go. savers are much simpler at the beginning.-m
You received this message because you are subscribed to the Google Groups "TiddlyWikiDev" group.
To unsubscribe from this group and stop receiving emails from it, send an email to tiddly...@googlegroups.com.