Routes and collections and channels, oh my!
Some notes and worked examples.

Always worth another read: The 👉 official routes.yaml documentation.
Filtering the homepage to exclude 'daily-news'.
routes:
collections:
/daily-news/:
permalink: /daily-news/{slug}/
filter: primary_tag:daily-news
/:
permalink: /{slug}/
template: index
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
Tip: Collections are exclusive. A post can only be in one collection. Channels are not exclusive, but cannot specify urls of the posts in them.
Posts are assigned to collections starting at the top of the list. If we reversed these collections, then all posts would be assigned to the /: route, since there was no filter on it, so there would be no posts for the /daily-news/: route. Switching the order allowed the daily-news route to take the daily-news-tagged posts.
Another solution would be to filter: primary_tag:-[daily-news]
from the /: collection, like this:
routes:
collections:
/:
permalink: /{slug}/
template: index
filter: primary_tag:-[daily-news]
/daily-news/:
permalink: /daily-news/{slug}/
filter: primary_tag:daily-news
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
Two bonus tips:
- Posts that aren’t assigned to any route don’t get a nice slug. They get a random-looking 32-character uuid, like
yoursite/p/0bea5f67-880d-44c8-9ee7-9a19e6d4dfed
. Always make sure your posts land on some route, if you want to be able to give them a human-readable slug. (This is a good argument for making the last route have no filter on it.) - If you ever want posts to show up in multiple places (perhaps you have daily-news that is also sports-news), check out channels. They’re not exclusive, so a post can belong to multiple channels. (Each one still needs to be in a collection so that it’ll get a nice url.)
Example: Don't show 'sold' tagged posts on the homepage.
Offer an /all/
url that shows everything, and a /sold/
url for just sold items:
routes:
/all/:
controller: channel
collections:
/:
permalink: /{slug}/
filter: tags:-[sold]
template: home *** or index if your theme doesn't have a home.
/sold/:
permalink: /{slug}/
filter: tags:[sold]
template: ***see above***
taxonomies:
tag: /tag/{slug}/
author: /author/{slug}/
I’m making /all/
a channel, because a post can only belong to one collection. (There are several other configurations of channels and routes possible here. This is just one.)