Hi Jeremy,
Thanks! That's marvelously concise.
On Thursday, February 14, 2019 at 10:01:19 AM UTC, Jeremy Ruston wrote:
>
> Hi Mark
>
> The following version works.
>
> \define concatStateTiddler()
> <$set filter="[all[current]get[draft.of]] [all[current]!has[draft.of]]
> +[addprefix[$:/state/]]" name="kitty"><$text text=<<kitty>>/></$set>
> \end
>
> \define backup(value)
> <$wikify text=<<concatStateTiddler>> name=cst>
> <$view tiddler=<<cst>> field="""$value$"""/>
> </$wikify>
> \end
>
>
> I think that this can be done much more concisely and efficiently.
>
> At the moment concatStateTiddler is using the "filter" attribute of the
> set widget. That means that the result of will be a list of titles, using
> double square brackets to quote titles containing spaces.
>
> I don't fully understand the original problem, but unless you definitely
> need to have that quoting, it would be more concise to write this:
>
> <$text text={{{ [all[current]get[draft.of]] ~[all[current]]
> +[addprefix[$:/state/]] }}}/>
>
> In the backup macro you're using the wikify widget on the result of the
> concatStateTiddler macro. Perhaps it's because you want to get the result
> of concatStateTiddler into a variable? But that doesn't make sense, because
> the substance of concatStateTiddler is to assign a value to a variable and
> then return it as text.
>
> Stepping back, it looks like this should work:
>
> \define backup(value)
> <$view tiddler={{{ [all[current]get[draft.of]] ~[all[current]]
> +[addprefix[$:/state/]] }}} field=<<__value__>>/>
> \end
>
> Best wishes
>
> Jeremy
>
>
>
>
>
> You can't concatenate a <<variable>> inside text like that ... well ...
> maybe with a lot of patient application of wikify (which I needed anyways).
> Instead, I used the "addprefix" operator to do the concatenation, following
> up on a suggestion by Jeremy in an earlier post today.
>
> Note, all the extra space and line feeds had to be squeezed out of
> concatStateTiddler -- if GG puts them back in ... take them out.
>
> The <$text> widget was used to convert the resulting item (which would
> otherwise have been a link because *filter* generates a title list) into
> plain text, and <$wikify> was used to make the entire result of
> concatStateTiddler into a single variable.
>
> Hope this was something like what you wanted!
>
> -- Mark
>
>
>
> On Tuesday, February 12, 2019 at 4:58:14 PM UTC-8, admls wrote:
>>
>> Hi Folks,
>>
>> I'm trying to populate a stylesheet, but I'm having trouble getting these
>> macros to work together. The concatStateTiddler macro is supposed to give
>> me the name of a state tiddler tacked composed of a prefix and the name of
>> the currentTiddler. The backup macro is supposed to fetch some value from
>> the state tiddler if it is present. And if it is not present, it should
>> fetch it from a set of backup values.
>>
>> \define concatStateTiddler()
>> <$set filter="[all[current]get[draft.of]] [all[current]!has[draft.of]]">
>> "$:/state/<<currentTiddler>>"
>> </$set>
>> \end
>>
>> \define backup(value)
>> <$view tiddler=$(concatStateTiddler)$ field="""$value$""">
>> <$view tiddler="$:/config/backup-values" field="""backup-$value$""">
>> </$view>
>> </$view>
>> \end
>>
>> I can get it to work if concatStateTiddler looks like this:
>> \define concatStateTiddler()
>> "$:/state/$(currentTiddler)$"
>> \end
>>
>> But I want the view and edit mode versions of the tiddler to use the same
>> state tiddler. Hence the first version of concatStateTiddler. But the first
>> version doesn't play nice with the backup macro. Any ideas of what I'm
>> doing wrong here?
>>
>> The only thing I can think is that the set widget is creating a list,
>> even if it is a list consisting of only one element (on account of the use
>> of [all[current]]). That list format may be playing havoc with the backup
>> macro. But I really don't have any idea beyond that. Any help would be
>> greatly appreciated.
>>
>> Best regards,
>>
>> Adam
>>
> --
> 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] <javascript:>.
> To post to this group, send email to [email protected]
> <javascript:>.
> 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/ab4280b0-84b5-4447-b516-9dc1d6898885%40googlegroups.com
>
> <https://groups.google.com/d/msgid/tiddlywiki/ab4280b0-84b5-4447-b516-9dc1d6898885%40googlegroups.com?utm_medium=email&utm_source=footer>
> .
> For more options, visit https://groups.google.com/d/optout.
>
>
--
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/80ec3225-a8d7-410f-b037-ba744b598d04%40googlegroups.com.
For more options, visit https://groups.google.com/d/optout.