From decc3a73d631e9e6e9095e2ab7b7803ba6736e77 Mon Sep 17 00:00:00 2001 From: Radek Czajka Date: Wed, 13 Feb 2013 15:07:01 +0100 Subject: [PATCH] slowniczek --- librarian/__init__.py | 4 ++-- librarian/pyhtml.py | 19 ++++++++++++++----- 2 files changed, 16 insertions(+), 7 deletions(-) diff --git a/librarian/__init__.py b/librarian/__init__.py index 215cacb..430fb7e 100644 --- a/librarian/__init__.py +++ b/librarian/__init__.py @@ -124,11 +124,11 @@ class DocProvider(object): """ def by_slug(self, slug): - """Should return a file-like object with a WL document XML.""" + """Should return an IOFile object with a WL document XML.""" raise NotImplementedError def by_uri(self, uri, wluri=WLURI): - """Should return a file-like object with a WL document XML.""" + """Should return an IOFile object with a WL document XML.""" wluri = wluri(uri) return self.by_slug(wluri.slug) diff --git a/librarian/pyhtml.py b/librarian/pyhtml.py index e9852a7..313f155 100644 --- a/librarian/pyhtml.py +++ b/librarian/pyhtml.py @@ -60,7 +60,8 @@ class EduModule(Xmill): atxt = etree.tostring(a, encoding=unicode) toc.append("
  • %s
  • " % atxt) toc = "" % "".join(toc) - return "

    Lekcja: ", "

    " + toc + add_header = "Lekcja: " if self.options['wldoc'].book_info.type in ('course', 'synthetic') else '' + return "

    %s" % add_header, "

    " + toc @tagged("h2") def handle_naglowek_rozdzial(self, element): @@ -142,7 +143,10 @@ u"""%(wskazowki)s def handle_lista(self, element, attrs={}): ltype = element.attrib.get('typ', 'punkt') if ltype == 'slowniczek': - surl = element.attrib.get('href', None) + surl = element.attrib.get('src', None) + if surl is None: + print '** missing src on , setting default' + surl = 'http://edukacjamedialna.edu.pl/slowniczek' sxml = None if surl: sxml = etree.fromstring(self.options['provider'].by_uri(surl).get_string()) @@ -172,16 +176,21 @@ u"""%(wskazowki)s nxt = element.getnext() definiens_s = '' + if not element.text: + print "!! Empty " + return None + # let's pull definiens from another document - if self.options['slowniczek_xml'] and (not nxt or nxt.tag != 'definiens'): + if self.options['slowniczek_xml'] is not None and (nxt is None or nxt.tag != 'definiens'): sxml = self.options['slowniczek_xml'] - assert element.text != '' defloc = sxml.xpath("//definiendum[text()='%s']" % element.text) if defloc: definiens = defloc[0].getnext() if definiens.tag == 'definiens': subgen = EduModule(self.options) definiens_s = subgen.generate(definiens) + else: + print '!! Missing definiendum in source:', element.text return u"
    ", u"
    " + definiens_s @@ -479,7 +488,7 @@ class EduModuleFormat(Format): super(EduModuleFormat, self).__init__(wldoc, **kwargs) def build(self): - edumod = EduModule({'provider': self.wldoc.provider, 'urlmapper': self}) + edumod = EduModule({'provider': self.wldoc.provider, 'urlmapper': self, 'wldoc': self.wldoc}) html = edumod.generate(self.wldoc.edoc.getroot()) -- 2.20.1