Web   ·   Wiki   ·   Activities   ·   Blog   ·   Lists   ·   Chat   ·   Meeting   ·   Bugs   ·   Git   ·   Translate   ·   Archive   ·   People   ·   Donate
summaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorRadomir 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)
commita5e1a7d9c86e5bd0e971d7c2c1228a95322f8021 (patch)
tree45c82f9b278b178d96ecb8f6cdfd8019a580d822
parent9c493458130ff10a695a76c9534fc17b2c5d2fae (diff)
first version with templates
-rw-r--r--hatta/page.py21
-rw-r--r--hatta/templates/layout.html16
-rw-r--r--hatta/templates/page.html26
-rw-r--r--hatta/wiki.py3
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."""