def __getitem__(self, name): validate_name(name) childpage_dir = os.path.join(self.dir_, self.__name__) fn = os.path.join(childpage_dir, name) + '.yaml' if not os.path.exists(fn): raise KeyError("Page not found: '{0}'".format(name)) return Page(self, self.site, name, childpage_dir)
def __getitem__(self, name): validate_name(name) site_dir = os.path.join(self.__class__.SITES_DIR, name) if not os.path.exists(site_dir): msg = "Site not found: '{0}'".format(name) logger.error(msg) raise KeyError(msg) fn = os.path.normpath(os.path.join(site_dir, '..', name + '.yaml')) if not os.path.exists(fn): msg = "Missing config file for site '{0}:{1}'".format(name, fn) logger.error(msg) raise KeyError(msg) return Site(self, name, site_dir)
def __getitem__(self, name): # Access system nodes if name == '__sys__': # I expect my parent's parent to be root! node = self.__parent__.__parent__[name] # Since we're fetching the node from a different location, # we must advertise ourselves as parent to no break the lineage. node.__parent__ = self return node # Serve the blog. if name == self.rc['blog.url']: return Blog(self, self, name) # Otherwise serve regular pages # Access files from current site validate_name(name) fn = os.path.join(self.content_dir, name) + '.yaml' if not os.path.exists(fn): raise KeyError("Page not found: '{0}'".format(name)) return Page(self, self, name, self.content_dir)