Hi Stuart,
there's a number of ways to get this, but since you'd like both custom filtering and custom display, I'd go with ForEachTiddlerPlugin (my latest updated version is
here):
<<fet
where 'tiddler.tags.includes("tag 1") && tiddler.tags.includes("tag 2")'
write '`!${tiddler.title}\n${tiddler.text}\n`'
>>
With
ExtraFiltersPlugin, you can do this using filters (which will also work with the list macro, but which has limited options to customize the view):
<<fet
where '[tag[tag 1]] [and[tag[tag 2]]'
write '`!${tiddler.title}\n${tiddler.text}\n`'
>>
(instead of template literals
`!${tiddler.title}\n${tiddler.text}\n`
, you may prefer the old JS syntax "!" + tiddler.title + "\n" + tiddler.text + "\n"`)
Note that the line inside "write" calcs wiki syntax, so you can change it to whatever you want.