--- hatta/config.py.orig	2013-11-11 16:03:04.000000000 +0300
+++ hatta/config.py	2014-12-23 11:26:37.826040437 +0300
@@ -24,6 +24,8 @@
     help='Use the repository at DIR', metavar='DIR')
 _add('-t', '--cache-dir', dest='cache_path',
     help='Store cache in DIR', metavar='DIR')
+_add('-T', '--template-dir', dest='template_path',
+    help='Use templates in DIR', metavar='DIR')
 _add('-i', '--interface', dest='interface',
     help='Listen on interface INT', metavar='INT')
 _add('-p', '--port', dest='port', type='int',
--- hatta/wiki.py.orig	2013-11-11 16:14:00.000000000 +0300
+++ hatta/wiki.py	2014-12-23 18:15:27.824078168 +0300
@@ -52,10 +52,15 @@
     return translation
 
 
-def init_template(translation):
+def init_template(translation, template_path):
+    loaders = [ jinja2.PackageLoader('hatta', 'templates') ]
+
+    if template_path is not None:
+        loaders.insert(0, jinja2.FileSystemLoader(os.path.abspath(template_path)))
+
     template_env = jinja2.Environment(
         extensions=['jinja2.ext.i18n'],
-        loader=jinja2.PackageLoader('hatta', 'templates'),
+        loader=jinja2.ChoiceLoader(loaders),
     )
     template_env.autoescape = True
     template_env.install_gettext_translations(translation, True)
@@ -82,7 +87,8 @@
         self.language = config.get('language')
         translation = init_gettext(self.language)
         self.gettext = translation.ugettext
-        self.template_env = init_template(translation)
+        self.template_path = config.get('template_path')
+        self.template_env = init_template(translation, self.template_path)
         self.path = os.path.abspath(config.get('pages_path', 'docs'))
         self.repo_path = config.get('repo_path')
         self.page_charset = config.get('page_charset', 'utf-8')
