diff options
author | Radomir Dopieralski <hatta-dev@sheep.art.pl> | 2010-11-10 21:01:48 (GMT) |
---|---|---|
committer | Radomir Dopieralski <hatta-dev@sheep.art.pl> | 2010-11-10 21:01:48 (GMT) |
commit | a5e1a7d9c86e5bd0e971d7c2c1228a95322f8021 (patch) | |
tree | 45c82f9b278b178d96ecb8f6cdfd8019a580d822 | |
parent | 9c493458130ff10a695a76c9534fc17b2c5d2fae (diff) |
first version with templates
-rw-r--r-- | hatta/page.py | 21 | ||||
-rw-r--r-- | hatta/templates/layout.html | 16 | ||||
-rw-r--r-- | hatta/templates/page.html | 26 | ||||
-rw-r--r-- | hatta/wiki.py | 3 |
4 files changed, 66 insertions, 0 deletions
diff --git a/hatta/page.py b/hatta/page.py index fbf872c..47f8d1f 100644 --- a/hatta/page.py +++ b/hatta/page.py @@ -8,6 +8,7 @@ import os import werkzeug import werkzeug.contrib.atom +import jinja2 try: import pygments @@ -269,6 +270,21 @@ class WikiPage(object): class_=class_) yield u'\n' + def template(self, template_name, **kwargs): + template = self.wiki.template_env.get_template(template_name) + context = { + 'request': self.request, + 'wiki': self.wiki, + 'title': self.title, + 'mime': self.mime, + 'url': self.get_url, + 'download_url': self.get_download_url, + 'config': self.config, + 'page': self, + } + context.update(kwargs) + return template.generate(**context) + def render_content(self, content, special_title=None): """The main page template.""" @@ -485,6 +501,10 @@ class WikiPageText(WikiPage): line_no, werkzeug.escape(old_text)) yield u'</pre>' + def render_content(self, content, special_title=None): + return self.template('page.html', content=content, + title=special_title or self.title) + class WikiPageColorText(WikiPageText): """Text pages, but displayed colorized with pygments""" @@ -592,6 +612,7 @@ class WikiPageWiki(WikiPageColorText): dependencies.add(werkzeug.url_quote(link)) return dependencies + class WikiPageFile(WikiPage): """Pages of all other mime types use this for display.""" diff --git a/hatta/templates/layout.html b/hatta/templates/layout.html new file mode 100644 index 0000000..cf30cc3 --- /dev/null +++ b/hatta/templates/layout.html @@ -0,0 +1,16 @@ +<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" +"http://www.w3.org/TR/html4/strict.dtd"> +<html><head> +<meta http-equiv="content-type" content="text/html;charset=utf-8"> +<title>{% block title %}{% endblock %}</title> +{% block links %}{% endblock %} +{% block meta %}{% endblock %} +</head><body><div id="hatta-header"> +{% block header %}{% endblock %} +</div><div id="hatta-content"> +{% block content %}{% endblock %} +<div id="hatta-footer"> +{% block footer %}{% endblock %} +</div></div> +{% block scripts %}{% endblock %} +</body></html> diff --git a/hatta/templates/page.html b/hatta/templates/page.html new file mode 100644 index 0000000..01d5909 --- /dev/null +++ b/hatta/templates/page.html @@ -0,0 +1,26 @@ +{% extends 'layout.html' %} +{% block header %} +{% if wiki.logo_page %} +<a id="hatta-logo" + href="{{ url(wiki.front_page) }}"><img + src="{{ download_url(wiki.logo_page) }}" + alt="[{{ wiki.logo_page }}]" +></a> +{% endif %} +<form action="/+search" id="hatta-search" method="GET" + ><div><input + id="hatta-search" name="q"><input + id="hatta-button" type="submit" value="Search" +></div></form><div id="hatta-menu"> +{% for item in page.menu() %} + {{ item }} +{% endfor %} +</div><h1>{{ title }}</h1> +{% endblock %} +{% block content %} +{% for part in content %} +{{ part }} +{% endfor %} +{% endblock %} +{% block footer %} +{% endblock %} diff --git a/hatta/wiki.py b/hatta/wiki.py index 39188d4..731938c 100644 --- a/hatta/wiki.py +++ b/hatta/wiki.py @@ -10,6 +10,7 @@ import itertools import werkzeug import werkzeug.routing +import jinja2 try: import pygments @@ -252,6 +253,8 @@ class Wiki(object): 'title':WikiTitleConverter, 'all':WikiAllConverter }) + self.template_env = jinja2.Environment( + loader=jinja2.PackageLoader('hatta', 'templates')) def add_url_rule(self, rule): """Let plugins add additional url rules.""" |