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].
> 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/ab4280b0-84b5-4447-b516-9dc1d6898885%40googlegroups.com.
> 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/702FAFA6-79D3-438C-98AF-251DCA47474C%40gmail.com.
For more options, visit https://groups.google.com/d/optout.

Reply via email to