mirror of
https://github.com/Hopiu/python-markdown-oembed.git
synced 2026-03-16 22:10:24 +00:00
Merge remote-tracking branch 'wenzil/master' into 0.2.0
This commit is contained in:
commit
7d5a0ef503
5 changed files with 35 additions and 30 deletions
|
|
@ -2,10 +2,8 @@
|
||||||
from mdx_oembed.extension import OEmbedExtension
|
from mdx_oembed.extension import OEmbedExtension
|
||||||
|
|
||||||
|
|
||||||
VERSION = '0.1.4'
|
VERSION = '0.1.9'
|
||||||
|
|
||||||
|
|
||||||
def makeExtension(configs=None):
|
def makeExtension(**kwargs):
|
||||||
if isinstance(configs, list):
|
return OEmbedExtension(**kwargs)
|
||||||
configs = dict(configs)
|
|
||||||
return OEmbedExtension(configs=configs)
|
|
||||||
|
|
|
||||||
|
|
@ -2,15 +2,20 @@
|
||||||
import oembed
|
import oembed
|
||||||
|
|
||||||
|
|
||||||
ENDPOINTS = {
|
DEFAULT_ENDPOINTS = [
|
||||||
'youtube': oembed.OEmbedEndpoint('http://www.youtube.com/oembed', [
|
# Youtube
|
||||||
|
oembed.OEmbedEndpoint('http://www.youtube.com/oembed', [
|
||||||
'https?://(*.)?youtube.com/*',
|
'https?://(*.)?youtube.com/*',
|
||||||
'https?://youtu.be/*',
|
'https?://youtu.be/*',
|
||||||
]),
|
]),
|
||||||
'flickr': oembed.OEmbedEndpoint('http://www.flickr.com/services/oembed/', [
|
|
||||||
|
# Flickr
|
||||||
|
oembed.OEmbedEndpoint('http://www.flickr.com/services/oembed/', [
|
||||||
'https?://*.flickr.com/*',
|
'https?://*.flickr.com/*',
|
||||||
]),
|
]),
|
||||||
'vimeo': oembed.OEmbedEndpoint('http://vimeo.com/api/oembed.json', [
|
|
||||||
|
# Vimeo
|
||||||
|
oembed.OEmbedEndpoint('http://vimeo.com/api/oembed.json', [
|
||||||
'https?://vimeo.com/*',
|
'https?://vimeo.com/*',
|
||||||
]),
|
]),
|
||||||
}
|
]
|
||||||
|
|
|
||||||
|
|
@ -1,22 +1,21 @@
|
||||||
# -*- coding: utf-8 -*-
|
# -*- coding: utf-8 -*-
|
||||||
from markdown import Extension
|
from markdown import Extension
|
||||||
import oembed
|
import oembed
|
||||||
from mdx_oembed.endpoints import ENDPOINTS
|
from mdx_oembed.endpoints import DEFAULT_ENDPOINTS
|
||||||
from mdx_oembed.inlinepatterns import OEmbedLinkPattern, OEMBED_LINK_RE
|
from mdx_oembed.inlinepatterns import OEmbedLinkPattern, OEMBED_LINK_RE
|
||||||
|
|
||||||
|
|
||||||
AVAILABLE_ENDPOINTS = ENDPOINTS.keys()
|
|
||||||
|
|
||||||
|
|
||||||
class OEmbedExtension(Extension):
|
class OEmbedExtension(Extension):
|
||||||
|
|
||||||
config = {
|
def __init__(self, **kwargs):
|
||||||
'allowed_endpoints': [
|
self.config = {
|
||||||
AVAILABLE_ENDPOINTS,
|
'allowed_endpoints': [
|
||||||
"A list of oEmbed endpoints to allow. Possible values are "
|
DEFAULT_ENDPOINTS,
|
||||||
"{}.".format(', '.join(AVAILABLE_ENDPOINTS)),
|
"A list of oEmbed endpoints to allow. Defaults to "
|
||||||
],
|
"endpoints.DEFAULT_ENDPOINTS"
|
||||||
}
|
],
|
||||||
|
}
|
||||||
|
super(OEmbedExtension, self).__init__(**kwargs)
|
||||||
|
|
||||||
def extendMarkdown(self, md, md_globals):
|
def extendMarkdown(self, md, md_globals):
|
||||||
self.oembed_consumer = self.prepare_oembed_consumer()
|
self.oembed_consumer = self.prepare_oembed_consumer()
|
||||||
|
|
@ -25,10 +24,11 @@ class OEmbedExtension(Extension):
|
||||||
md.inlinePatterns.add('oembed_link', link_pattern, '<image_link')
|
md.inlinePatterns.add('oembed_link', link_pattern, '<image_link')
|
||||||
|
|
||||||
def prepare_oembed_consumer(self):
|
def prepare_oembed_consumer(self):
|
||||||
allowed_endpoints = self.getConfig('allowed_endpoints',
|
allowed_endpoints = self.getConfig('allowed_endpoints', DEFAULT_ENDPOINTS)
|
||||||
AVAILABLE_ENDPOINTS)
|
|
||||||
consumer = oembed.OEmbedConsumer()
|
consumer = oembed.OEmbedConsumer()
|
||||||
[consumer.addEndpoint(v)
|
|
||||||
for k,v in ENDPOINTS.items()
|
if allowed_endpoints:
|
||||||
if k in allowed_endpoints]
|
for endpoint in allowed_endpoints:
|
||||||
|
consumer.addEndpoint(endpoint)
|
||||||
|
|
||||||
return consumer
|
return consumer
|
||||||
|
|
|
||||||
|
|
@ -21,8 +21,10 @@ class OEmbedLinkPattern(Pattern):
|
||||||
html = self.get_oembed_html_for_match(match)
|
html = self.get_oembed_html_for_match(match)
|
||||||
if html is None:
|
if html is None:
|
||||||
return None
|
return None
|
||||||
placeholder = self.markdown.htmlStash.store(html)
|
else:
|
||||||
return placeholder
|
html = "<figure class=\"oembed\">%s</figure>" % html
|
||||||
|
placeholder = self.markdown.htmlStash.store(html, True)
|
||||||
|
return placeholder
|
||||||
|
|
||||||
def get_oembed_html_for_match(self, match):
|
def get_oembed_html_for_match(self, match):
|
||||||
url = match.group(3).strip()
|
url = match.group(3).strip()
|
||||||
|
|
|
||||||
4
setup.py
4
setup.py
|
|
@ -15,7 +15,7 @@ except Exception:
|
||||||
|
|
||||||
setup(
|
setup(
|
||||||
name='python-markdown-oembed',
|
name='python-markdown-oembed',
|
||||||
version='0.1.4',
|
version='0.1.9',
|
||||||
description="Markdown extension to allow media embedding using the oEmbed "
|
description="Markdown extension to allow media embedding using the oEmbed "
|
||||||
"standard.",
|
"standard.",
|
||||||
long_description=LONG_DESCRIPTION,
|
long_description=LONG_DESCRIPTION,
|
||||||
|
|
@ -36,7 +36,7 @@ setup(
|
||||||
],
|
],
|
||||||
install_requires=[
|
install_requires=[
|
||||||
"python-oembed >= 0.2.1",
|
"python-oembed >= 0.2.1",
|
||||||
"Markdown >= 2.2.0",
|
"Markdown >= 2.6.1",
|
||||||
],
|
],
|
||||||
|
|
||||||
test_suite='nose.collector',
|
test_suite='nose.collector',
|
||||||
|
|
|
||||||
Loading…
Reference in a new issue