@@ -45,9 +45,11 @@ class Jinja2Template(Template): | |||||
str(config.media_root_path), | str(config.media_root_path), | ||||
str(config.layout_root_path), | str(config.layout_root_path), | ||||
]) | ]) | ||||
self.env = Environment(loader=loader, undefined=LoyalUndefined) | |||||
self.env.globals['media_url'] = media_url | |||||
self.env.globals['content_url'] = content_url | |||||
else: | |||||
loader = FileSystemLoader(str(self.sitepath)) | |||||
self.env = Environment(loader=loader, undefined=LoyalUndefined) | |||||
self.env.globals['media_url'] = media_url | |||||
self.env.globals['content_url'] = content_url | |||||
def render(self, text, context): | def render(self, text, context): | ||||
""" | """ | ||||
@@ -0,0 +1,34 @@ | |||||
""" | |||||
The generator class and related utility functions. | |||||
""" | |||||
class Generator(object): | |||||
""" | |||||
Generates output from a node or resource. | |||||
""" | |||||
def __init__(self, site): | |||||
super(Generator, self).__init__() | |||||
self.site = site | |||||
def generate_all(self): | |||||
""" | |||||
Generates the entire website | |||||
""" | |||||
pass | |||||
def generate_node(self, node=None): | |||||
""" | |||||
Generates a single node. If node is non-existent or empty | |||||
generates the entire site. | |||||
""" | |||||
pass | |||||
def generate_resource(self, resource=None): | |||||
""" | |||||
Generates a single resource. If resource is non-existent or empty | |||||
generats the entire website. | |||||
""" | |||||
pass | |||||
@@ -5,14 +5,14 @@ | |||||
<head> | <head> | ||||
{% block starthead %}{% endblock starthead %} | {% block starthead %}{% endblock starthead %} | ||||
<meta charset="{{page.meta.charset|default('utf-8')}}"> | <meta charset="{{page.meta.charset|default('utf-8')}}"> | ||||
<meta http-equiv="X-UA-Compatible" content="{{page.meta.compatibility|default('IE=edge,chrome=1')"> | |||||
<meta http-equiv="X-UA-Compatible" content="{{page.meta.compatibility|default('IE=edge,chrome=1')}}"> | |||||
<title>{% block title %}{{page.meta.title}}{% endblock %}</title> | <title>{% block title %}{{page.meta.title}}{% endblock %}</title> | ||||
<meta name="description" content="{{page.meta.description}}"> | <meta name="description" content="{{page.meta.description}}"> | ||||
<meta name="author" content="{{page.meta.author}}"> | <meta name="author" content="{{page.meta.author}}"> | ||||
<!-- Mobile viewport optimized: j.mp/bplateviewport --> | <!-- Mobile viewport optimized: j.mp/bplateviewport --> | ||||
<meta name="viewport" content="{{page.meta.viewport|default('width=device-width, initial-scale=1.0')"> | |||||
<meta name="viewport" content="{{page.meta.viewport|default('width=device-width, initial-scale=1.0')}}"> | |||||
{% block favicons %} | {% block favicons %} | ||||
<!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references --> | <!-- Place favicon.ico & apple-touch-icon.png in the root of your domain and delete these references --> | ||||
@@ -49,7 +49,8 @@ | |||||
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> | <script src="//ajax.googleapis.com/ajax/libs/jquery/1.4.4/jquery.js"></script> | ||||
{% endblock jquery %} | {% endblock jquery %} | ||||
{% block scripts %} | |||||
{% block scripts %}{% endblock scripts %} | |||||
{%endblock js %} | |||||
</body> | </body> | ||||
</html> | </html> |
@@ -1 +1 @@ | |||||
{% block all %}{% endblock %} | |||||
{% block all %}{% endblock all %} |
@@ -0,0 +1,20 @@ | |||||
#!/usr/bin/env python | |||||
# encoding: utf-8 | |||||
""" | |||||
test_generator.py | |||||
Created by FlowPlayer - Lakshmi Vyas on 2010-12-29. | |||||
Copyright (c) 2010 __MyCompanyName__. All rights reserved. | |||||
""" | |||||
import sys | |||||
import os | |||||
def main(): | |||||
pass | |||||
if __name__ == '__main__': | |||||
main() | |||||
@@ -35,26 +35,26 @@ def delete_test_site_at_user(): | |||||
@with_setup(create_test_site, delete_test_site) | @with_setup(create_test_site, delete_test_site) | ||||
def test_ensure_exception_when_sitepath_exists(): | def test_ensure_exception_when_sitepath_exists(): | ||||
e = Engine() | e = Engine() | ||||
e.run(e.parse(['-s', str(TEST_SITE), 'init'])) | |||||
e.run(e.parse(['-s', str(TEST_SITE), 'create'])) | |||||
@with_setup(create_test_site, delete_test_site) | @with_setup(create_test_site, delete_test_site) | ||||
def test_ensure_no_exception_when_sitepath_exists_when_forced(): | def test_ensure_no_exception_when_sitepath_exists_when_forced(): | ||||
e = Engine() | e = Engine() | ||||
e.run(e.parse(['-s', str(TEST_SITE), 'init', '-f'])) | |||||
e.run(e.parse(['-s', str(TEST_SITE), 'create', '-f'])) | |||||
assert True #No Exception | assert True #No Exception | ||||
@with_setup(create_test_site, delete_test_site) | @with_setup(create_test_site, delete_test_site) | ||||
def test_ensure_no_exception_when_sitepath_does_not_exist(): | def test_ensure_no_exception_when_sitepath_does_not_exist(): | ||||
e = Engine() | e = Engine() | ||||
TEST_SITE.delete() | TEST_SITE.delete() | ||||
e.run(e.parse(['-s', str(TEST_SITE), 'init', '-f'])) | |||||
e.run(e.parse(['-s', str(TEST_SITE), 'create', '-f'])) | |||||
verify_site_contents(TEST_SITE, Layout.find_layout()) | verify_site_contents(TEST_SITE, Layout.find_layout()) | ||||
@with_setup(create_test_site_at_user, delete_test_site_at_user) | @with_setup(create_test_site_at_user, delete_test_site_at_user) | ||||
def test_ensure_can_create_site_at_user(): | def test_ensure_can_create_site_at_user(): | ||||
e = Engine() | e = Engine() | ||||
TEST_SITE_AT_USER.delete() | TEST_SITE_AT_USER.delete() | ||||
e.run(e.parse(['-s', str(TEST_SITE_AT_USER), 'init', '-f'])) | |||||
e.run(e.parse(['-s', str(TEST_SITE_AT_USER), 'create', '-f'])) | |||||
verify_site_contents(TEST_SITE_AT_USER, Layout.find_layout()) | verify_site_contents(TEST_SITE_AT_USER, Layout.find_layout()) | ||||
@nottest | @nottest | ||||
@@ -76,5 +76,5 @@ def verify_site_contents(site, layout): | |||||
@with_setup(create_test_site, delete_test_site) | @with_setup(create_test_site, delete_test_site) | ||||
def test_ensure_exception_when_layout_is_invalid(): | def test_ensure_exception_when_layout_is_invalid(): | ||||
e = Engine() | e = Engine() | ||||
e.run(e.parse(['-s', str(TEST_SITE), 'init', '-l', 'junk'])) | |||||
e.run(e.parse(['-s', str(TEST_SITE), 'create', '-l', 'junk'])) | |||||
@@ -58,7 +58,9 @@ def test_render(): | |||||
t = Jinja2Template(JINJA2.path) | t = Jinja2Template(JINJA2.path) | ||||
t.configure(None) | t.configure(None) | ||||
t.env.filters['dateformat'] = dateformat | t.env.filters['dateformat'] = dateformat | ||||
html = t.render('index.html', context) | |||||
source = File(JINJA2.child('index.html')).read_all() | |||||
html = t.render(source, context) | |||||
from pyquery import PyQuery | from pyquery import PyQuery | ||||
actual = PyQuery(html) | actual = PyQuery(html) | ||||
assert actual(".navigation li").length == 30 | assert actual(".navigation li").length == 30 | ||||
@@ -1 +0,0 @@ | |||||
# -*- coding: utf-8 -*- |