A straightforward tutorial by Una Kravets on caching assets and individually requested articles with Service Workers for offline reading.
I'm curious what the best practice will become. It's possible that asking users to click something is it. Also possible: passively caching articles based on recently published, currently viewing, or related to currently viewing.
Service Workers are extremely powerful. They are the one technology that can make websites work offline, for example, and have true control over cache. But there is a lot to learn. Fortunately, Frontend Masters has a great course all about them.