Detect block properties (particularly tags) when using the card search

Problem in short: The current card query function only detects tags like this ‘#tag1’, and not when the tags are in the block properties like this ‘tags:: tag1’. This undermines the functionality of the card search for studying as, in many cases, having ‘#tag1’ appear in the first page of a card gives away the answer.

Solution: Make block properties searchable through the card query function with the syntax {{cards (property tags tag1)

Problem explained in full

A problem with the current card query function is that in it only detects tags that are attached to cards like this ‘#tag1’ and not cards that have the tag in their block properties, e.g. ‘tag:: tag1’.

This completely undermines the functionality of using the card query function to study. For example, suppose that I am studying ‘Module 1’ of my Biology course and I tag all cards associated with that Module '#[[Biology Module 1]]. Imagine that I also want to keep track of all the cards associated with mitochondria, so I tag them with ‘#mitochondria’.

The problem with this is that when I go on to review my cards for Biology Module 1 ‘#mitochondria’ then appears in the first block of the cards giving away the answer whenever you’re reviewing them, see the image below.

One way around this is to tag the card by adding ‘mitchondria’ to the block properties like this 'tags:: Mitochondria. But then the problem is that if I want to search for cards associated with mitchondria the cards won’t appear, as the card query function doesn’t detect them.

The ordinary query function does detect these properties, so I’m hoping that it will be easy to add this functionality to the card query function.