X-Git-Url: https://git.mdrn.pl/librarian.git/blobdiff_plain/db91f942ce46e3af1420f3469a83257ef5aca4c2..65ef0306d24eb3126c9f72b89ed021121b40ae2f:/src/librarian/document.py diff --git a/src/librarian/document.py b/src/librarian/document.py index 0dbb14f..fbaf6ca 100644 --- a/src/librarian/document.py +++ b/src/librarian/document.py @@ -20,6 +20,8 @@ class WLDocument: self.provider = provider if provider is not None else DirDocProvider('.') + self.tree.getroot().validate() + @property def meta(self): # Allow metadata of the master element as document meta. @@ -31,13 +33,13 @@ class WLDocument: def children(self): for part_uri in self.meta.parts or []: yield type(self)( - filename=self.provider.by_uri(part_uri), + filename=self.provider.by_slug(part_uri.slug), provider=self.provider ) - def build(self, builder, **kwargs): - return builder().build(self, **kwargs) + def build(self, builder, base_url=None, **kwargs): + return builder(base_url=base_url).build(self, **kwargs) def _compat_assign_ordered_ids(self): """ @@ -81,9 +83,9 @@ class WLDocument: def editors(self): persons = set(self.meta.editors + self.meta.technical_editors) - #for child in self.parts(): - # persons.update(child.editors()) - #if None in persons: - # persons.remove(None) + for child in self.children: + persons.update(child.editors()) + if None in persons: + persons.remove(None) return persons