I don't even
[librarian.git] / librarian / formats / pdf / __init__.py
index fd1fd5e..a994008 100644 (file)
@@ -52,7 +52,7 @@ class PdfFormat(Format):
 
     def add_file(self, ctx, filename, url=None, path=None, image=False):
         from subprocess import call
 
     def add_file(self, ctx, filename, url=None, path=None, image=False):
         from subprocess import call
-        if not url or path:
+        if not url and not path:
             raise BuildError('No URL or path for image')
         save_as = os.path.join(ctx.workdir, filename)
         if path is not None:
             raise BuildError('No URL or path for image')
         save_as = os.path.join(ctx.workdir, filename)
         if path is not None:
@@ -73,6 +73,8 @@ class PdfFormat(Format):
             if url.startswith('/'):
                 url = 'http://milpeer.eu' + url
 
             if url.startswith('/'):
                 url = 'http://milpeer.eu' + url
 
+            if '.' not in url:
+                raise BuildError('Linked file without extension: %s' % url)
             ext = url.rsplit('.', 1)[-1]
             if image:
                 urlretrieve(url, save_as + '_.' + ext)
             ext = url.rsplit('.', 1)[-1]
             if image:
                 urlretrieve(url, save_as + '_.' + ext)
@@ -347,6 +349,7 @@ PdfFormat.renderers.register(core.Div, 'video', VideoRenderer('par'))
 
 PdfFormat.renderers.register(core.Div, 'defined', CmdRenderer('textbf'))
 PdfFormat.renderers.register(core.Div, 'item', CmdRenderer('item'))
 
 PdfFormat.renderers.register(core.Div, 'defined', CmdRenderer('textbf'))
 PdfFormat.renderers.register(core.Div, 'item', CmdRenderer('item'))
+PdfFormat.renderers.register(core.Span, 'item', CmdRenderer('item'))
 PdfFormat.renderers.register(core.Div, 'list', EnvRenderer('itemize'))
 PdfFormat.renderers.register(core.Div, 'list.enum', EnvRenderer('enumerate'))
 
 PdfFormat.renderers.register(core.Div, 'list', EnvRenderer('itemize'))
 PdfFormat.renderers.register(core.Div, 'list.enum', EnvRenderer('enumerate'))