Jonathan, I've not really touched this since I announced this project. At the time, I got hung up over how to handle single file wikis, because the server command doesn't automatically handle them. If you've converted to wiki folders already, this tool should work for you, although it won't help with sharing tiddlers between wiki folders. If you're using mac or linux, you could look into manually creating symlinks between the wiki folders, and I believe that any change in one wiki would change the file for all of them (note however, that you may have to reload/restart the other servers in order for them to notice, I just don't know.) Also worth looking at for you is Jeremy's TiddlyDesktop (https://github.com/Jermolene/TiddlyDesktop) he's announced that he's stopping development on it, but it's still further along than my project at this time. I recently figured out how to convert wiki files to wiki folders programmatically and vice versa, so I've been waiting for a good moment to come back to this and get it to the point of importing and exporting both files and folders.
Matt On Sunday, August 28, 2016 at 2:04:47 PM UTC-4, Jonathan Doughty wrote: > > > Any further thoughts on this? > > I was recently motivated to begin the switch from using several single TW5 > files to node-served WikiFolders of tid files via tiddlywiki --server. > Now that I have started that process I am beginning to encounter the issues > of running separate tiddlywiki --server instances on separate ports and > the desire to share portions of my collection of tid files between those > while keeping the content segregated into folders. Using REST path > prefixes and WikiFolders seems like an ideal way to accomplish that and > Matt's efforts seemed to be headed in that direction. But the promising > beginning does not seem to have advanced. > > (FWIW, I can get TiddlyServer to present its GUI but not actually serve > any WikiFolder contents.) > > > On Monday, May 16, 2016 at 4:57:39 PM UTC-4, Matthew Lauber wrote: >> >> All, >> I am pleased to announce the initial public offering of software I've >> taken to calling TiddlyServer <https://github.com/mklauber/TiddlyServer>. >> TiddlyServer is a NW.js desktop application that can be used to setup a >> local server serving multiple Wikifolders. >> >> *To start off with, here's a quick look at the current UI. * >> >> >> <https://lh3.googleusercontent.com/-JAci075PzQM/Vzou22n4goI/AAAAAAAAATU/FlMnG_d3bqQr6ZueT4-FZnPVrS7C8HuxACLcB/s1600/Screenshot%2Bfrom%2B2016-05-16%2B16%253A33%253A51.png> >> >> The top Row is how you add additional wiki folders. Using the "Choose >> File" button you can select the root folder of your WikiFolder instance. >> The text box is the prefix you want the site to be available at. >> The Add button has a click event that adds the path and prefix to the >> config, starts the server, and then refreshes the UI. >> >> Below that are multiple rows of Individual wikis. Right now they're very >> sparse, grabbing just the title from the wiki itself, then listing the >> prefix for that wiki. Clicking anywhere on the row for a wiki opens it in >> your default browser. >> The Delete word is a button that stops the server and removes the wiki >> from the config file, then updates the UI. >> >> *Now a quick look at how this is designed.* >> >> This application is basically a big wrapper around being able to start >> multiple instances of TW5. the code here >> <https://github.com/mklauber/TiddlyServer/blob/master/source/js/server.js> >> contains most of the logic. >> >> 1. Upon starting up, it loads a config file if it exists, >> instantiates a TW5 instance for each wikifolder >> in the list. >> 1. The instance of TW5 is running a custom >> TW5 command "unixserver >> >> <https://github.com/mklauber/TiddlyWiki5/blob/multiserver/core/modules/commands/unixserver.js>" >> >> that basically uses a unix socket file instead >> of a port number. >> 2. Each instance of TW5 starts listening >> on it's socketPath. >> 2. It also starts up a proxyServer listening >> on port 8080. This proxyServer looks at the path >> part of the url, and uses >> that to proxy the request to the correct Socket. >> 1. If the wiki path does not match any >> prefix it'll respond saying that path doesn't >> match any wikis, please >> choose from the list below... and lists the >> wikis >> 3. Finally, the UI starts up. The UI allows >> the end user to add or remove the wikis and >> prefixes available. >> >> *A few notes at present.* >> >> - This likely only works on Unix and OSX. I'm currently relying on >> Unix Socket files to communicate between the proxy server. AFAIK, unix >> socket files are not supported on Windows. It would be possible to >> change >> this to use multiple ports. >> - This does not support WikiFiles, yet. Only WikiFolders. >> - The UI was hacked together via React in an afternoon to demonstrate >> that this was feasible. It does not provide basically any error handling. >> >> >> *Installing:* >> >> 1. Download the stable release of nw.js from http://nwjs.io/ >> 2. extract nw.js >> 3. Clone the repository at >> https://github.com/mklauber/TiddlyServer.git >> 4. cd to the `source` directory of the cloned repo >> 5. run `npm install` >> >> *Running: * >> >> 1. run `/path/to/nw.js-vx.x.x-.../nw .` >> >> >> I was inspired to tackle this based on some comments Jeremy made on the >> direction that he'd like to take TiddlyDesktop. Hopefully the community >> finds it interesting, if not yet actually useful. I would appreciate >> feedback, suggestions, and especially Pull Requests. >> >> Thanks, >> Matt Lauber >> > -- 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 [email protected]. To post to this group, send email to [email protected]. Visit this group at https://groups.google.com/group/tiddlywikidev. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywikidev/899bcf70-079c-4d04-8b6b-efc8559c7c9c%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
