Hi Chris I'm agnostic on that. It seems (superficially) that it ought to be > possible to support at least four editions off the same code with > config or dependency injection or whatever. The editions I'm thinking > are: > > * the node clientserver set > * tw5 on tiddlyspace > * tw5 on tank > * tw5 on plain tiddlyweb >
Agreed, The latter three are fairly similar with one main distinction: Where > does the name of the recipe come from. On tiddlyspace it comes from > either the hostname or from /status (in space.recipe, which on the > server is just calculated from hostname). On tank it's > /comps/<recipe>. On plain tiddlyweb it's from > /recipes/<recipe>/tiddlers.[1] > OK, I'll think about how we can make that setting be parameterised. Host might appear to be a distinction but if the code itself is loaded > from the same place as the tiddlers (as it usually does) then host can > be '/'. At the moment TW5 reads the template for the host URL through the magic tiddler $:/config/tiddlyweb/host, which was done in response to this ticket: https://github.com/Jermolene/TiddlyWiki5/issues/92 Would setting the host "/" have worked for supernovus? * It would be awesome if TW didn't have to worry about login/logout, just >> redirecting to the appropriate SPAs to handle it. The tricky case is maybe >> when a user has made changes that they can't save without logging in. >> > > Logout is not too much of an issue, but login can be a bit more messy. > Login to tiddlyspace is just passing username and password to a form, > but login to tank requires the oauth2 dance, which means potentially > following a series of redirects, taking you out of the current view. > > It is possible to get the name of the current challengers off /status > but that's no help with complex auth paths. OK, so it sounds like TW shouldn't attempt to handle logging in. What might we do in the situation where people have changes and yet aren't logged in in order to save them? On the TW side it's easy for them to download a plain copy of the updated wiki from the control panel "Server" tab. > * How might we handle extracting the recipe from the URL if a custom >> domain >> is being used? > > > > I don't think I quite understand the details of your question? Are you > asking what happens if there's an internal rewrite (rather than > redirect) from somecustomdomain.com/ to defaultdomain.com/some/path? > > Yes, I think so. I was wondering what might happen if Tank had TiddlySpace-style custom domain support; presumably we'd have the same problem of needing to pass the recipe name through some other means). * The current code excludes the app by appending ?select=title:!app to the >> end of the skinny tiddler URL. As it's only a skinny version presumably >> there'd be no problem with instead doing the exclusion on the TW config >> side? >> > > Yeah that ought to be fine. I did it that way because I had no > visibility into where the fat loading was really happening. OK, we can make that be a configurable filter. > It looks like the current tiddlywebadaptor.js code requires the current >>> user be logged in. Is there a particular reason for this Jeremy? That >>> comp above is designed to be public, but unless isLoggedIn is true the >>> callback after status is not called... >>> >> >> Fixed: >> > > Thanks, will integrate that soon. > > Some other observations: > > * When creating a New Tiddler, before the title is changed a draft of > New Tiddler is saved. This might be redundant and somewhat > encouraging of having a tiddler named "New Tiddler". Perhaps a draft > shouldn't happen (nor saving) unless the title is changed? > At the moment TW5 saves drafts continuously when editting; I was aiming for a Gmail-like experience. There's configuration options to throttle the rate at which changes are synced. Anyhow it does certainly lead to occasionally unexpected behaviour, and probably needs refinement. > * As far as I can tell there's no visible error reporting (other than > the browser's console) when the syncer experiences errors. Nor any > way to handle those errors, yet. Plans? > I'm overdue to sort that out. The plan would be to display errors and offer to download changes locally. > * A specific case of error would be an HTTP 412 (which would indicate > an edit conflict). At this point that doesn't happen because no > If-Match header is sent on PUT. If it were used, what are your > thoughts on how handling would be done? > If we had an SPA for resolving merge conflicts, then reasonable TW behaviour might be to force the save, alert the user, and give them a link to the conflict resolution SPA pointing at the tiddler(s) in question. > * It would be cool if the Recent tab, when hidden, lit up or otherwise > signalled when it had new data. The fact that the syncer actually > does sync when other people make changes is probably one of the coolest > features, but it is a bit hidden. > Aha, yes, there's no reason why we can't add a little alert for incoming tiddlers. I'll have a look. One more: > * I know that the tw5 code is capable of rendering individual tidlers > to static HTML from the command line. This sounds like a good starting > point for a tw5 version of twikifier. Pointers? The stuff in the > read me suggests you need to have a starting wiki file or tid > directory, which doesn't quite match what tank needs to do. > > My goal is that all of markdown, twC and tw5 will be server-side > renderable in tank. Markdown is done. twC needs some tweaks to deal > with some of the tiddlyspace specifics in twikifier[1]. tw5 is pending > knowing what to do. There's a simple demo app that shows how to use the TW5 parser/renderer as a library: https://github.com/Jermolene/TiddlyWiki5DemoApp As with TWC, the TW5 store needs to be preloaded with the tiddlers that will be visible to the wikified tiddler. > > [1] I'm using the /comps path in Tank to distinguish both from the API > URI and from the fact that a recipe represents a collection of > tiddlers, whereas a comp loads one tiddler (app) from a recipe. > One of the learnings from tiddlyspace was that as much as it initially > appears nice for the API and human interface to overlap, it ends up > getting messy on various dimensions. Interesting. So /comps/<recipe> is a shortcut for /recipes/<recipe>/tiddlers/app? By the way, can you explain how to create a comp in Tank? Many thanks, Jeremy > > -- > Chris Dent http://burningchrome.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 [email protected]. > To post to this group, send email to [email protected]. > Visit this group at http://groups.google.com/group/tiddlywikidev. > For more options, visit https://groups.google.com/groups/opt_out. > -- Jeremy Ruston mailto:[email protected] -- 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 http://groups.google.com/group/tiddlywikidev. For more options, visit https://groups.google.com/groups/opt_out.
