from urllib import urlretrieve
from StringIO import StringIO
from Texml.processor import process
-from librarian import DCNS, XMLNamespace
+from librarian import DCNS, XMLNamespace, BuildError
from librarian.formats import Format
from librarian.output import OutputFile
from librarian.renderers import Register, TreeRenderer
def add_file(self, ctx, filename, url=None, path=None, image=False):
from subprocess import call
- assert 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:
ext = path.rsplit('.', 1)[-1]
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)
PdfFormat.renderers.register(core.Div, 'img', ImgRenderer('insertimage'))
+class VideoRenderer(CmdRenderer):
+ def render(self, element, ctx):
+ root = super(VideoRenderer, self).render(element, ctx)
+ url = 'https://www.youtube.com/watch?v=%s' % element.attrib.get('videoid')
+ link = texml_cmd('href', url, url)
+ root[0][0].text = None
+ root[0][0].append(link)
+ return root
+
+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.Span, 'item', CmdRenderer('item'))
PdfFormat.renderers.register(core.Div, 'list', EnvRenderer('itemize'))
PdfFormat.renderers.register(core.Div, 'list.enum', EnvRenderer('enumerate'))