Sorry It was when I tried to add a comment above the macro that I threw the error. I need to study up on TW5 comment syntax.
On Thursday, February 23, 2017 at 11:15:35 PM UTC-8, Daniel Cunningham wrote: > > Uhhh, scratch the "leading whitespace fragility" question. I need to > chase my own sloppiness down... :-) > > > On Thursday, February 23, 2017 at 10:34:03 PM UTC-8, Daniel Cunningham > wrote: >> >> Hi Mark, >> >> Thanks for that follow-up! I'm beginning to see (thanks to you and >> Mario) how this works. >> >> OK, so I now get how you can negate the sort order inside the macro (with >> a bang). And then I see from the docs that the way that expression >> evaluates is L-to-R via that "railroad" style filter syntax >> <http://tiddlywiki.com/#Filter%20Expression>. >> >> And now I see how you can't get to the juicy inner goodness unless you >> explicitly flip that bang in the middle... >> >> ...which bothered me. So I extended your initial idea to allow an >> additional parameterization from outside: >> >> \define timeline2(limit:"100",format:"DDth MMM >> YYYY",subfilter:"",sortaction"sort",dateField:"modified") >> <div class="tc-timeline"> >> <$list >> filter="[!is[system]$subfilter$has[$dateField$]$sortaction$[$dateField$]limit[$limit$]eachday[$dateField$]]"> >> >> [...] >> >> <$macrocall $name="timeline2" subfilter="" >> format={{$:/language/RecentChanges/DateFormat}} sortaction="sort" >> dateField="created"/> >> >> And so, I can make a call using a sortaction of "sort" or "!sort", and >> control it from outside. Which works. And taught me a lot, so thanks to >> you & Mario for investing your time explaining that to me. >> >> Finally. some observations and questions for you veterans (keeping in >> mind that I'm not at all familiar with the code base yet): >> >> - Keep in mind I'm not a "macro-ey" kinda guy. I'm more of >> "function-ey" or "object/method-ey" dude, so I'm sure you should take >> this >> with a bowling ball sized grain of salf... >> - It kind of "bothered" me that the declaration "looks" like it has a >> "default parameterization", but does not really. In other words, when >> you >> call the macro, if you don't explicitly supply all parameters, it will >> fail. That seems a bit fragile, right? >> - Death by whitespace: I found out if there's any leading whitespace >> (before the macro definition) the tiddler fails. Also, if there's any >> whitespace in the filter list, it will fail. Again, trying not to seem >> harsh, but it feels rather fragile. Am I being unfair? >> - Is this "macro-ey" stuff kind of like the STL in C++? >> - Is this "fragility" due to the macro mechanism itself? Or is it a >> characteristic of JavaScript? Or CSS? Or HTML? Or some intersection of >> those elements? >> >> >> And, again, most of all... THANKS for your explanations, which have been >> very useful in helping me to spin up on the awesomeness that is TiddlyWiki! >> >> >> >> On Thursday, February 23, 2017 at 5:42:43 PM UTC-8, Mark S. wrote: >>> >>> Hi Daniel, >>> >>> Mario's syntax uses the macrocall widget, which is a somewhat more >>> formal way of calling a macro that works better in some situations. >>> >>> The problem with the timeline macro is that it doesn't give you access >>> to the sorting order (A/D), as you can see in this filter: >>> >>> [!is[system]$subfilter$has[$dateField$]*!**sort*[$dateField$]limit[ >>> $limit$]eachday[$dateField$]] >>> >>> You can't reach the *!sort* in the macro invocation. You can try >>> putting the following into a tiddler, which is modified from the original >>> timeline code: >>> >>> \define timeline2(limit:"100",format:"DDth MMM YYYY",subfilter:"", >>> dateField:"modified") >>> <div class="tc-timeline"> >>> <$list filter= >>> "[!is[system]$subfilter$has[$dateField$]sort[$dateField$]limit[$limit$]eachday[$dateField$]]" >>> > >>> <div class="tc-menu-list-item"> >>> <$view field="$dateField$" format="date" template="$format$"/> >>> <$list filter= >>> "[sameday:$dateField${!!$dateField$}!is[system]$subfilter$sort[$dateField$]]" >>> > >>> <div class="tc-menu-list-subitem"> >>> <$link to={{!!title}}> >>> <<timeline-title>> >>> </$link> >>> </div> >>> </$list> >>> </div> >>> </$list> >>> </div> >>> \end >>> <$macrocall $name="timeline2" subfilter="" format={{$:/language/ >>> RecentChanges/DateFormat}} dateField="created"/> >>> >>> It seemed to work in my quick test, though I didn't look at dates too >>> closely. >>> >>> Good luck! >>> Mark >>> >>> >>> On Thursday, February 23, 2017 at 4:12:26 PM UTC-8, Daniel Cunningham >>> wrote: >>>> >>>> Many thanks, Mario! I tried that, and it works. >>>> >>>> But rather than change a shadow tiddler, I elected to put in into a >>>> "end-user" tiddler, that I can then place in the sidebar with a >>>> "$:tags/SideBar" tag. That gives me the functionality I was looking for. >>>> Also, I won't shoot myself in the foot if core changes during my "learning >>>> curve". :-) >>>> >>>> As a follow-up, the results are still in descending order (same as the >>>> original Recent tab functionality). So, to get ascending order, I recon I >>>> should apply a sort operator to the results of your code segment. But the >>>> syntax of your code is very different than that shown in the docs -- can >>>> you give guidance on this? >>>> >>>> Best, >>>> >>>> -- Daniel >>>> >>>> >>>> On Wednesday, February 22, 2017 at 4:22:50 PM UTC-8, PMario wrote: >>>>> >>>>> On Wednesday, February 22, 2017 at 11:48:49 PM UTC+1, Daniel >>>>> Cunningham wrote: >>>>>> >>>>>> And then what you are saying is that since this is embedded in the >>>>>> timeline macro, any sort criteria I try to apply to "created" will be to >>>>>> no >>>>>> avail? >>>>>> >>>>> >>>>> Have a look at the docs: http://tiddlywiki.com/#timeline%20Macro >>>>> >>>>> >>>>>> >>>>>> Unless... I clone the macro & modfify it to use the "created" field? >>>>>> >>>>> >>>>> Edit: $:/core/ui/SideBar/Recent >>>>> <http://tiddlywiki.com/#%24%3A%2Fcore%2Fui%2FSideBar%2FRecent> >>>>> >>>>> like so: <$macrocall $name="timeline" >>>>> format={{$:/language/RecentChanges/DateFormat}} dateField="created"/> >>>>> >>>>> and you should be good to go. >>>>> >>>>> have fun! >>>>> mario >>>>> >>>>> -- You received this message because you are subscribed to the Google Groups "TiddlyWiki" 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/tiddlywiki. To view this discussion on the web visit https://groups.google.com/d/msgid/tiddlywiki/3f5c1dd4-4a58-4dec-a2fe-3db144b137fe%40googlegroups.com. For more options, visit https://groups.google.com/d/optout.

