[tw5] Re: Strange List Issue with list-links

2022-01-18 Thread Reinhard Engel
@Eric Shulman

Thank you for enlightening me!

at 1) A case of blindness: I missed the missing `>` at the end of 
`<, because the list title was always  displayed.

at 2) I defined the macros, because I hope that some day I can use 
transclusions with parameters and pass in 'Book', 'Article', 'Video', etc. 
But even then, as your code shows, I probably wouldn't need them.

at 3) A misunderstanding: These are not double quotes, but two double 
single quotes to make the list title bold.

at 4) A case of laziness: I only tested for zero and one cases, not for 
more than one.

at 5) A case of ignorance: I'm not yet familiar with the finer details of 
the use of angle brackets within text and filters. Thanks for the 
clarification.

Your corrected /simpilified code works as desired!

Thanks again,
-Reinhard
On Tuesday, January 18, 2022 at 1:12:35 PM UTC+1 Eric Shulman wrote:

> Here's your code that doesn't work:
> ```
> \define listtitle() ''Books by $(currentTiddler)$''
> \define filter() "[tag[$(currentTiddler)$]tag[Book]]"
>
> <$list filter=<> variable="_"> < 
>
> <>
> ```
>
> Here's what's wrong:
> 1) There is a missing `>` at the end of `<`.  As a result, the 
> macro call isn't closed until the final `>>` at the end of the code.  All 
> the content between the error and the ending `>>` are treated as parameters 
> to the macro.
> 2) The `$(variablename)$` syntax is only parsed when it occurs *within a 
> macro*.  Thus, `"[tag[$(currentTiddler)$]tag[Book]"` is actually looking 
> for a literal tag value of `$(currentTiddler)$`.
> 3) You don't need the double-quotes around the content of `\define 
> filter() "..."`.
> 4) If there are multiple Book tiddlers for the current Author, your 
> `<$list>` widget (with the correction for the missing `>`) would display 
> the `<>` text multiple times, once for each matching Book 
> tiddler.
> 5) You don't actually need to use `$(currentTiddler)$` anywhere in the 
> above code... `<>` (or `` within a filter) 
> is sufficient.  In fact, you don't need to use any macros at all.
>
> Here's some corrected/simplified code:
> ```
> <$list filter="[tagtag[Book]limit[1]]" 
> variable="_">''Books by <>''
>
> >
> ```
>
> Notes:
> 1) The filter for the heading uses `limit[1]` so that the heading text is 
> only displayed once, regardless of how many matching Book tiddlers are 
> found.
>
> enjoy,
> -e
> On Tuesday, January 18, 2022 at 12:54:41 AM UTC-8 reinhard...@gmail.com 
> wrote:
>
>> In the attached TiddlyWiki I describe a strange issue with 'list-links'. 
>> I don't know if this is an error or I just missed something. 
>>
>

-- 
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 tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/7920e3f6-4042-4872-bd4b-070bc9b6e4abn%40googlegroups.com.


[tw5] Re: Strange List Issue with list-links

2022-01-18 Thread Eric Shulman
Here's your code that doesn't work:
```
\define listtitle() ''Books by $(currentTiddler)$''
\define filter() "[tag[$(currentTiddler)$]tag[Book]]"

<$list filter=<> variable="_"> < 

<>
```

Here's what's wrong:
1) There is a missing `>` at the end of `<`.  As a result, the 
macro call isn't closed until the final `>>` at the end of the code.  All 
the content between the error and the ending `>>` are treated as parameters 
to the macro.
2) The `$(variablename)$` syntax is only parsed when it occurs *within a 
macro*.  Thus, `"[tag[$(currentTiddler)$]tag[Book]"` is actually looking 
for a literal tag value of `$(currentTiddler)$`.
3) You don't need the double-quotes around the content of `\define filter() 
"..."`.
4) If there are multiple Book tiddlers for the current Author, your 
`<$list>` widget (with the correction for the missing `>`) would display 
the `<>` text multiple times, once for each matching Book 
tiddler.
5) You don't actually need to use `$(currentTiddler)$` anywhere in the 
above code... `<>` (or `` within a filter) 
is sufficient.  In fact, you don't need to use any macros at all.

Here's some corrected/simplified code:
```
<$list filter="[tagtag[Book]limit[1]]" variable="_">''Books 
by <>''

>
```

Notes:
1) The filter for the heading uses `limit[1]` so that the heading text is 
only displayed once, regardless of how many matching Book tiddlers are 
found.

enjoy,
-e
On Tuesday, January 18, 2022 at 12:54:41 AM UTC-8 reinhard...@gmail.com 
wrote:

> In the attached TiddlyWiki I describe a strange issue with 'list-links'. I 
> don't know if this is an error or I just missed something. 
>

-- 
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 tiddlywiki+unsubscr...@googlegroups.com.
To view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/7acf2688-7541-4ab0-a2a9-817ecb15bb7bn%40googlegroups.com.