## Overview
Allow users to set a blog customization option that has posts live on a sub-path (e.g. `/posts/`) instead of at the top level of the blog.
## Background
Primarily for #fight_back_news.
## Implementation
* Add a collection route: `"/posts/{slug}"` that shows the post.
* Recognize a new collection attribute: `posts_path`. If there's any value set, posts live on the sub-path (for now, set to `posts`)
* If posts live on the sub-path:
* Correctly set the posts' canonical URL
* Link there from the templates: `collection.html`, `collection-tags.html`
* Send user there after publishing post in the web app (TODO: see if the #writefreely_swiftui app has correct behavior, or update)
* (Note: clients may need to start relying on the published post's `url` value returned from the API)
* After moving a post to a collection in the web app, send to correct URL
* Continue showing standard blog post list on the `"/"` route
* On the `"/{slug}"` route, redirect **non-pinned posts** to sub-path, otherwise maintain current behavior
* Add a collection route: `"/posts/"` that shows current standard blog post list (if posts live on sub-path)
### Future
* Support a configurable sub-path
* Static landing page