On Friday, October 6, 2017 at 7:45:56 PM UTC+2, Jeremy Ruston wrote: I think you could actually go quite far with investigating this approach > using the existing TW5 codebase. The hard part would be navigation/editing > etc.: the things handled by the navigator widget. >
I think the proplems you see with navigation/editing may just be from a misunderstanding about what my proposal is, as I will clarify below here. In my mind there should be no such difficulties. > [..]Some of the problems I’m thinking about are how to unify the > similar-but-different mechanisms of transcluding macros vs. transcluding > tiddlers, > Simple! One macro per tiddler - as outlined in the "tiddler = encapsulation paradigm <https://groups.google.com/forum/#!topic/tiddlywikidev/Rnzj7yGrg_E>" thread. At least I can't see why that would not be a good approach to this problem. > Could a tiddler ID really be a filter? ...and the tiddler body display the > text from all those filtered tiddlers! > > This means a tiddler is either an encapsulated list-filter-transclusion of > other tiddlers or it is a "leaf" tiddler. > > > This duality feels complex and lumpy. An abstraction that explicitly takes > multiple contradictory forms is often best thought of as multiple separate > abstractions. > Actually, it is only one form: the ID is a filter. The "leaf tiddler" is also a filter, but the special case of a filter containing a single title. I merely refer to it as "leaf tiddler" due to our current frame of reference where I need to make a distinction. > I’m still not clear. How would I turn an ordinary tiddler into a filtered > tiddler? Just make sure that it’s title is a valid filter? > An "ordinary tiddler" wouldn't turn into a "filtered tiddler". *All* tiddlers would *be* "filtered tiddlers". A filtered tiddler IS an ordinary tiddler, just like if a current tiddler has an extra field. Currently, a tiddler is(?) a listing of some fields. This list is based on a filter. The OP idea is the same, but the filter simply lists (+transcludes) multiple "text" fields. For the sake of clarity, we should separate the term "title" into "name" and "ID"... or more technically terms, "label" and "filter string". The special case is when no label is given; then the filter string serves both as the filter argument and as the label. Using one of the imagined syntaxes here is an example: FooBar = [[FooBar]] ...these are the special cases where there is no label so the name of the tiddler is literally the filter string, which is also its ID. [[FooBar|FooBar]] ...this would give the same result because the label is the same as the filter string, i.e same as the tiddlers ID. Here come more interesting cases: [[Foo bar|tag[xx] Gronk]] ...this tiddler, named (labeled) "Foo bar" will show the content from all tiddlers tagged "xx" and the content from some other tiddler named (labeled) Gronk. The latter tiddler, i.e Gronk, may in turn have been defined - i.e have its ID - as, say, the string "tag[yy]". Thus, for rendering of "Foo bar", its unique ID string "tag[xx] Gronk" translates into the string "tag[xx] tag[yy]" (or, more correctly, "[tag[xx]] [tag[yy]]"). And the text of "Foo bar" is the same as the output from {{{ [tag[xx]] [tag[yy]] +[get[text]] }}} Links > > [...various examples of imaginable syntax...] > > > That format isn’t compatible with the present syntax; how would we > distinguish the single tiddler vs. list form? > I expressed myself poorly; those are intended to be three different imaginable syntaxes. For the sake of continued discussion we can assume, say, the first syntax, i.e: [[<label>|<filter>]] I hope my previous comments clarified that there there is no distinction between "single tiddler" and "list form". I’ve always expected that filtered links would use triple square brackets > [[[ [tag[MyTag]] ]]]. But I don’t think that filtered links are > particularly useful for navigating. > You would not navigate "inside" a tiddler any more than what you do today (i.e you don't). Or at least, that is a separate issue. The displayed content in a tiddler is the content of that tiddler, just as much as any other fields in that tiddler contitutes that tiddler. You would (presumably) not see the the titles (ie. labels) of the constituting tiddlers in a tiddler, which is one different from this type of tiddler and the story river. The tiddlers body lists only the texts from its constituting tiddlers. So clicking such a link, opens *one tiddler showing the content from all > the filter output tiddlers*. If the filter yields no output then you get > the "missing tiddler" template. But if there is *any *output tiddler, > then this content is seen. > > This display can be temporary, just like common generated lists. It makes > no difference for the viewer if the tiddler is stored or temporarily or > stored. This means links to not-yet-generated tiddlers should probably > appear like normal tiddlers unless, perhaps, the filter output is empty. > > > I’m not sure I follow all of this. A storyboard might help? > Still needed? Tiddlers > > What is the title of a tiddler, once it is opened? - The label. > > > What does it mean “once it is opened” Does the title change when it is > opened? What is the difference between a label and an ID? > Just the same as today; a tiddler is opened by clicking a link to it. The seen title does not change, it is the label. If no label was provided then it is the literal filter string. The label is somewhat equivalent to todays prettylinks. And the filter string could be stored in the tiddler itself or maybe (for > faster systemic access?) in some global directory. > > > Hmmm if it’s just a field then it doesn’t seem very fundamental. If it’s > stored somewhere else aren’t we breaking the basic encapsulation property > of tiddlers? > It is a field in the same sense that todays titles are fields. But, the possible idea with a global directory would be to use the label as the name and, when it is used as a filter argument, have it looked up / translated via a directory. This may be a bad idea - and would in deed make tiddlers less independent. Every tiddler would need access to such a directory or it would not know what to filter out for its body. > When the tiddler is to be used inside some other filter, the label is used > and parsed(?) into the filter string it represents. > > > I’m not sure exactly what that means. When is a tiddler used inside a > filter? > Hope the previous example with "Foo bar" clarified this. > The simplest filter is an empty filer, i.e only a label. Just like today. > BTW, this would mean the tiddler is a "leaf tiddler" as it doesn't display > any other tiddlers content. > > > Erm, an empty filter is an empty string isn’t it? Do you mean something > like a degenerate filter that only identifies a single tiddler? > Sorry, I expressed it poorly; I could just as well have said a filter without a label. A label without a filter is equivalent and is interpreted as a filter. I.e [[Foo bar]] is interpreted as a filter, if it is called in a filter and as a label when it comes to putting a name on the tiddler. ... As requested, here is "expanded logic" for the last bullet points: This would > > - make TW more *suitable* for narrative applications like creating > documents or "multi page things". Currently, TW is a kind of "digital > post-it note manager". The OP would widen TW to also be a kind of document > manager. > > It would make narratives/stories (i.e complex tiddlers) be a first class citizens because they would be treated as regular tiddlers... because they would BE regular tiddlers. Currently, to present the content of several tiddlers is a "manual" process. The OP would make it automatic as long as the user is able to define a tiddlers constituting filter. > - lower the threshold to use TW: An absolute noob can create a > "document" by using the filter "part1 part2 part3" and three days later > "[tag[doc]sort[]]", whereas <$list filter=... {{!!title}}..." is probably > not noob stuff at all. > > A tiddler would still be as simple to create as it is today. Everything that can be done today can also be done in this OP. But if the noob wants to "list the content of all tiddlers tagged doc" it would be simpler with the OP than currently. With the OP, he would only need to know the filter rather than using the listwidget + transclusions. > > - ...and, related, TW would be more usable as a static site generator > > Currently, to create a static site one exports the full river. This contains a lot of "special TW stuff" like the content being presented chunked up in tiddlers etc. If the user wants this he can still have it. But the OP makes it easier to export a more traditional one-page site because it would be enough to export one tiddler that shows the text from multiple other tiddlers. The output from exporting one tiddler looks much more normal than the output from several small tiddlers (unless you styled those small tiddlers). > > - ...also related; extremely simple bundling and drag'n dropping of > multiple tiddlers, i.e you just drag the tiddler... bundling won't even be > a concept as it's automatic. And it doesn't even have to be an existing > tiddler but improvised by just creating a link (i.e a filter) as described > above. > > The concept of bundling arose from a need to export multiple tiddlers in one go without having them be plugins, i.e without the use of (un-eraseable) shadow tiddlers. Currently, you can drag a single tiddler via its title link. And you can drag multiple tiddlers by tagging them and then dragging the common tag pill. The OP would be the same as the former, i.e drag a tiddler via its title link BUT the tiddler would drag along all constituting tiddlers as if it was the drag-by-tag case. But no tagging is needed. Hope this clarifies things more. <:-) -- 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/42e8ecaa-091a-4670-874d-957412203480%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.
