I've nearly done the job I wanted.

in my macro tiddler I wrote:

\whitespace trim

\define wcagDir() <$transclude tiddler="$:/user/dict/wcag/ref/cat" 
index="$(codeFam)$"/>

\define wcag(ref)
<$set name="base" value="https://www.w3.org/WAI/WCAG21/Techniques";>
<$set name="codeFam" filter="$ref$ +[splitregexp[\d+]] +[join[]]">
ref: $ref$
base: <<base>>
codeFam: <<codeFam>>
dir: <<wcagDir>>
<$set name="url" filter="[<base>] [<wcagDir>] $ref$ +[join[/]]">
a href=<<url>> target="w3.org/WAI/" LABEL $ref$
</$set>
</$set>
</$set>
\end.png

and in my user tiddler I wrote:

* H18 in wcag: <<wcag H18>>
                                                                        
and thisproduces that:

H18 in wcag: ref: H18 base: https://www.w3.org/WAI/WCAG21/Techniques 
codeFam: H dir: html a 
href=https://www.w3.org/WAI/WCAG21/Techniques/<$transclude 
tiddler="$:/user/dict/wcag/ref/cat" index="H"/>/H18 target="w3.org/WAI/" 
LABEL H18

 Why the difference for the wcagDir macro calls? I tried playing with the 
wikify widget but it does not what I wanted (I thought that I need the 
output of wcagDir be interpreted as wiki text). If I put 
[{/user/dict/wcag/ref/cat##H}] instead of the transclude widget, it is OK, 
but I must use a variable and not H, and this I cannot do, and so I thought 
that the transclude widget would save me.

[image: wcag-macro.png]
Le mardi 29 septembre 2020 à 11:07:18 UTC+2, Jean-Pierre Rivière a écrit :

> Thank you vet much ineed Eric! I already read that abbreviated form stuff, 
> but it did not got me right on this. Actually, I think the shorter syntax 
> is really difficult into apprehending the filters. For me anyway.
>
> When you read in the schema that a run should obey "one [, then neither [ 
> nor ] then ]" it's a bit difficult to see that a run can be [[helloThere]] 
> because it is the abbreviated form of [title[helloThere]]. I mean, when 
> you'rte out of idea of what was wrong, the documentation is a mixed 
> blessing as it currently is. This form is not bad in itself but it is hard 
> on the newbye. I'd like to have a try at providing further help for the 
> newbye, but I just cannot yet, because I'm just struiggling to get things 
> done.
>
> Abot getting things done, the error message I get most often is "Missing [ 
> in filter expression" which is not very helpful. This is the case, for 
> instance, in the following macro definition:
>
> <$set name="codeFamily" filter="[[title[$ref$]] +join[]]">
>
> There are the same numbers of [ and ] and each [ do precede its 
> corresponfing ]]. Is there an helper tool available to check syntax 
> problems and report them in a more useful way? (and I don't see the syntax 
> problem in my example, although this is just an example, as the code I 
> wanted was filter=[[$refs$]+join[]]" but it is not working as expected 
> either but I'm working on it and it's not my question here).
>
>
> Le lundi 28 septembre 2020 à 19:03:22 UTC+2, Eric Shulman a écrit :
>
>> On Monday, September 28, 2020 at 9:48:20 AM UTC-7, Jean-Pierre Rivière 
>> wrote:
>>>
>>> @Eric
>>> I don't understand the [[/$tref$]] construct inside a filter. From the 
>>> doc, I see that [...] is a filter run. A filter run is made of step and 
>>> each step is essentially a parameter eventually preceded by ! and/or an 
>>> operator (with eventual : suffixes). No suare breacket within a step. I 
>>> heve not read that a run can directly contain a run. So I cannot understand 
>>> how [[/$ref]] may occur within a filter. I4m also finding strange a step 
>>> without operator but with an operand (parameter) and the text seems to be 
>>> ofg the same advice but as far as I read the railroad schema, this may very 
>>> well happen (no idea of an example for me).
>>>
>>> I don't say you're wrong, I'm just saying I don't see how I could have 
>>> understood that from the official documentation.
>>>
>>
>> This is explained in https://tiddlywiki.com/#Filter%20Step
>>
>> The step's operator is drawn from a list of predefined keywords 
>>> <https://tiddlywiki.com/#Filter%20Operators>, which can be extended by 
>>> plugins.
>>> Any unrecognised operator is treated as if it was the suffix to the 
>>> field <https://tiddlywiki.com/#field%20Operator> operator.
>>> If a step's operator is omitted altogether, it defaults to title.
>>
>>
>> Thus, [[text here]] *is* a filter run containing one filter step that is 
>> equivalent to [title[text here]].
>> Note that you can also specify a filter run that defines literal text 
>> values by using quotes,
>> as described in https://tiddlywiki.com/#Filter%20Run
>>
>> The lower three options in the diagram match syntax like HelloThere, 
>>> "HelloThere", 'HelloThere' and "Filter Operators".
>>>
>> They are short for [title[...]].
>>>
>>> The quoted options exist to support titles that contain square brackets, 
>>> as in "An [[[[Unusual]]]] Tiddler".
>>>
>>
>> -e
>>
>

-- 
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 view this discussion on the web visit 
https://groups.google.com/d/msgid/tiddlywiki/1a77ada4-2849-42da-b947-806239f779cen%40googlegroups.com.

Reply via email to