view piecrust/templating/base.py @ 281:0641fe5c3ef9

serve: Don't crash when a post URL doesn't match our expectations. It can happen that a posts source's URL pattern matches that of something else, like a taxonomy page. In this case, don't crash when what we think will be integers turn out to be something else. Instead, just return that no page has been found.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 01 Mar 2015 21:41:05 -0800
parents 28444014ce7d
children 96d363e2da4b
line wrap: on
line source



class TemplateNotFoundError(Exception):
    pass


class TemplatingError(Exception):
    def __init__(self, message, filename=None, lineno=-1):
        super(TemplatingError, self).__init__()
        self.message = message
        self.filename = filename
        self.lineno = lineno

    def __str__(self):
        msg = ''
        if self.filename:
            msg += self.filename
        if self.lineno >= 0:
            msg += ', line %d' % self.lineno
        msg += ': ' + self.message
        return msg


class TemplateEngine(object):
    EXTENSIONS = []

    def initialize(self, app):
        self.app = app

    def renderString(self, txt, data, filename=None, line_offset=0):
        raise NotImplementedError()

    def renderFile(self, paths, data):
        raise NotImplementedError()