1
0
Fork 0
forked from github/pelican

Add per page templates. Closes #376

Also set up helper classes in test_generators.py for cleaner tests
This commit is contained in:
tBunnyMan 2012-07-07 12:15:35 -07:00
commit dff5b3589b
8 changed files with 128 additions and 15 deletions

View file

@ -21,6 +21,7 @@ class Page(object):
:param content: the string to parse, containing the original content.
"""
mandatory_properties = ('title',)
default_template = 'page'
def __init__(self, content, metadata=None, settings=None,
filename=None):
@ -44,6 +45,9 @@ class Page(object):
# also keep track of the metadata attributes available
self.metadata = local_metadata
#default template if it's not defined in page
self.template = self._get_template()
# default author to the one in settings if not defined
if not hasattr(self, 'author'):
if 'AUTHOR' in settings:
@ -153,9 +157,16 @@ class Page(object):
url = property(functools.partial(get_url_setting, key='url'))
save_as = property(functools.partial(get_url_setting, key='save_as'))
def _get_template(self):
if hasattr(self, 'template') and self.template is not None:
return self.template
else:
return self.default_template
class Article(Page):
mandatory_properties = ('title', 'date', 'category')
default_template = 'article'
class Quote(Page):