New learn page

Implementation based on @snconnolly's proposal on #420.