diff --git a/mdx_oembed/__init__.py b/mdx_oembed/__init__.py index 97960a4..32a9d2a 100644 --- a/mdx_oembed/__init__.py +++ b/mdx_oembed/__init__.py @@ -2,10 +2,8 @@ from mdx_oembed.extension import OEmbedExtension -VERSION = '0.1.4' +VERSION = '0.1.9' -def makeExtension(configs=None): - if isinstance(configs, list): - configs = dict(configs) - return OEmbedExtension(configs=configs) +def makeExtension(**kwargs): + return OEmbedExtension(**kwargs) diff --git a/mdx_oembed/endpoints.py b/mdx_oembed/endpoints.py index ce0a0d6..370bfaa 100644 --- a/mdx_oembed/endpoints.py +++ b/mdx_oembed/endpoints.py @@ -2,15 +2,20 @@ import oembed -ENDPOINTS = { - 'youtube': oembed.OEmbedEndpoint('http://www.youtube.com/oembed', [ +DEFAULT_ENDPOINTS = [ + # Youtube + oembed.OEmbedEndpoint('http://www.youtube.com/oembed', [ 'https?://(*.)?youtube.com/*', 'https?://youtu.be/*', ]), - 'flickr': oembed.OEmbedEndpoint('http://www.flickr.com/services/oembed/', [ + + # Flickr + oembed.OEmbedEndpoint('http://www.flickr.com/services/oembed/', [ 'https?://*.flickr.com/*', ]), - 'vimeo': oembed.OEmbedEndpoint('http://vimeo.com/api/oembed.json', [ + + # Vimeo + oembed.OEmbedEndpoint('http://vimeo.com/api/oembed.json', [ 'https?://vimeo.com/*', ]), -} +] diff --git a/mdx_oembed/extension.py b/mdx_oembed/extension.py index 84e84a6..b3916fa 100644 --- a/mdx_oembed/extension.py +++ b/mdx_oembed/extension.py @@ -1,22 +1,21 @@ # -*- coding: utf-8 -*- from markdown import Extension import oembed -from mdx_oembed.endpoints import ENDPOINTS +from mdx_oembed.endpoints import DEFAULT_ENDPOINTS from mdx_oembed.inlinepatterns import OEmbedLinkPattern, OEMBED_LINK_RE -AVAILABLE_ENDPOINTS = ENDPOINTS.keys() - - class OEmbedExtension(Extension): - config = { - 'allowed_endpoints': [ - AVAILABLE_ENDPOINTS, - "A list of oEmbed endpoints to allow. Possible values are " - "{}.".format(', '.join(AVAILABLE_ENDPOINTS)), - ], - } + def __init__(self, **kwargs): + self.config = { + 'allowed_endpoints': [ + DEFAULT_ENDPOINTS, + "A list of oEmbed endpoints to allow. Defaults to " + "endpoints.DEFAULT_ENDPOINTS" + ], + } + super(OEmbedExtension, self).__init__(**kwargs) def extendMarkdown(self, md, md_globals): self.oembed_consumer = self.prepare_oembed_consumer() @@ -25,10 +24,11 @@ class OEmbedExtension(Extension): md.inlinePatterns.add('oembed_link', link_pattern, '%s" % html + placeholder = self.markdown.htmlStash.store(html, True) + return placeholder def get_oembed_html_for_match(self, match): url = match.group(3).strip() diff --git a/setup.py b/setup.py index 3e9ec51..fa5dbf3 100644 --- a/setup.py +++ b/setup.py @@ -15,7 +15,7 @@ except Exception: setup( name='python-markdown-oembed', - version='0.1.4', + version='0.1.9', description="Markdown extension to allow media embedding using the oEmbed " "standard.", long_description=LONG_DESCRIPTION, @@ -36,7 +36,7 @@ setup( ], install_requires=[ "python-oembed >= 0.2.1", - "Markdown >= 2.2.0", + "Markdown >= 2.6.1", ], test_suite='nose.collector',