<$set name="filterA" filter="[tag[Todo]] [all[]prefix[a]]"><$set name="filterB" filter="[tag[Howto]] [all[]prefix[al]]"><$set name="setAunionB" filter="[enlist<filterA>] [enlist<filterB>]"><$set name="setAnotB" filter="[enlist<filterA>] -[enlist<filterB>]"><$set name="setBnotA" filter="[enlist<filterB>] -[enlist<filterA>]"><$set name="setAinterB" filter="[enlist<setAunionB>] -[enlist<setAnotB>] -[enlist<setBnotA>]">
<<list-links "[enlist<setAinterB>sort[]]">>
</$set></$set></$set></$set></$set>
and I alos would like to add the great interactive playground by Eric Shulman
These are three wonderful sources for learning filters and of course the holly **TW-Scripts**
\define intersect(filter1 filter2)
<$set name="filterA" filter="$filter1$">
<$set name="filterB" filter="$filter2$">
<$set name="setAunionB" filter="[enlist<filterA>] [enlist<filterB>]">
<$set name="setAnotB" filter="[enlist<filterA>] -[enlist<filterB>]">
<$set name="setBnotA" filter="[enlist<filterB>] -[enlist<filterA>]">
<$set name="setAinterB" filter="[enlist<setAunionB>] -[enlist<setAnotB>] -[enlist<setBnotA>]">
<<list-links "[enlist<setAinterB>sort[]]">>
</$set></$set></$set></$set></$set>
\end
<<intersect "[tag[Todo]] [all[]prefix[a]]" "[tag[Howto]] [all[]prefix[al]]">>
\define intersect(filter1 filter2)
<$set name="filterA" filter="$filter1$">
<$set name="filterB" filter="$filter2$">
<$set name="setAunionB" filter="[enlist<filterA>] [enlist<filterB>]">
<$set name="setAnotB" filter="[enlist<filterA>] -[enlist<filterB>]">
<$set name="setBnotA" filter="[enlist<filterB>] -[enlist<filterA>]">
<$set name="setAinterB" filter="[enlist<setAunionB>] -[enlist<setAnotB>] -[enlist<setBnotA>]">
<$list filter="[enlist<setAinterB>sort[]]">
</$list>
</$set></$set></$set></$set></$set>
\end
<$link/>,
\define intersect(filter1 filter2 template:"defaulttemplate")
<$set name="filterA" filter="$filter1$">
<$set name="filterB" filter="$filter2$">
<$set name="setAunionB" filter="[enlist<filterA>] [enlist<filterB>]">
<$set name="setAnotB" filter="[enlist<filterA>] -[enlist<filterB>]">
<$set name="setBnotA" filter="[enlist<filterB>] -[enlist<filterA>]">
<$set name="setAinterB" filter="[enlist<setAunionB>] -[enlist<setAnotB>] -[enlist<setBnotA>]">
<$list filter="[enlist<setAinterB>sort[]]" template="$template$">
</$list>
</$set></$set></$set></$set></$set>
\end
f=intersect("[tag[Todo]] [all[]prefix[a]]", "[tag[Howto]] [all[]prefix[al]]")
<<list-links "[enlist< $f$ >sort[]]">>
<$list filter="[enlist<setAinterB>sort[]]"
>
<$link/>
</$list>
...
;Macro Result
<<intersect "[tag[Todo]] [all[]prefix[a]]" "[tag[Howto]] [all[]prefix[al]]">>
<hr>
;Macro used as input to the text widget
<$text text=<<intersect "[tag[Todo]] [all[]prefix[a]]" "[tag[Howto]] [all[]prefix[al]]">>/>
<hr>
;Use as Variable after wikifying
<$wikify name=result text="""<<intersect "[tag[Todo]] [all[]prefix[a]]" "[tag[Howto]] [all[]prefix[al]]">>""" >
<$text text=<<result>>/>
</$wikify>
<$list filter="[enlist<setAinterB>sort[]]">
<$text text="[["/>{{!!title}}<$text text="]]"/></$list>
<$wikify name=result text="""<<intersect "[tag[Todo]] [all[]prefix[a]]" "[tag[Howto]] [all[]prefix[al]]">>""" >
<<result>>
<$text text=<<result>>/>
<$list filter=<<result>> >
;{{!!title}}:{{!!tags}}
</$list>
good stuff thanks for sharing your original work
Tony