So, I'm messing with some TW5 extension stuff. I have written a macro that I call "cond" because it's patterned after Lisp's construct bearing that name, and what it does is provide some flow-control in a generic way such that it's not necessary to write custom macros as often.
I've also modified the view template to give each tiddler a "subtitle" in small text after the main title, based on a separate field of course. (I used the cond macro to make the subtitle only appear if it is nonempty.) I'm trying now to modify the edit template similarly, and I'm running into a problem: There's no way to manually control the order of the parts which are combined to make the template. For everyone's convenience, here is the code of $:/core/ui/EditTemplate. Similar code appears in a few places, and I can't help but think that there must be some nice way to reduce this duplication... \define frame-classes() tw-tiddler-frame tw-tiddler-edit-frame $(missingTiddlerClass)$ $(shadowTiddlerClass)$ $(systemTiddlerClass)$ \end <$set name="storyTiddler" value=<<currentTiddler>>><div class=<<frame-classes>>><$list filter="[is[shadow]!has[draft.of]tag[$:/tags/EditTemplate]] [!is[shadow]!has[draft.of]tag[$:/tags/EditTemplate]] +[tag[$:/tags/EditTemplate]]" variable="listItem"><$transclude tiddler=<<listItem>>/></$list></div></$set> As you can see, this is leaving the order unspecified and relying on the default behavior. I think the result is to use the creation-timestamp order, which is a bit bizarre if true, and not at all extensible, since there's no mechanism through the UI to change that value! (Nor should there be.) It also seems to place tiddlers that exist in shadow form (even if they're overridden so that the shadow is not the one in effect) prior to ones that don't. All a bit weird. So, I'm looking for design suggestions. Obviously, I could change the code that gathers the template's parts to use a list instead of tags, since a list is an ordered collection, but that doesn't really seem right... It means that users customizing this template need to go into the template itself and modify the list, rather than just applying a tag to the new part they're adding. Of course, in some sense that can't be avoided since it's necessary to check what the ordering presently is, for any mechanism that allows it to be specified... So, I'm thinking now in terms of changes that would affect both the code and the UI, perhaps making it more convenient to manipulate where a tiddler is listed, from the tiddler itself. Since any solution is going to be reasonably deep, though, I'd be trying to get it rolled in upstream, and it would be great if I could get Jeremy's thoughts. Is changing template tiddlers to use lists the right approach? What sort of UI might fit well with the existing design while making it possible to manipulate where a tiddler is listed, from that tiddler itself? I also had a less-involved solution in mind, which would simply add a "priority" field to each tagged tiddler. This runs into a few problems: What if if a tiddler needs to be ordered with respect to multiple tags? And, there's no easy way to view the priorities of the other items in the notional "ordered tag" that this would produce, and thus no easy way to determine what any given tiddler's priority should be. It would at the very least require UI changes also, to make it usable, and the end result would be uglier than using a real list. Okay, I'm not sure how to wrap this up, so I'm just going to end there. Hopefully people can make sense of what I'm asking. :) -- Irene -- 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.
