urlresolver
()This is very experimental API and used to register a custom URL resolver function with the environment. It's invoked whenever a node has matched but more data is left to parse. This can be used to implement virtual items. This works in combination with generator but handles the URL matching part of the equation.
The registered function is invoked with a source object and a list of URL path segments.
from lektor.sourceobj import VirtualSourceObject from lektor.utils import build_url class Source(VirtualSourceObject): @property def path(self): return self.record.path + '@source' @property def url_path(self): return build_url([self.record.url_path, 'source.txt']) @env.urlresolver def match_source_file(node, url_path): if url_path == ['source.txt'] \ and isinstance(node, Record) \ and not node.is_attachment: return Source(node)
Comments