Refactor external linked content cards

Took some time to make the code a little more understandable and extendable.

Courtesy of @oncletom.

![ ](http://s2.developerslife.ru/public/images/gifs/6a39b259-bcaa-4dfe-8f6b-b4cce1a8508a.gif)