I started working on this in
https://github.com/discourse/discourse/pull/6699
Here is a little preview: