fix video
[librarian.git] / librarian / formats / html / __init__.py
index ae6470a..271fac9 100644 (file)
@@ -9,7 +9,7 @@ from librarian.formats import Format
 from librarian.output import OutputFile
 from librarian.renderers import Register, TreeRenderer
 from librarian.utils import Context, get_resource
-from librarian import core
+from librarian import core, get_provider
 
 
 class HtmlFormat(Format):
@@ -187,7 +187,27 @@ class DivImage(NaturalText):
 
 HtmlFormat.renderers.register(core.Div, 'img', DivImage('img'))
 
+
+class DivVideo(NaturalText):
+    def render(self, element, ctx):
+        output = super(DivVideo, self).render(element, ctx)
+        provider = get_provider(element.attrib.get('provider'))
+        video_id = element.attrib.get('videoid', '')
+        attribs = {
+            'width': '854',
+            'height': '480',
+            'src': provider['embed'] % video_id,
+            'frameborder': '0',
+            'allowfullscreen': '',
+        }
+        for attrib, value in attribs.iteritems():
+            output[0].attrib[attrib] = value
+        return output
+
+HtmlFormat.renderers.register(core.Div, 'video', DivVideo('iframe'))
+
 HtmlFormat.renderers.register(core.Div, 'item', NaturalText('li'))
+HtmlFormat.renderers.register(core.Span, 'item', NaturalText('li'))
 HtmlFormat.renderers.register(core.Div, 'list', NaturalText('ul'))
 HtmlFormat.renderers.register(core.Div, 'list.enum', NaturalText('ol'))