Before this change, only three hardcoded oEmbed endpoints were available
for users of the extension; youtube, flickr and vimeo. In the
configuration, it was only possible to pass a subset of those 3 oEmbed
endpoints. It was done by passing the names of the allowed endpoints.
With this change, the API has changed. The allowed_endpoints kwarg now
expects to be passed a list of OEmbedEndpoint objects (as opposed to
names). This means the responsibility of creating OEmbedEndpoint objects
has been shifted to the user of the extension. If the allowed_endpoints
kwarg is omitted, the default oEmbed endpoints used will be the same as
before; youtube, flickr and vimeo.
The motivation is to allow arbitrary oEmbed endpoints, without
necessitating anyone to maintain the list of all possible oEmbed
endpoints out there.
The reasoning is that the translation of Markdown into HTML should be as
concise as possible. The semantics of the figure element seem to fit the
embedded nature of OEmbed content moreso than the div element which is
quite generic.
To keep a constant aspect ratio for the resulting iframe of an oEmbed
request in a responsive website, the iframe needs a div wrapper. With
this change, html results are wrapped in a "oembed" class div.