Commits

Scott Nixon  committed f9dad12 Merge

merge

  • Participants
  • Parent commits f2d991c, fea36bb

Comments (0)

Files changed (79)

File article/middleware/__init__.py

Empty file added.

File article/middleware/urlredirect.py

+import re
+
+from django import http
+from django.http import HttpResponsePermanentRedirect
+from django.conf import settings
+from django.utils.http import urlquote
+
+class UrlRedirectMiddleware:
+    """
+
+    """
+    def process_request(self, request):
+        # Remove the "www." subdomain from the url if REMOVE_WWW is set and 
+        # the url starts with "www." 
+        host = request.get_host()
+        old_url = [host, request.path]
+        new_url = old_url[:]
+
+        if (settings.REMOVE_WWW and old_url[0] and 
+            old_url[0].startswith('www.')): 
+            new_url[0] = new_url[0][4:] 
+
+        if new_url == old_url:
+            # No redirects required.
+            return
+
+        if new_url[0]:
+            newurl = "%s://%s%s" % (
+                request.is_secure() and 'https' or 'http',
+                new_url[0], urlquote(new_url[1]))
+        else:
+            newurl = urlquote(new_url[1])
+            if request.META.get('QUERY_STRING', ''):
+                newurl += '?' + request.META['QUERY_STRING']
+        return http.HttpResponsePermanentRedirect(newurl)

File article/migrations/0017_auto.py

+# encoding: utf-8
+import datetime
+from south.db import db
+from south.v2 import SchemaMigration
+from django.db import models
+
+class Migration(SchemaMigration):
+
+    def forwards(self, orm):
+        
+        # Adding index on 'Recipe', fields ['recipe_name']
+        db.create_index('article_recipe', ['recipe_name'])
+
+        # Adding index on 'Ingredient', fields ['ingred_name']
+        db.create_index('article_ingredient', ['ingred_name'])
+
+
+    def backwards(self, orm):
+        
+        # Removing index on 'Ingredient', fields ['ingred_name']
+        db.delete_index('article_ingredient', ['ingred_name'])
+
+        # Removing index on 'Recipe', fields ['recipe_name']
+        db.delete_index('article_recipe', ['recipe_name'])
+
+
+    models = {
+        'article.category': {
+            'Meta': {'ordering': "('category_name',)", 'object_name': 'Category'},
+            'category_date': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'category_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'})
+        },
+        'article.cookbook': {
+            'Meta': {'object_name': 'Cookbook'},
+            'affiliate_link': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '200'})
+        },
+        'article.ingredient': {
+            'Meta': {'ordering': "('ingred_name',)", 'object_name': 'Ingredient'},
+            'affiliate_link': ('django.db.models.fields.URLField', [], {'max_length': '200', 'null': 'True', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ingred_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'ingred_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '100', 'db_index': 'True'}),
+            'ingred_slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+            'ingred_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.IngredientType']"})
+        },
+        'article.ingredienttype': {
+            'Meta': {'ordering': "('ingred_type_class',)", 'object_name': 'IngredientType'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ingred_type_class': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '75'}),
+            'ingred_type_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'ingred_type_slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'})
+        },
+        'article.measurement': {
+            'Meta': {'ordering': "('m_name',)", 'object_name': 'Measurement'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'm_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'm_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '20'}),
+            'm_std': ('django.db.models.fields.CharField', [], {'max_length': '1'})
+        },
+        'article.post': {
+            'Meta': {'object_name': 'Post'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'post_author': ('django.db.models.fields.related.ForeignKey', [], {'default': '2', 'to': "orm['auth.User']"}),
+            'post_category': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['article.Category']"}),
+            'post_content': ('django.db.models.fields.TextField', [], {}),
+            'post_date_create': ('django.db.models.fields.DateTimeField', [], {'auto_now_add': 'True', 'null': 'True', 'blank': 'True'}),
+            'post_date_lastmod': ('django.db.models.fields.DateTimeField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'post_enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'post_excerpt': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'post_image': ('django.db.models.fields.URLField', [], {'max_length': '255', 'null': 'True', 'blank': 'True'}),
+            'post_recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.Recipe']", 'null': 'True', 'blank': 'True'}),
+            'post_slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+            'post_tags': ('tagging.fields.TagField', [], {}),
+            'post_title': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200'}),
+            'post_type': ('django.db.models.fields.related.ForeignKey', [], {'default': '1', 'to': "orm['article.PostType']"}),
+            'published_on': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'sites': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False'})
+        },
+        'article.posttype': {
+            'Meta': {'object_name': 'PostType'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'posttype_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '40'})
+        },
+        'article.recipe': {
+            'Meta': {'ordering': "('recipe_name',)", 'object_name': 'Recipe'},
+            'calories': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'carbohydrates': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'cook_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'cookbook': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.Cookbook']", 'null': 'True', 'blank': 'True'}),
+            'cookbook_page': ('django.db.models.fields.CharField', [], {'max_length': '6', 'null': 'True', 'blank': 'True'}),
+            'fat': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'featured_items': ('django.db.models.fields.CharField', [], {'default': '0', 'max_length': '1'}),
+            'fiber': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_published': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'members_only': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'prep_time': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'protein': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'}),
+            'published_on': ('django.db.models.fields.DateTimeField', [], {'null': 'True', 'blank': 'True'}),
+            'rec_tags': ('tagging.fields.TagField', [], {}),
+            'recipe_author': ('django.db.models.fields.related.ForeignKey', [], {'default': '2', 'to': "orm['auth.User']"}),
+            'recipe_date_create': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'recipe_date_lastmod': ('django.db.models.fields.DateField', [], {'auto_now': 'True', 'blank': 'True'}),
+            'recipe_description': ('django.db.models.fields.TextField', [], {}),
+            'recipe_enable_comments': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'recipe_instructions': ('django.db.models.fields.TextField', [], {}),
+            'recipe_name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '200', 'db_index': 'True'}),
+            'recipe_servings': ('django.db.models.fields.DecimalField', [], {'max_digits': '4', 'decimal_places': '2'}),
+            'recipe_slug': ('django.db.models.fields.SlugField', [], {'unique': 'True', 'max_length': '50', 'db_index': 'True'}),
+            'sites': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False'}),
+            'sugar': ('django.db.models.fields.DecimalField', [], {'null': 'True', 'max_digits': '6', 'decimal_places': '2', 'blank': 'True'})
+        },
+        'article.recipeingredient': {
+            'Meta': {'object_name': 'RecipeIngredient'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'ri_amount': ('django.db.models.fields.DecimalField', [], {'max_digits': '8', 'decimal_places': '3'}),
+            'ri_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'ri_ingred': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.Ingredient']"}),
+            'ri_measurement': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.Measurement']", 'null': 'True', 'blank': 'True'}),
+            'ri_optional': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'ri_recipe': ('django.db.models.fields.related.ForeignKey', [], {'related_name': "'recipe_ingred'", 'to': "orm['article.Recipe']"})
+        },
+        'article.recipephotos': {
+            'Meta': {'ordering': "('recipe', 'order')", 'object_name': 'RecipePhotos'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'order': ('django.db.models.fields.IntegerField', [], {'null': 'True', 'blank': 'True'}),
+            'pub_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'recipe': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['article.Recipe']"}),
+            'sites': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['sites.Site']", 'symmetrical': 'False'}),
+            'text': ('django.db.models.fields.TextField', [], {'null': 'True', 'blank': 'True'}),
+            'type': ('django.db.models.fields.CharField', [], {'max_length': '1'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '128'})
+        },
+        'article.userphotos': {
+            'Meta': {'ordering': "('-pub_date',)", 'object_name': 'UserPhotos'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'pub_date': ('django.db.models.fields.DateField', [], {'auto_now_add': 'True', 'blank': 'True'}),
+            'sites': ('django.db.models.fields.related.ManyToManyField', [], {'default': "'2'", 'to': "orm['sites.Site']", 'symmetrical': 'False'}),
+            'type': ('django.db.models.fields.CharField', [], {'default': '1', 'max_length': '1'}),
+            'url': ('django.db.models.fields.URLField', [], {'max_length': '128'})
+        },
+        'auth.group': {
+            'Meta': {'object_name': 'Group'},
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '80'}),
+            'permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'})
+        },
+        'auth.permission': {
+            'Meta': {'ordering': "('content_type__app_label', 'content_type__model', 'codename')", 'unique_together': "(('content_type', 'codename'),)", 'object_name': 'Permission'},
+            'codename': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'content_type': ('django.db.models.fields.related.ForeignKey', [], {'to': "orm['contenttypes.ContentType']"}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        },
+        'auth.user': {
+            'Meta': {'object_name': 'User'},
+            'date_joined': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'email': ('django.db.models.fields.EmailField', [], {'max_length': '75', 'blank': 'True'}),
+            'first_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'groups': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Group']", 'symmetrical': 'False', 'blank': 'True'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'is_active': ('django.db.models.fields.BooleanField', [], {'default': 'True'}),
+            'is_staff': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'is_superuser': ('django.db.models.fields.BooleanField', [], {'default': 'False'}),
+            'last_login': ('django.db.models.fields.DateTimeField', [], {'default': 'datetime.datetime.now'}),
+            'last_name': ('django.db.models.fields.CharField', [], {'max_length': '30', 'blank': 'True'}),
+            'password': ('django.db.models.fields.CharField', [], {'max_length': '128'}),
+            'user_permissions': ('django.db.models.fields.related.ManyToManyField', [], {'to': "orm['auth.Permission']", 'symmetrical': 'False', 'blank': 'True'}),
+            'username': ('django.db.models.fields.CharField', [], {'unique': 'True', 'max_length': '30'})
+        },
+        'contenttypes.contenttype': {
+            'Meta': {'ordering': "('name',)", 'unique_together': "(('app_label', 'model'),)", 'object_name': 'ContentType', 'db_table': "'django_content_type'"},
+            'app_label': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'model': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '100'})
+        },
+        'sites.site': {
+            'Meta': {'ordering': "('domain',)", 'object_name': 'Site', 'db_table': "'django_site'"},
+            'domain': ('django.db.models.fields.CharField', [], {'max_length': '100'}),
+            'id': ('django.db.models.fields.AutoField', [], {'primary_key': 'True'}),
+            'name': ('django.db.models.fields.CharField', [], {'max_length': '50'})
+        }
+    }
+
+    complete_apps = ['article']

File article/models.py

 	('0', 'Not Featured')
     )
     recipe_author = models.ForeignKey(User,verbose_name='Name', default=2) #default Lindsay
-    recipe_name = models.CharField(max_length=200,unique=True, verbose_name='Recipe Name')
+    recipe_name = models.CharField(max_length=200,unique=True, db_index=True, verbose_name='Recipe Name')
     recipe_slug = models.SlugField('Recipe URL', max_length=50,unique=True)
     recipe_servings = models.DecimalField(max_digits=4, decimal_places=2, verbose_name='Servings')
     recipe_description = models.TextField(verbose_name='Description')
         return self.prep_time + self.cook_time
 
     def get_subfeature_photos(self):
+        return self.recipephotos_set.filter(type=1)
+
+    def get_small_photos(self):
         return self.recipephotos_set.filter(type=3)
 
     def get_instruction_photos(self):
     active = ActivePost()
     on_site = CurrentSiteManager()
     date_field = "published_on"
+    
+    class Meta:
+        get_latest_by  = "published_on"
 	    
     def __unicode__(self):
        return self.post_title
             'month': self.published_on.strftime("%m"),
             'post_slug': self.post_slug })
 
+    def get_tag_list(self):
+        return self.post_tags.split(" ")
+
+
+
 """
 Save signal for sets a pubdate when the users selects publish but 
 does not specify a date.
 	
 class Ingredient(models.Model):
     #ingredient name example "garlic"
-    ingred_name = models.CharField(max_length=100,unique=True)
+    ingred_name = models.CharField(max_length=100,unique=True, db_index=True)
     ingred_slug = models.SlugField('Ingred URL', max_length=50,unique=True)
     ingred_type = models.ForeignKey(IngredientType)
     ingred_date = models.DateField(auto_now_add=True)
     affiliate_link = models.URLField(verify_exists=True,null=True,blank=True)
 
-    class Meta:
-        ordering = ('ingred_name',)
+    #class Meta:
+    #    ordering = ('ingred_name',)
 
     def __unicode__(self):
         return self.ingred_name	

File article/templates/404.html

-{% extends "herb.html" %}
-
-{% block title %} 404 Error Page {% endblock %}
-
-{% block content %} 
-{% block feeds %}
-<link rel="alternate" type="application/rss+xml" title="Public Feeds" href="http://feeds.feedburner.com/HappyHerbivore-Blog">
-{% endblock feeds%}
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
-	<div class="title"><span>Sorry the page your are requesting does not exist.</span></div>
-	<div class="menu_content">
-		<h3 class="a404">Try the search box for help finding it.</h3>
-		<p>RSS feeds have moved to a new address <a href="http://feeds.feedburner.com/HappyHerbivore-Blog">http://feeds.feedburner.com/HappyHerbivore-Blog</a></p>
-		<p>&nbsp;</p>
-		
-		<h4>Or Checkout these Blog Posts instead</h4>
-		{% load random %}
-		{% get_random article.post 5 as random_posts %}
-			<div class="random">
-			{% for x in random_posts %}
-			<p><a href="/{{ x.post_date_create|date:"Y"}}/{{ x.post_date_create|date:"m"}}/{{ x.post_slug }}/">{{ x.post_title }}</a></p>
-			{% endfor %}
-			</div>
-	</div>
-	</div><!-- box_content_body -->
-	<div class="content_box_footer"></div>
-</div>
-{% endblock %}
-
-{% block sidebar %}   
-	
-
-
-{% endblock %} 

File article/templates/500.html

-{% extends "herb.html" %}
-
-{% block title %}  500 Server Error {% endblock %}
-
-{% block content %} 
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
-	<div class="title"><span>Server Error.</span></div>
-	<div class="menu_content">
-		<h3>Sorry there has been an error on the Server. Our system has automatically notified of this issue and will work to resolve it.</h3> <p>If you'd like to submit feedback do so from our <a href="/about/contact/">Contact</a> form.</p>
-	
-		{% load random %}
-		{% get_random article.post 5 as random_posts %}
-			<div class="random">
-			{% for x in random_posts %}
-			<p><a href="/{{ x.post_date_create|date:"Y"}}/{{ x.post_date_create|date:"m"}}/{{ x.post_slug }}/">{{ x.post_title }}</a></p>
-			{% endfor %}
-			</div>
-	</div>
-	</div><!-- box_content_body -->
-	<div class="content_box_footer"></div>
-</div><!
-
-
-{% endblock %}
-
-{% block sidebar %}   
-	
-
-
-{% endblock %} 

File article/templates/503.html

-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
-
-"http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd"> 
-<html xmlns="http://www.w3.org/1999/xhtml" xml:lang="en" lang="en"> 
- 
-<head profile="http://gmpg.org/xfn/11"> 
-	<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> 
-	<meta name="description" content="Fat Free. Whole Foods. 100% Vegan Tasty!" /> 
-	<title>Happy Herbivore Maintenance</title> 
-	
-	<style type="text/css"> 
-		<!--
-		* { margin: 0; 	padding: 0; }
-		body { font-family: Georgia, Arial, Helvetica, Sans Serif; font-size: 65.5%; }
-		a { color: #08658F; }
-		a:hover { color: #0092BF; }
-		#header { color: #333; padding: 1.5em; text-align: center; font-size: 1.2em; border-bottom: 1px solid #08658F; }
-		#content { font-size: 150%; width:80%; margin:0 auto; padding: 5% 0; text-align: center; }
-		#content p { font-size: 1em; padding: .8em 0; }
-		h1, h2 { color: #08658F; }
-		h1 { font-size: 300%; padding: .5em 0; }
-		#menu { position: absolute; font-family: Arial, Helvetica, Sans Serif; bottom: 2em; width: 100%; border-top: 1px solid #08658F; }
-		#menu #pluginauthor { padding-left: .3em; }
-		#menu #admin { float: right; padding-right: .3em; }
-		-->
-	</style> 
-	
-</head> 
- 
-<body> 
- 
-	<div id="header"> 
-		<h2>Happy Herbivore</h2> 
-	</div> 
-	
-	<div id="content"> 
-		<h1>Happy Herbivore Maintenance</h1> 
-<p>Sorry, we are currently performing Maintenance on Happy Herbivore and we promise to be
-		back online ASAP. </p>		
-		
-	</div> 
- 
-	<div id="menu"> 
-		<p id="admin"><a rel="nofollow" href="/admin/">Log In</a></p> 
-		 
-	</div> 
- 
-</body> 
-</html>

File article/templates/_footer.html

+<div class="row">
+  <div class="span2">
+    <a href="/"><img src="http://photos.happyherbivore.com/img/hh_footer.jpg" class="footer-logo" alt="Happy Herbivore" title="Happy Herbivore Logo" /></a>
+  </div>
+  <div class="span3">
+    <h4>Share</h4>
+    <a href="https://www.facebook.com/HappyHerbivoreBlog" class="link-fb">Like us on FB</a>
+    <a href="https://twitter.com/#!/happyherbivore" class="link-tw">Tweet about us</a>
+  </div>
+  <div class="span3">
+    <h4>Quick Links</h4>
+    <ul>
+      <li><a href="/cookbooks/">Cookbooks</a></li>
+      <li><a href="//getmealplans.com/">Meal Plans</a></li>
+      <li><a href="/recipes/">Recipes</a></li>
+      <li><a href="/faq/">FAQ</a></li>
+      <li><a href="//store.happyherbivore.com/">Store</a></li>
+      <li><a href="/about/">About</a></li>
+      <li><a href="/about/contact/">Contact</a></li>
+    </ul>
+  </div>
+  <div class="span4">
+    <div class="newsletter">
+      <p>Don't miss our</p>
+      <p>NEWSLETTERS!</p>
+      <form action="/join/" method="POST">
+      <label for="email">Your email address</label>
+      <input name="EMAIL" type="email" id="email" />
+      <label class="checkbox">
+        <input name="hh" type="checkbox" checked> Happy Herbivore Newsletter (monthly)
+      </label>
+      <label class="checkbox">
+        <input name="gmp" type="checkbox" checked> Meal Plans (2x a week)
+      </label>
+      <label class="checkbox">
+        <input name="days" type="checkbox" checked> 60 Days to Herbie Happiness (daily for 60 days)
+      </label>
+      <input type="submit" value="Sign up" class="button-orange-big-round">
+      </form>
+    </div>
+  </div>
+</div>  
+
+<div class="row">
+  <div class="credits">
+    <div class="span5">
+      <p class="copyright">Content &copy; copyright 2006-{% now "Y" %} Happy Herbivore - All Rights Reserved</p>
+      <p>Site design by <a rel="nofollow" href="http://www.thepixellary.com">The Pixellary</a></p>
+    </div>
+    <div class="span4">
+      &nbsp;
+    </div>
+    <div class="span3">
+      <!--<p class="right-menu"> <a href="#">Privacy Policy</a> | <a href="#">Disclaimer</a> </p> -->
+    </div>
+  </div>
+</div>

File article/templates/_social.html

+<div class="social-bar">
+
+<a href="https://twitter.com/share" class="twitter-share-button" data-url="http://happyherbivore.com{{ post.get_absolute_url }}" data-text="{{ post.post_title }}" data-via="happyherbivore" data-related="Engine2Diet, ForksOverKnives, JohnMcDougallMD">Tweet</a>
+<script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+<div class="fb-like" data-href="http://happyherbivore.com{{ post.get_absolute_url }}" data-send="false" data-layout="button_count" data-width="90" data-show-faces="false"></div>
+
+<g:plusone href="http://happyherbivore.com{{ post.get_absolute_url }}"></g:plusone>
+
+<script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://happyherbivore.com{{ post.get_absolute_url }}"></script>
+
+</div>

File article/templates/article/post_archive.html

-{% extends "herb.html" %}
+{% extends "theme_base.html" %}
 
 {% block title %} Blog Archive {% endblock %}
 
-{% block content %} 
+{% block body %} 
 {% block feeds %}
 <link rel="alternate" type="application/rss+xml" title="Public Feeds" href="/feed/latest/">
 {% endblock feeds%}
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
+
 	<div class="title"><span>Blog Archive</span></div>
-	<div class="menu_content">
+
 
  	{% for d in date_list %}  
 	  <a href="/{{ d.year }}/">{{ d.year }}</a>
 	{% endfor %}
 				
 
-		</div>
-	</div><!-- box_content_body -->
-</div><!-- box_content margin --> 	
+
 {% endblock %} 
 
-{% block sidebar %}  
-{% endblock %}
 
-

File article/templates/article/post_archive_month.html

-{% extends "herb.html" %}
+{% extends "theme_base.html" %}
 
-{% block title %} Blog Archive {% endblock %}
+{% block head_title %} Blog Archive {% endblock %}
 
-{% block content %} 
+{% block body %} 
 {% block feeds %}
 <link rel="alternate" type="application/rss+xml" title="Public Feeds" href="/feed/latest/">
 {% endblock feeds%}
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
+
+
 	<div class="title"><span>Blog Archive {{ month|date:"F Y" }}</span></div>
-	<div class="menu_content">
 
 	  <p class="well"><a style="float:left;" href="/{{ previous_month|date:"Y" }}/{{ previous_month|date:"m" }}/"><< {{ previous_month|date:"F Y" }}</a> {% if next_month %} <a style="float:right;" href="/{{ next_month|date:"Y" }}/{{ next_month|date:"m" }}/">{{ next_month|date:"F Y" }} >></a>{% endif %}</p>
 
 			<p class="headline">{{ i.post_date_create|date:"F j, Y" }}</p>
 	    {% endfor %}
 
-	    <p class="well"><a style="float:left;" href="/{{ previous_month|date:"Y" }}/{{ previous_month|date:"m" }}/"><< {{ previous_month|date:"F Y" }}</a> {% if next_month %} <a style="float:right;" href="/{{ next_month|date:"Y" }}/{{ next_month|date:"m" }}/">{{ next_month|date:"F Y" }} >></a>{% endif %}</p>
+      <p class="well"><a style="float:left;" href="/{{ previous_month|date:"Y" }}/{{ previous_month|date:"m" }}/"><< {{ previous_month|date:"F Y" }}</a> {% if next_month %} <a style="float:right;" href="/{{ next_month|date:"Y" }}/{{ next_month|date:"m" }}/">{{ next_month|date:"F Y" }} >></a>{% endif %}</p>
 	
 
-		</div>
-	</div><!-- box_content_body -->
-</div><!-- box_content margin --> 	
+
 {% endblock %} 
 
-{% block sidebar %}  
-{% endblock %}
-
-

File article/templates/article/post_archive_year.html

-{% extends "herb.html" %}
+{% extends "theme_base.html" %}
 
-{% block title %} Blog Archive {% endblock %}
+{% block head_title %} Blog Archive by Year {% endblock %}
 
-{% block content %} 
+{% block body %} 
 {% block feeds %}
 <link rel="alternate" type="application/rss+xml" title="Public Feeds" href="/feed/latest/">
 {% endblock feeds%}
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
+
 	<div class="title"><span>Blog Archive {{ year }}</span></div>
 	<div class="menu_content">
 	  <style>
 			<p class="headline">{{ i.post_date_create|date:"F j, Y" }}</p>
 	{% endfor %}				
 	</div>
-		</div>
-	</div><!-- box_content_body -->
-</div><!-- box_content margin --> 	
+
 {% endblock %} 
 
-{% block sidebar %}  
-{% endblock %}
 
-

File article/templates/category_list.html

+{% extends "theme_base.html" %}
+
+{% block meta %}
+    <meta name="keywords" content="Vegan, Vegetarian, Recipes, low fat, Blog" />
+    <meta name="description" content="Lindsay S. Nixon's cookbooks will save you money by using 'everyday' inexpensive ingredients, save you time with easy, no fuss recipes and improve your health with each nutritional bite." />
+
+    <meta property="og:title" content="Blog Category: {{ tag_obj }} | Happy Herbivore"/>
+    <meta property="og:type" content="website"/>
+    <meta property="og:image" content="//photos.happyherbivore.com/logos/Big-Baby-Elephant.png"/>
+    <meta property="og:description"
+          content="Lindsay S. Nixon's cookbooks will save you money by using 'everyday' inexpensive ingredients, save you time with easy, no fuss recipes and improve your health with each nutritional bite. "/>
+    <link rel="alternate" type="application/rss+xml" title="Public Feeds" href="http://feeds.feedburner.com/HappyHerbivore-Blog">
+{% endblock %}
+
+{% block css %}
+{% endblock %}
+   
+{% block js %}
+    <script src="/media/js/hh.js" type="text/javascript"></script> 
+{% endblock %}
+
+{% block extra_head %}{% endblock %}
+
+{% block head_title %}Category: {{ tag_obj }}{% endblock %}
+
+{% block body %}
+
+    {% load generic_flatblocks %}
+    {% load disqus_tags %}
+    {% load humanize %}	
+
+  <div id="content">
+
+      <!-- breadcrumb -->
+      <div class="container">
+        <div class="row">
+          <div class="span15">
+            <ul class="breadc clearfix">
+              <li><a href="/">Home</a></li>
+              <li><a href="/blog/">Blog</a></li>
+              <li><a href="{% url category tag_obj %}">{{ tag_obj }}</a></li>
+            </ul>
+            <p class="page-title">Blog Category: {{ tag_obj }}</p>
+          </div>
+        </div>
+      </div>
+
+    <div id="outer-wrapper">
+
+      <div class="container">
+
+        <div class="wrapper-box">
+
+        <!-- Content -->
+        <div class="row">
+          <div class="span7">
+
+            {% for post in posts.object_list %}
+            <div class="post">
+
+                <h2 class="title">
+                  <a alt="permanent link to {{ post.post_title }}" href="{{ post.get_absolute_url }}">
+			        {{ post.post_title }}</a>
+                </h2>
+                <p class="meta">Category: {% for p in post.get_tag_list %}<a href="{% url category p %}">{{ p }}</a> {% endfor %} | <a alt="permanent link to {{ post.post_title }}" href="{{ post.get_absolute_url }}#disqus_thread">{% disqus_num_replies %}</a>{%if request.user.is_staff and not debug %}| <span><a href="/admin/article/post/{{ post.pk }}/">Edit</a></span>{%endif%}</p>
+
+                <div>
+                  {{ post.post_content|safe|truncatewords_html:65 }}
+                </div>
+                  
+                <div>
+                  <a href="https://twitter.com/share" class="twitter-share-button" data-url="http://happyherbivore.com{{ post.get_absolute_url }}" data-text="{{ post.post_title }}" data-via="happyherbivore" data-related="Engine2Diet, ForksOverKnives, JohnMcDougallMD">Tweet</a>
+                  <script>!function(d,s,id){var js,fjs=d.getElementsByTagName(s)[0];if(!d.getElementById(id)){js=d.createElement(s);js.id=id;js.src="//platform.twitter.com/widgets.js";fjs.parentNode.insertBefore(js,fjs);}}(document,"script","twitter-wjs");</script>
+
+                  <div class="fb-like" data-href="http://happyherbivore.com{{ post.get_absolute_url }}" data-send="false" data-layout="button_count" data-width="90" data-show-faces="false"></div>
+                </div>
+
+                  <hr>
+
+            </div><!-- / post -->
+            {% endfor %}
+
+            <div class="pagination">
+			{% if posts.has_previous %}
+				<a class="prev" href="?page={{ posts.previous_page_number }}">« Prev</a>
+			{% endif %}
+                <a href="?page={{ posts.number }}" class="current">{{ posts.number }}</a> 
+
+
+            {% if posts.number !=  posts.paginator.num_pages %}
+              {% if posts.number|add:"4" <  posts.paginator.num_pages %}
+                <a href="?page={{ posts.next_page_number }}">{{ posts.next_page_number }}</a> 
+                <a href="?page={{ posts.next_page_number|add:"1" }}">{{ posts.next_page_number|add:"1" }}</a> 
+                <a href="?page={{ posts.next_page_number|add:"2" }}">{{ posts.next_page_number|add:"2" }}</a> 
+                <a href="?page={{ posts.next_page_number|add:"3" }}">{{ posts.next_page_number|add:"3" }}</a> 
+                <a href="?page={{ posts.next_page_number|add:"4" }}">{{ posts.next_page_number|add:"4" }}</a>
+              {% endif %}
+            {% endif%}
+                ...
+                <a href="?page={{ posts.paginator.num_pages }}">{{ posts.paginator.num_pages }}</a> 
+			{% if posts.has_next %}
+				<a class="next" href="?page={{ posts.next_page_number }}">Next »</a>
+			{% endif %}             
+            </div><!-- pagination -->
+
+          </div><!--  -->
+
+
+
+
+            <!-- sidebar -->
+            <div class="span5">
+              <div class="sidebar">
+                <div class="subscribe-box">
+                  <h4>Subscribe to the blog!</h4>
+                  <h5>Get HH post right to your email!</h5>
+                  <label for="email">Your email address</label>
+                  <input type="text" id="email" />
+                  <input type="submit" value="Join" class="button-orange-big-round" /> 
+                </div><!-- / subscribe-box -->
+                <div class="subscribe-box-bottom">
+                  <a href="http://feeds.feedburner.com/HappyHerbivore-Blog" rel="nofollow">Or go grab our RSS feed! >></a> 
+                </div>
+
+                <div class="categories-box">
+                  <h4>All Categories</h4>
+                  <ul>
+                    {% load tagging_tags %}
+                    {% tags_for_model article.Post as tag_list %}
+                    {% for t in tag_list %}
+                        <li><a {% if tag_obj == t.name %}class="label-green"{% else %}class="label-orange"{% endif %} href="{% url category t.name %}">{{t.name}}</a></li>
+                    {% endfor %}
+                    <!-- <li><a href="#" class="label-green">Herbie Lifestyle</a></li>-->
+                  </ul>
+                </div><!-- / categories-box -->
+
+                <hr class="separator" />
+
+                {% gblock 8 for "gblocks.TitleAndText" into "BlogFavorites" %}
+                {{ BlogFavorites.text|safe }}
+
+                {% gblock 7 for "gblocks.TitleAndText" into "latestbookbox" %}
+                {{ latestbookbox.text|safe }}
+
+                {% gblock 1 for "gblocks.TitleAndText" into "mealplansad" %}
+                {{ mealplansad.text|safe }}
+            
+                {% gblock 2 for "gblocks.TitleAndText" into "fblike" %}
+                {{ fblike.text|safe }}
+
+              </div><!-- / sidebar -->
+
+        </div></div><!-- /row -->
+        </div><!-- /wrapper-box -->
+      </div> <!-- /container -->
+
+    </div><!-- / outer-wrapper -->
+  </div><!-- / content -->   
+{% endblock %}
+
+{% block extra_body %}
+<script type="text/javascript">
+  (function() {
+    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
+    po.src = 'https://apis.google.com/js/plusone.js';
+    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
+  })();
+</script>
+
+<script type="text/javascript">
+(function() {
+    window.PinIt = window.PinIt || { loaded:false };
+    if (window.PinIt.loaded) return;
+    window.PinIt.loaded = true;
+    function async_load(){
+        var s = document.createElement("script");
+        s.type = "text/javascript";
+        s.async = true;
+        s.src = "http://assets.pinterest.com/js/pinit.js";
+        var x = document.getElementsByTagName("script")[0];
+        x.parentNode.insertBefore(s, x);
+    }
+    if (window.attachEvent)
+        window.attachEvent("onload", async_load);
+    else
+        window.addEventListener("load", async_load, false);
+})();
+</script>
+{% endblock %}

File article/templates/contact.html

-{% extends "herb.html" %}
+{% extends "theme_base.html" %}
 
-{% block extrahead %}
+{% block extra_head %}
 {% endblock %}
 
-{% block title %} {{ flatpage.title }} {% endblock %}
+{% block head_title %} {{ flatpage.title }} {% endblock %}
 
-	{% block content %}   
-<div class="box_content margin">
-	<div class="box_content_head"></div>
-	<div class="box_content_body">
-		<div class="title"><span>{{ flatpage.title }}</span></div>
-		<div class="menu_content">
-			<div>
-			  <script type="text/javascript">var host = (("https:" == document.location.protocol) ? "https://secure." : "http://");document.write(unescape("%3Cscript src='" + host + "wufoo.com/scripts/embed/form.js' type='text/javascript'%3E%3C/script%3E"));</script>
+{% block body %}   
 
-<script type="text/javascript">
-var z7x3k7 = new WufooForm();
-z7x3k7.initialize({
-'userName':'happyherbivore', 
-'formHash':'z7x3k7', 
-'autoResize':true,
-'height':'557'});
-z7x3k7.display();
-</script>
+    {% load generic_flatblocks %}
 
-			</div>
-		</div>
-	</div><!-- box_content_body -->
-	<div class="content_box_footer"></div>
-</div><!-- box_content margin --> 	
+<div id="content">
+
+  <div class="container">
+    <div class="row">
+      <div class="span15">
+        <ul class="breadc clearfix">
+          <li><a href="/">Home</a></li>
+          <li><a href="/contact/">{{ flatpage.title }}</a></li>
+        </ul>
+        <h1 class="page-title">{{ flatpage.title }}</h1>
+      </div>
+    </div>
+  </div>
+
+  <!-- Content -->
+  <div id="outer-wrapper">
+  <div class="row">
+    <div class="wrapper-box">
+      <div class="span7">
+	    <div>
+		  <script type="text/javascript">var host = (("https:" == document.location.protocol) ? "https://secure." : "http://");document.write(unescape("%3Cscript src='" + host + "wufoo.com/scripts/embed/form.js' type='text/javascript'%3E%3C/script%3E"));</script>
+
+          <script type="text/javascript">
+            var z7x3k7 = new WufooForm();
+            z7x3k7.initialize({
+            'userName':'happyherbivore', 
+            'formHash':'z7x3k7', 
+            'autoResize':true,
+            'height':'557'});
+            z7x3k7.display();
+          </script>
+        </div>
+      </div>
+    
+    <!-- sidebar -->
+    <div class="span5">
+      <div class="sidebar">
+
+        {% gblock 8 for "gblocks.TitleAndText" into "BlogFavorites" %}
+        {{ BlogFavorites.text|safe }}
+
+      </div>
+    </div>
+    </div> <!-- / wrapper-box -->
+  </div><!-- / row -->
+</div><!-- / outer-wrapper -->
+
+</div> <!-- / content -->
+
 	{% endblock %}

File article/templates/cookbook.html

-{% extends "herb.html" %}
-{% block extrahead %}
-	<meta name="keywords" content="Vegan, Vegetarian, Recipes, low fat, fat-free,
-	cupcakes, brownies, soup, chili, biscuits, cookies, crab cakes, tofu" />
-	<meta name="description" content="I'm Lindsay S Nixon and Happy Herbivore
-	is my recipe website, home to more than 130 fat-free and low fat vegan
-	recipes! I cook with no added fats and mostly whole, unprocessed food.
-	You won't find processed flour, refined sugars and gobs of oil or
-	margarine in my recipes. What you will find, however, is food that is
-	good for you and tastes great!" />
-{% endblock %}
-
-{% block title %} {{ flatpage.title }} {% endblock %}
-
-{% block content %}
-    <div class="fullbox_content">
-
-	<div class="box_content_body">
-
-	    <div class="menu_content">
-	      <div class="cookbook">
-		<h1 class="supertitle">The World's Most Approachable Vegan Cookbook</h1>
-		
-		
-		<div id="booksection">
-		    <a rel="nofollow" href="http://search.barnesandnoble.com/The-Happy-Herbivore-Cookbook/Lindsay-S-Nixon/e/9781935618126/">
-		    <img height="386" width="300" src="http://img.happyherbivore.com/cookbook/hh-cover-mini.jpg"></a>
-		    <p>
-		    Full Size:
-		    <a class="lightbox " href="http://img.happyherbivore.com/cookbook/hh-cover-fullsize.jpg">
-			Front Cover</a> |
-		    <a class="lightbox " href="http://img.happyherbivore.com/cookbook/hh-backcover-fullsize.jpg">
-			Back Cover</a>
-		    </p>
-
-		    <div id="quotesection">
-			<p class="bookquote">
-			    "Nothing is more discouraging than a cookbook
-			    with long complex recipes and uncommon
-			    ingredients &ndash; <strong>you won't find that here!"</strong>
-			</p>
-					
-			<p class="bndeal">
-			  <strong>Top 5 Bestseller</strong> in Amazon's Vegan category.
-				Read the Reviews on <a rel="nofollow" class="locator"
-			    href="http://goo.gl/VxuL1">Amazon</a>.
-			</p>
-		    </div>
-		</div>
-		
-
-		
-		
-		
-		<div class="clearboth"></div>
-		
-		<div id="whyyouneed" class="posrel sell">
-		    <h2 class="posrel">Why You Need This Book</h2>
-		    <ul class="posrel">
-			<li>You will <strong>cook healthier meals</strong> for your family</li>
-			<li>Eating <strong>less fat reduces your risk</strong> of heart disease and weight gain</li>
-			<li>Learn <strong>dozens of tips for substituting</strong> out the fat.</li>
-			<li>175 accessible Low-Fat Recipes</li>
-			<li>Ridiculously <strong>easy-to-find ingredients</strong></li>
-			<li><strong>Nutritional</strong> information that will blow your mind</li>
-			<li>500+ fans have purchased over 1000 ecookbooks</li>
-			<li>Read the <strong>top rated reviews on <a rel="nofollow"
-			    href="http://www.amazon.com/Happy-Herbivore-Cookbook-Delicious-Fat-Free/product-reviews/1935618121/ref=cm_cr_pr_helpful?ie=UTF8&showViewpoints=0">Amazon</a></strong>.</li>
-		    </ul>
-		</div>
-		<div id="merchantlinks" class="posrel floatright">
-		    
-		    <img width="223" height="331" src="http://img.happyherbivore.com/cookbook/bookstore-banner.png" usemap="#buylinks">
-		    <map name="buylinks">
-			<area shape="rect" coords="0,0,223,140" rel="nofollow"
-			      href="http://search.barnesandnoble.com/The-Happy-Herbivore-Cookbook/Lindsay-S-Nixon/e/9781935618126/" alt="Take home the elephant from Barnes &amp; Noble" />
-			<area shape="rect" coords="0,141,223,195" rel="nofollow" href="http://goo.gl/VxuL1" alt="Take home the elephant from Amazon.com" />
-			<area shape="rect" coords="0,196,223,260" rel="nofollow"
-			      href="http://www.borders.com/online/store/TitleDetail?type=0&catalogId=10001&simple=1&defaultSearchView=List&keyword=the+happy+herbivore+cookbook&LogData=[search:+7,parse:+15]&searchData={productId:null,sku:null,type:0,sort:null,currPage:1,resultsPerPage:25,simpleSearch:true,navigation:0,moreValue:null,coverView:false,url:rpp%3D25%26view%3D2%26all_search%3Dthe%2Bhappy%2Bherbivore%2Bcookbook%26type%3D0%26nav%3D0%26simple%3Dtrue,terms:{all_search%3Dthe+happy+herbivore+cookbook}}&storeId=13551&sku=1935618121&ddkey=http:SearchResults#" alt="Take home the elephant from Borders" />
-			<area shape="rect" coords="0,261,223,331" rel="nofollow"
-			      href="http://www.indiebound.org/book/9781935618126" alt="Take home the elephant from IndieBound" />
-		      </map>
-		</div>
-
-		<div class="clearboth"></div>
-		<div id="slideshow">
-		    <object width="500" height="375">
-			<param name="flashvars" value="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2Fshow%2F&page_show_back_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2F&set_id=72157623281674644&jump_to="></param>
-			<param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param>
-			<param name="allowFullScreen" value="true"></param>
-			<embed type="application/x-shockwave-flash"
-			       src="http://www.flickr.com/apps/slideshow/show.swf?v=71649"
-			       allowFullScreen="true" flashvars="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2Fshow%2F&page_show_back_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2F&set_id=72157623281674644&jump_to="
-			       width="500" height="375">
-			</embed>
-		    </object>
-		</div>
-		<div id="samplerecipes">
-		    <h2>Sample Recipes</h2>
-		    <ul>    
-			<li><a href="/recipe/spicy-teriyaki-chickpeas/">Hawaiian BBQ: Teriyaki Chickpeas</a></li>
-			<li><a href="/recipe/chickpea-tacos/">Chickpea Tacos</a></li>
-			<li><a href="/recipe/chocolate-zucchini-muffins/">Chocolate-Zucchini Muffins</a></li>
-			<li><a href="/recipe/soy-free-mac-n-cheese/">Easy Mac 'n Cheese</a></li>
-			<li><a href="/recipe/mock-tuna-salad/">Mock Tuna Salad</a></li>
-			<li><a href="/recipe/vegan-italian-sausages/">Vegan Italian Sausages</a>
-			<li><a href="/recipe/balsamic-portobellos/">Portobello Steaks</a></li>
-			<li><a href="/recipe/pumpkin-raisin-oatmeal-cookies/">Pumpkin-Raisin Oatmeal Cookies</a></li>
-			<li><a href="/recipes/">Want more examples? Click on the "Cookbook" tag on the Recipes page</a></li>
-		    </ul>
-		</div>
-		
-		<div class="clearboth"></div>
-		<div id="testimonals">
-		    <blockquote><p>"The Happy Herbivore Cookbook's low-fat, plant-based
-		    dishes promote health in a delectable and wholesome way. Lindsay
-		    Nixon's recipes are ...simple and flavorful solutions to eat
-		    better for mental and physical health." </p>
-			<p> - <strong>T. Colin Campbell</strong>, PhD, author of The China
-			Study and professor emeritus of Nutritional Biochemistry</p>
-		    </blockquote>
-		    <blockquote><p>"Lindsay's recipes are not just vegan but also low in
-		    fat ... a winning combination for disease prevention and reversal ...
-		    So jump on in and get your feet wet with all the foods you thought you'd
-		    have to put aside to get healthy." </p>
-			<p> - <strong>Neal Barnard</strong>, president, Physicians Committe for Responsible Medicine</p>
-		    </blockquote>
-		    <blockquote><p>"An exciting collection of healthy and delectable vegan dishes." </p>
-			<p> - <strong>Mark Reinfeld</strong>, coauthor of The 30-Minute
-			Vegan series and Vegan Fusion World Cuisine</p>
-		    </blockquote>
-		    <blockquote><p>"The Happy Herbivore Cookbook proves how delicious,
-		    easy, and accessible low-fat vegan food can be." </p>
-			<p> - <strong>Alicia C. Simpson</strong>, author of Quick and
-			Easy Vegan Comfort Food</p>
-		    </blockquote>
-		</div>
-
-<div id='kindleReaderDiv42'></div><script type='text/javascript' src='http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js'></script><script>KindleReader.LoadSample({containerID: 'kindleReaderDiv42', asin: 'B004EPYW8S', width: '880', height: '675'});</script>
-        	<p>&nbsp;</p>
-                <img width="890px" height="556px" src="http://img.happyherbivore.com/cookbook/hh-cookbook-fan-collage.jpg">
-		<div class="clearboth"></div>
-		
-
-	  </div> <!-- End Cookbook -->
-	</div><!-- box_content_body -->
-
-    </div>
-
-<link rel="stylesheet" type="text/css" href="http://css.happyherbivore.com/jquery.lightbox-0.5.css">
-<script type="text/javascript" src="http://js.happyherbivore.com/jquery.lightbox-0.5.js"></script>
-<script type="text/javascript">
-$(function() {
-	$('a.lightbox').lightBox(); // Select all links with lightbox class
-});
-</script>
-{% endblock %}
-
-{% block right_column %}
-{% endblock %}

File article/templates/cookbooks.html

 {% extends "landing-page.html" %}
 {% block extrahead %}
 	<meta name="keywords" content="Cookbooks, Plant-Based diet, Vegan, Vegetarian, Recipes, Gluten-Free, Soy-Free, low fat, fat-free, cupcakes, brownies, soup, chili, biscuits, cookies, crab cakes, tofu" />
-	<meta name="description" content="Lindsay S. Nixon's cookbooks will save you money by using 'everyday' inexpensive ingredients, save you time with easy, no fuss recipes and improve your health with each nutritional bite. Over 30,000 books sold as of November 2011." />
+	<meta name="description" content="Lindsay S. Nixon's cookbooks will save you money by using 'everyday' inexpensive ingredients, save you time with easy, no fuss recipes and improve your health with each nutritional bite. Over 70,000 cookbooks." />
+
+    <meta property="og:type" content="website"/>
+    <meta property="og:image" content="//photos.happyherbivore.com/logos/Big-Baby-Elephant.png"/>
+    <meta property="og:title" content="Happy Herbivore Cookbooks by Lindsay S. Nixon"/>
+
+    <meta property="og:description"
+          content="Lindsay S. Nixon's cookbooks will save you money by using 'everyday' inexpensive ingredients, save you time with easy, no fuss recipes and improve your health with each nutritional bite. Over 70,000 cookbooks."/>
 {% endblock %}
 
-{% block title %} {{ flatpage.title }} {% endblock %}
+{% block title %} Happy Herbivore Cookbooks by Lindsay S. Nixon {% endblock %}
 
 {% block content %}
 <div id="multi_cookbook" class="grid_940 cb_shadow white_back">

File article/templates/ehh.html

 {% extends "landing-page.html" %}
 {% block extrahead %}
 	<meta name="keywords" content="Cookbooks, Plant-Based diet, Vegan, Vegetarian, Recipes, Gluten-Free, Soy-Free, low fat, fat-free, cupcakes, brownies, soup, chili, biscuits, cookies, crab cakes, tofu" />
-	<meta name="description" content="Everyday Happy Herbivore: More than 175 doable recipes; recipes that are so quick and easy, you could cook three healthy meals from scratch everyday. Available everywhere December 5th, 2011." />
+	<meta name="description" content="Everyday Happy Herbivore: More than 175 doable recipes; recipes that are so quick and easy, you could cook three healthy meals from scratch everyday. Available now." />
+
+    <meta property="og:type" content="book"/>
+    <meta property="og:title" content="{{ flatpage.title }} Cookbook"/>
+    <meta property="og:image" content="//photos.happyherbivore.com/cookbooks/EverydayHappyHerbivore_FrontCover_300.jpg"/>
     <meta property="og:book:author" content="Lindsay S. Nixon" />
     <meta property="og:book:isbn" content="1936661381" />
     <meta property="og:book:release_date" content="2011-12-06" />
+    <meta property="og:description"
+          content="Everyday Happy Herbivore: More than 175 doable recipes; recipes that are so quick and easy, you could cook three healthy meals from scratch everyday. Available now."/>
+
 
 
 {% endblock %}

File article/templates/faq_index.html

-{% extends "herb.html" %}
+{% extends "theme_base.html" %}
 
-{% block title %} Frequently Asked Questions {% endblock %}
+{% block head_title %} Frequently Asked Questions {% endblock %}
 
-{% block content %} 
-<div class="box_content margin">
-  <div class="box_content_head"></div>
-	<div class="box_content_body">
-	<div class="title"><span>Frequently Asked Questions</span></div>
-	<div class="menu_content">
-	<div class="faq_area">
-		<ul class="faqlinks">
-			{% for post in posts %}
-			<li><a href="#{{ post.post_slug }}">{{ post.post_title }}</a>
-			  {% if user.is_superuser %}
-			  | <span><a href="/admin/article/post/{{ post.pk }}/">Edit</a></span>
+{% block body %} 
+<div id="content">
+
+  <!-- breadcrumb -->
+  <div class="container">
+    <div class="row">
+      <div class="span12">
+        <ul class="breadc clearfix">
+          <li><a href="/">Home</a></li>
+          <li><a href="/recipes/">Recipes</a></li>
+        </ul>
+            <h1 class="page-title">Frequently Asked Questions</h1>
+      </div>
+    </div>
+  </div>
+  
+  <div id="outer-wrapper">
+    
+    <div class="container">
+      <div class="wrapper-box">
+        <!-- Content -->
+        <div class="row">
+          <div class="span7">
+            <ul>
+			  {% for post in posts %}
+			  <li><a href="#{{ post.post_slug }}">{{ post.post_title }}</a>
+			    {% if user.is_superuser %}
+			    | <span><a href="/admin/article/post/{{ post.pk }}/">Edit</a></span>
 			  {% endif %}
-			</li>
-			{% endfor %}
-		</ul>
-	</div>
-{% for post in posts %}
-	<div class="faq-item">
-        <h2 id='{{ post.post_slug }}' class="faq_name">{{ post.post_title }}</a></h2>
-		<p>{{ post.post_content|safe }}</p>
-	</div>	
-{% empty %}
-    <p>No Posts are available.</p>
-{% endfor %}
-	</div>
-	</div><!-- box_content_body -->
-	<div class="content_box_footer"></div>
-</div><!-- box_content margin --> 	
+			  </li>
+			  {% endfor %}
+            </ul>
+            <p>&nbsp;</p>
+          {% for post in posts %}
+          <div class="faq-item">
+            <h2 id='{{ post.post_slug }}' class="faq_name">{{ post.post_title }}</h2>
+                <p>{{ post.post_content|safe }}</p>
+          </div>	
+         {% empty %}
+             <p>No Posts are available.</p>
+         {% endfor %}
+             <p>&nbsp;</p>
+      
+        </div>
+      </div>
+    </div><!-- /wrapper-box -->
+  </div> <!-- /container -->
+  
+</div><!-- / outer-wrapper -->
+</div><!-- / content -->  
 
 {% endblock %} 
-
-{% block sidebar %}   
-	
-{% endblock %}

File article/templates/featured-xml.html

-<?xml version="1.0" encoding="utf-8"?>
- <!--
-Monoslideshow 2.0 configuration file
-Please visit http://www.monoslideshow.com for more info
--->
-<album>
-	<configuration preloadItems="2" delay="4" viewport="0,0,605,317" randomize="true" followImageLinks="true">
-		<caption position="bottomLeft"/>
-		<transition kenBurnsMode="randomZoomIn" />
-		<controller showNavigationButton="false" >
-			<transition/>
-			<scrubBar/>
-			<shadow/>
-		</controller>
-	</configuration>
-	<contents>
-            <feed url="/rss/{{ kwargs.type }}/{{ kwargs.recipe__featured_items }}/"/>
-	</contents>
-</album>

File article/templates/herb.html

-<!DOCTYPE html>
-<html xmlns="http://www.w3.org/1999/xhtml"
-      xmlns:og="http://ogp.me/ns#"
-      xmlns:fb="https://www.facebook.com/2008/fbml" lang="en">
-  <head prefix="og: http://ogp.me/ns# fb: http://ogp.me/ns/fb# hh-recipes: http://ogp.me/ns/fb/hh-recipes#">
-    {% load generic_flatblocks %}
-    <script type="text/javascript">var _sf_startpt=(new Date()).getTime()</script>
-    <title>{% block title %}{{ title }}{% endblock %} | HappyHerbivore.com</title>
-    <script type="text/javascript">var disqus_developer = 0;</script> 
-    <meta http-equiv="Content-Type" content="text/html;charset=utf-8" />
-    <meta http-equiv="X-UA-Compatible" content="IE=Edge,chrome=1">
-    <meta name="ROBOTS" content="ALL" />
-    <meta name="description" content="{% block meta_description %}{% endblock %}" />
-    <meta name="rights-standard" content="copyr2006-{% now "Y" %}" />
-    <link rel="canonical" href="http://happyherbivore.com{{ request.path_info }}" />
-    <link rel="shortcut icon" href="http://img1.happyherbivore.com/favicon.ico">
-    <link rel="alternate" type="application/rss+xml" title="Happy Herbivore Blog RSS" href="http://feeds.feedburner.com/HappyHerbivore-Blog">
-
-    <meta property="fb:page_id" content="57667278481" />
-    <meta property="og:locale" content="en_US"/>
-    <meta property="og:site_name" content="Happy Herbivore"/>
-    <meta property="og:url" content="http://happyherbivore.com{{ request.path_info }}"/>
-    <meta property="og:email" content="lindsay@happyherbivore.com"/>
-
-{% if debug %}
-    <link rel="stylesheet" type="text/css" media="screen"
-	  href="/media/css/happyherbivore.css?v=189" />   
-    <link rel="stylesheet" type="text/css" media="print" 
-	  href="/media/css/print.css"/>
-    <link type="text/css" rel="stylesheet"
-	  href="/media/jquery/ui/1.8.14/css/south-street/jquery.ui.base.css"> 
-    <link type="text/css" rel="stylesheet"
-	  href="/media/jquery/ui/1.8.14/css/south-street/jquery.ui.theme.css"> 
-
-    <link type="text/css" media="screen" href="/media/css/960.css" rel="stylesheet">
-
-{% else %}
-
-    <link rel="stylesheet" type="text/css" media="screen"
-	  href="{{ main_css }}" />
-    <link rel="stylesheet" type="text/css" media="print"
-	  href="{{ print_css }}" />
-
-    <link type="text/css" media="screen" href="/media/css/960.css" rel="stylesheet">
-
-{% endif %}
-
- 
-        <script type="text/javascript">
-   		  function show_menu(id_menu){
-                    var menu = document.getElementById(id_menu);
-                    menu.style.display = "block";
-                  }
-                  function hide_menu(id_menu){
-                    var menu = document.getElementById(id_menu);
-                    menu.style.display = "none";
-                  }
-        </script>
-	
-	<!--[if lt IE 9]>
-	    <script src="http://html5shiv.googlecode.com/svn/trunk/html5.js"></script>
-	<![endif]-->
-
-	{% if debug %}
-	    <script src="/media/jquery/jquery-1.7.1.min.js"></script>
-	    <script src="/media/jquery/jquery-ui.1.8.15.js"></script>
-	    <script src="{{ main_js }}"></script> <!-- /media/js/hh-lib.js -->
-	{% else %}
-	    <script src="http://css.happyherbivore.com/jquery-1.6.4.min.js"></script>
-	    <script src="http://css.happyherbivore.com/jquery-ui.1.8.15.js"></script>
-	    <script src="{{ main_js }}"></script>
-	{% endif %}
-
-    {% block extrahead %}
-    {{ media }}
-    {% endblock %}
-
-
-    {% gblock 14 for "gblocks.Text" into "typekit" %}
-    {{ typekit.text|safe }}
-
-{% if not debug %}
-<script type="text/javascript">
-  var _gaq = _gaq || [];
-  _gaq.push(['_setAccount', 'UA-3768122-2']);
-  _gaq.push(['_setDomainName', 'happyherbivore.com']);
-  _gaq.push(['_trackPageview']);
-  _gaq.push(['_trackPageLoadTime']);	      
-
-  (function() {
-         var ga = document.createElement('script'); ga.type = 'text/javascript'; ga.async = true;
-         ga.src = ('https:' == document.location.protocol ? 'https://ssl' : 'http://www') + '.google-analytics.com/ga.js';
-         var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(ga, s);
-  })();	      
-</script>
-{% endif %}
-
-	</head>
- 
-	<body>
-
-
-<div id="fb-root"></div>
-<script>
-  (function() {
-     window.fbAsyncInit = function() {
-       FB.init({
-          appId      : '133322466769084', 
-          status     : true, // check login status
-          cookie     : true,
-          xfbml      : true  // parse XFBML
-       });
-       FB.Event.subscribe('edge.create', function(response)
-       {          _gaq.push(['page', 'like', response]); });
-       FB.Event.subscribe('edge.remove', function(response)
-       {          _gaq.push(['page', 'unlike', response]); });
-     };
-
-     // Load the SDK Asynchronously
-    (function(d){
-       var js, id = 'facebook-jssdk'; if (d.getElementById(id)) {return;}
-       js = d.createElement('script'); js.id = id; js.async = true;
-       js.src = "//connect.facebook.net/en_US/all.js";
-       d.getElementsByTagName('head')[0].appendChild(js);
-     }(document));
-</script>
-
-            <div id="head">
- 
-                <div id="navigator_bar">
- 
-                    <div class="navigator_content">
-		      <nav class="tk-proxima-nova">
-			 <!-- <span class="ui-icon shop_icon ui-icon-star"></span> -->
-			 <a onClick="_gaq.push(['_trackEvent', 'Outbound', 'Link', 'Market-Store']);"  href="http://store.happyherbivore.com/" rel="nofollow">The Market</a>
-			 &ndash;
-			 <a href="/mylist/">Shopping List</a>
-		      </nav>
-
-		      <h1>
-		       <a id="logo" href="/">Happy Herbivore</a>
-		      </h1>
- 
-                        <ul>
- 
-                            <li><a href="/">
-				Home
-			    </a></li>
- 
-                            <li><a href="{% url article.views.post_index %}">
-				Blog
-			    </a></li>
-                            
-                            <li><a href="/cookbook/">
-				Cookbooks
-			    </a></li> 
-							
-			    <li onmouseover="show_menu('menu_recipes');" onmouseout="hide_menu('menu_recipes');">
-			      <a href="{% url article.views.recipe_index %}">
-				Recipes ▾</a>
-			      <div id="menu_recipes" class="sub_menu" style="display:none"> 
-				<ul>
-				  <li>
-				    <a href="{% url article.views.ingred_type_index %}">
-				      by Ingredient		  
-				    </a>
-				  </li>
-				  <li>
-				    <a href="/video/">Video Recipes</a>
-				  </li>
-				</ul>
-			      </div>
-			    </li>
-
-                            <li onmouseover="show_menu('menu_about');" onmouseout="hide_menu('menu_about');"> 
- 
-                                <a href="/about/contact/">
-				   Contact ▾</a> 
- 
-                                <div id="menu_about" class="sub_menu" style="display:none"> 
- 
-                                    <ul> 
-				        <li><a href="{% url article.views.faq_index %}">
-					  FAQ
-					</a></li>
-					<li><a href="/about/">
-					   About</a></li>
-					<li><a href="/newsletters/">
-					   Newsletters</a></li>
- 
-                                    </ul> 
- 
-                                </div> 
- 
-                            </li> 
- 
-                        </ul>
- 
-                    </div><!-- navigator_content -->
- 
-                 </div><!-- navigator_bar -->
- 
-            </div><!-- head -->
-
-	    <div id="ribbon_bar"></div>
-
-            <div id="body_content">
- 
-                <div class="box_body">
-
- 
-                    <div class="left_colum" id="left_colum">	
-			{% block content %}   
-			{% endblock %}
-                    </div><!-- left_colum -->
-
-		    {% block right_column %}
-                    <div class="right_colum">
-		     
- 		        <div class="header_menu">
-			    </div>  <!-- header_menu -->			
-
-				{% gblock 16 for "gblocks.Text" into "vegan" %}
-    				{{ vegan.text|safe }}
-			        {% if user.is_superuser and not debug %}
-			            <span><a href="/admin/gblocks/text/{{ profile.pk }}/">Edit Profile</a></span>
-			        {% endif %}
-
-
-                        <div class="content_box">
- 
-                            <div class="top content_box_body">
-			      <div class="comment_content">
-				     <h1 class="news_header">Newsletter</h1>
-
-				     {% gblock 5 for "gblocks.Text" into "mailchimp"  %}
-				         {{ mailchimp.text|safe }}
-			             {% if user.is_superuser and not debug %}
-			                 <span><a href="/admin/gblocks/text/{{ mailchimp.pk }}/">Edit</a></span>
-			             {% endif %}				  
-                              </div><!-- comment_content -->
-
-			      <div class="top comment_content">
-				{% gblock 5 for "gblocks.TitleAndText" into "mealplanad" %}
-				{{ mealplanad.text|safe }}
-				{% if user.is_superuser and not debug %}
-				<span><a href="/admin/gblocks/text/{{ cookbook.pk }}/">Edit</a></span>
-				{% endif %}
-			      </div>
-
-			      <div class="content_box_body search_content floatleft">
-				<form action="http://www.google.com/cse" id="cse-search-box">
-				  <div>
-				    <label for="q">Search</label>
-				    <input type="hidden" name="cx" value="006872200688521324367:oqkpyrqexdw" />
-				    <input type="hidden" name="ie" value="UTF-8" />
-				    <input type="text" name="q" size="27" class="text_search" />
-				    <input type="submit" name="sa" value="Search" class="button" />
-				  </div>
-				</form>
-				<script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=en"></script>
-			      </div><!-- end search -->
-
-		              <div class="top comment_content">
-				{% gblock 11 for "gblocks.Text" into "cookbook" %}
-				{{ cookbook.text|safe }}
-			        {% if user.is_superuser and not debug %}
-			            <span><a href="/admin/gblocks/text/{{ cookbook.pk }}/">Edit</a></span>
-			        {% endif %}
-
-			      </div>
- 
-                        
-				   <div class="comment_content">
-				     {% gblock 4 for "gblocks.Text" into "twitter_box"  %}
-				         {{ twitter_box.text|safe }}  		
-			             {% if user.is_superuser and not debug %}
-			                 <span><a href="/admin/gblocks/text/{{ twitter_box.pk }}/">Edit</a></span>
-				     {% endif %}
-									
-				   </div><!-- comment_content -->
-				   <div class="comment_content">
-				     {% gblock 7 for "gblocks.Text" into "facebook_box" %}
-				     {{ facebook_box.text|safe }}
-			             {% if user.is_superuser and not debug %}
-			             <span><a href="/admin/gblocks/text/{{ facebook_box.pk }}/">Edit</a></span>
-			             {% endif %}
-				   </div>
-
-				</div><!-- content_box_body -->
- 
-                        </div><!-- content_box -->
- 
-                    </div><!-- right_colum -->
-		    {% endblock %}
-		    
-
- 
-                </div><!-- box_body -->
- 
-            </div><!-- body_content -->
- 
-            <div id="footer">
-
-
-		<div class="more-links">
-		  <div class="inner-size">
-
-                      <ul class="floatright">
-			<li>
-			  <div id="fb-root"></div><script src="http://connect.facebook.net/en_US/all.js#appId=119685314787537&amp;xfbml=1"></script><fb:like send="false" layout="button_count" width="100" show_faces="false" font=""></fb:like>
-			  <script type="text/javascript">
-			    FB.Event.subscribe('edge.create', function(href, widget) { _gaq.push(['_trackSocial', 'Facebook', 'Like', href]); });
-			    FB.Event.subscribe('edge.remove', function(href, widget) { _gaq.push(['_trackSocial', 'Facebook', 'Unlike', href]); });
-			  </script>
-			</li>
-
-			<li>
-			  <a href="http://twitter.com/share" class="twitter-share-button" 
-			     data-url="http://happyherbivore.com{{ recipe.get_absolute_url }}" 
-			     data-count="horizontal" data-via="happyherbivore">Tweet</a>
-			  <script type="text/javascript" 
-				  src="http://platform.twitter.com/widgets.js"></script>
-			</li>
-			<li><g:plusone></g:plusone></li>
-			<li>
-			  <script src="http://www.stumbleupon.com/hostedbadge.php?s=2&r=http://happyherbivore.com/">
-			  </script>
-			</li>
-			<li>
-			</li>
-                      </ul>	
-
-		  </div>
-		</div>
-
-
-
-   
-		<div class="explain">
-		  <div class="container_12">
-		    <div class="grid_6">
-		      <h1>Why Happy Herbivore?</h1>
-		      <p class="desc">
-			Because I get home cooks. Like you, I want to eat healthy but I don't want to spend a fortune, face long hours in the kitchen or drive all around town to get ingredients. And I want every meal to be just as nutritious as it is delicious.
-		      </p>
-		      <h1>Do you have a question or comment? Post it on <a class="bright-blue" onClick="_gaq.push(['_trackEvent', 'Outbound', 'Link', 'Facebook Footer']);" href="http://facebook.com/happyherbivoreblog">Facebook</a> or <a class="bright-blue" href="/about/contact/">Contact us.</a></h1>
-		      <p class="desc">
-			or email us at <a href="mailto:&#108;&#105;&#110;&#100;&#115;&#097;&#121;&#064;&#104;&#097;&#112;&#112;&#121;&#104;&#101;&#114;&#098;&#105;&#118;&#111;&#114;&#101;&#046;&#099;&#111;&#109;" class="bright-blue">&#108;&#105;&#110;&#100;&#115;&#097;&#121;&#064;&#104;&#097;&#112;&#112;&#121;&#104;&#101;&#114;&#098;&#105;&#118;&#111;&#114;&#101;&#046;&#099;&#111;&#109;</a>
-		      </p>
-
-		    </div> <!--end left block -->
-		    
-
-		  <div class="grid_6 mc_newsletter">
-
-		    <div id="mc_embed_signup_hh">
-		      <form action="http://happyherbivore.us1.list-manage2.com/subscribe/post?u=9f583084c8894f99b6706eb11&amp;id=0c9ef5e692" method="post" id="mc-embedded-subscribe-form" name="mc-embedded-subscribe-form" class="validate" target="_blank">
-			<label for="mce-EMAIL-hh">Subscribe to our Newsletter</label>
-			<input type="email" value="" name="EMAIL" class="email" id="mce-EMAIL-hh" placeholder="email address" required>
-			<div class="mc-clear"><input type="submit" value="Subscribe" name="subscribe" id="mc-embedded-subscribe" class="button"></div>
-		      </form>
-		    </div>
-		    <!--End mc_embed_signup-->
-
-                    <div class="search_content floatleft">
-		      <form action="http://www.google.com/cse" id="cse-search-box">
-			<div>
-			  <label for="q">Search</label>
-			  <input type="hidden" name="cx" value="006872200688521324367:oqkpyrqexdw" />
-			  <input type="hidden" name="ie" value="UTF-8" />
-			  <input type="text" name="q" size="27" class="text_search" />
-			  <input type="submit" name="sa" value="Search" class="button" />
-			</div>
-		      </form>
-		      <script type="text/javascript" src="http://www.google.com/cse/brand?form=cse-search-box&lang=en"></script>
-                    </div><!-- end search -->
-
-
-		  </div>
-
-		  </div> <!-- end inners-size -->
-		</div>  <!-- end explain -->
-
-
-		<div class="inner-size">
-		  <p class="textleft copyright">&copy; 2006-{% now "Y" %} HappyHerbivore - All Rights Reserved</p>
-		</div>
-
-
-
- 
-            </div><!-- footer -->
-<script type="text/javascript">
-  (function() {
-    var po = document.createElement('script'); po.type = 'text/javascript'; po.async = true;
-    po.src = 'https://apis.google.com/js/plusone.js';
-    var s = document.getElementsByTagName('script')[0]; s.parentNode.insertBefore(po, s);
-  })();
-</script>
-<script type="text/javascript">
-(function() {
-    window.PinIt = window.PinIt || { loaded:false };
-    if (window.PinIt.loaded) return;
-    window.PinIt.loaded = true;
-    function async_load(){
-        var s = document.createElement("script");
-        s.type = "text/javascript";
-        s.async = true;
-        s.src = "http://assets.pinterest.com/js/pinit.js";
-        var x = document.getElementsByTagName("script")[0];
-        x.parentNode.insertBefore(s, x);
-    }
-    if (window.attachEvent)
-        window.attachEvent("onload", async_load);
-    else
-        window.addEventListener("load", async_load, false);
-})();
-</script>
-
-{% gblock 13 for "gblocks.Text" into "viglink" %}
-    {{ viglink.text|safe }}
-</body>
-</html>

File article/templates/herb_fullpage.html

-{% extends "herb.html" %}
-{% block extrahead %}
-	<meta name="keywords" content="Vegan, Vegetarian, Recipes, low fat, fat-free,
-	cupcakes, brownies, soup, chili, biscuits, cookies, crab cakes, tofu" />
-	<meta name="description" content="I'm Lindsay S Nixon and Happy Herbivore
-	is my recipe website, home to more than 130 fat-free and low fat vegan
-	recipes! I cook with no added fats and mostly whole, unprocessed food.
-	You won't find processed flour, refined sugars and gobs of oil or
-	margarine in my recipes. What you will find, however, is food that is
-	good for you and tastes great!" />
-{% endblock %}
-
-{% block title %} {{ flatpage.title }} {% endblock %}
-
-{% block content %}
-    <div class="fullbox_content">
-
-	<div class="box_content_body">
-
-	    <div class="menu_content">
-	      <div class="cookbook">
-		<h1 class="supertitle">The World's Most Approachable Vegan Cookbook</h1>
-		
-		
-		<div id="booksection">
-		    <a rel="nofollow" href="http://search.barnesandnoble.com/The-Happy-Herbivore-Cookbook/Lindsay-S-Nixon/e/9781935618126/">
-		    <img height="386" width="300" src="http://img.happyherbivore.com/cookbook/hh-cover-mini.jpg"></a>
-		    <p>
-		    Full Size:
-		    <a class="lightbox " href="http://img.happyherbivore.com/cookbook/hh-cover-fullsize.jpg">
-			Front Cover</a> |
-		    <a class="lightbox " href="http://img.happyherbivore.com/cookbook/hh-backcover-fullsize.jpg">
-			Back Cover</a>
-		    </p>
-
-		    <div id="quotesection">
-			<p class="bookquote">
-			    "Nothing is more discouraging than a cookbook
-			    with long complex recipes and uncommon
-			    ingredients &ndash; <strong>you won't find that here!"</strong>
-			</p>
-					
-			<p class="bndeal">
-			  <strong>Top 5 Bestseller</strong> in Amazon's Vegan category.
-				Read the Reviews on <a rel="nofollow" class="locator"
-			    href="http://goo.gl/VxuL1">Amazon</a>.
-			</p>
-		    </div>
-		</div>
-		
-
-		
-		
-		
-		<div class="clearboth"></div>
-		
-		<div id="whyyouneed" class="posrel sell">
-		    <h2 class="posrel">Why You Need This Book</h2>
-		    <ul class="posrel">
-			<li>You will <strong>cook healthier meals</strong> for your family</li>
-			<li>Eating <strong>less fat reduces your risk</strong> of heart disease and weight gain</li>
-			<li>Learn <strong>dozens of tips for substituting</strong> out the fat.</li>
-			<li>175 accessible Low-Fat Recipes</li>
-			<li>Ridiculously <strong>easy-to-find ingredients</strong></li>
-			<li><strong>Nutritional</strong> information that will blow your mind</li>
-			<li>500+ fans have purchased over 1000 ecookbooks</li>
-			<li>Read the <strong>top rated reviews on <a rel="nofollow"
-			    href="http://www.amazon.com/Happy-Herbivore-Cookbook-Delicious-Fat-Free/product-reviews/1935618121/ref=cm_cr_pr_helpful?ie=UTF8&showViewpoints=0">Amazon</a></strong>.</li>
-		    </ul>
-		</div>
-		<div id="merchantlinks" class="posrel floatright">
-		    
-		    <img width="223" height="331" src="http://img.happyherbivore.com/cookbook/bookstore-banner.png" usemap="#buylinks">
-		    <map name="buylinks">
-			<area shape="rect" coords="0,0,223,140" rel="nofollow"
-			      href="http://search.barnesandnoble.com/The-Happy-Herbivore-Cookbook/Lindsay-S-Nixon/e/9781935618126/" alt="Take home the elephant from Barnes &amp; Noble" />
-			<area shape="rect" coords="0,141,223,195" rel="nofollow" href="http://goo.gl/VxuL1" alt="Take home the elephant from Amazon.com" />
-			<area shape="rect" coords="0,196,223,260" rel="nofollow"
-			      href="http://www.borders.com/online/store/TitleDetail?type=0&catalogId=10001&simple=1&defaultSearchView=List&keyword=the+happy+herbivore+cookbook&LogData=[search:+7,parse:+15]&searchData={productId:null,sku:null,type:0,sort:null,currPage:1,resultsPerPage:25,simpleSearch:true,navigation:0,moreValue:null,coverView:false,url:rpp%3D25%26view%3D2%26all_search%3Dthe%2Bhappy%2Bherbivore%2Bcookbook%26type%3D0%26nav%3D0%26simple%3Dtrue,terms:{all_search%3Dthe+happy+herbivore+cookbook}}&storeId=13551&sku=1935618121&ddkey=http:SearchResults#" alt="Take home the elephant from Borders" />
-			<area shape="rect" coords="0,261,223,331" rel="nofollow"
-			      href="http://www.indiebound.org/book/9781935618126" alt="Take home the elephant from IndieBound" />
-		      </map>
-		</div>
-
-		<div class="clearboth"></div>
-		<div id="slideshow">
-		    <object width="500" height="375">
-			<param name="flashvars" value="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2Fshow%2F&page_show_back_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2F&set_id=72157623281674644&jump_to="></param>
-			<param name="movie" value="http://www.flickr.com/apps/slideshow/show.swf?v=71649"></param>
-			<param name="allowFullScreen" value="true"></param>
-			<embed type="application/x-shockwave-flash"
-			       src="http://www.flickr.com/apps/slideshow/show.swf?v=71649"
-			       allowFullScreen="true" flashvars="offsite=true&lang=en-us&page_show_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2Fshow%2F&page_show_back_url=%2Fphotos%2Fhappyherbivore%2Fsets%2F72157623281674644%2F&set_id=72157623281674644&jump_to="
-			       width="500" height="375">
-			</embed>
-		    </object>
-		</div>
-		<div id="samplerecipes">
-		    <h2>Sample Recipes</h2>
-		    <ul>    
-			<li><a href="/recipe/spicy-teriyaki-chickpeas/">Hawaiian BBQ: Teriyaki Chickpeas</a></li>
-			<li><a href="/recipe/chickpea-tacos/">Chickpea Tacos</a></li>
-			<li><a href="/recipe/chocolate-zucchini-muffins/">Chocolate-Zucchini Muffins</a></li>
-			<li><a href="/recipe/soy-free-mac-n-cheese/">Easy Mac 'n Cheese</a></li>
-			<li><a href="/recipe/mock-tuna-salad/">Mock Tuna Salad</a></li>
-			<li><a href="/recipe/vegan-italian-sausages/">Vegan Italian Sausages</a>
-			<li><a href="/recipe/balsamic-portobellos/">Portobello Steaks</a></li>
-			<li><a href="/recipe/pumpkin-raisin-oatmeal-cookies/">Pumpkin-Raisin Oatmeal Cookies</a></li>
-			<li><a href="/recipes/">Want more examples? Click on the "Cookbook" tag on the Recipes page</a></li>
-		    </ul>
-		</div>
-		
-		<div class="clearboth"></div>
-		<div id="testimonals">
-		    <blockquote><p>"The Happy Herbivore Cookbook's low-fat, plant-based
-		    dishes promote health in a delectable and wholesome way. Lindsay
-		    Nixon's recipes are ...simple and flavorful solutions to eat
-		    better for mental and physical health." </p>
-			<p> - <strong>T. Colin Campbell</strong>, PhD, author of The China
-			Study and professor emeritus of Nutritional Biochemistry</p>
-		    </blockquote>
-		    <blockquote><p>"Lindsay's recipes are not just vegan but also low in
-		    fat ... a winning combination for disease prevention and reversal ...
-		    So jump on in and get your feet wet with all the foods you thought you'd
-		    have to put aside to get healthy." </p>
-			<p> - <strong>Neal Barnard</strong>, president, Physicians Committe for Responsible Medicine</p>
-		    </blockquote>
-		    <blockquote><p>"An exciting collection of healthy and delectable vegan dishes." </p>
-			<p> - <strong>Mark Reinfeld</strong>, coauthor of The 30-Minute
-			Vegan series and Vegan Fusion World Cuisine</p>
-		    </blockquote>
-		    <blockquote><p>"The Happy Herbivore Cookbook proves how delicious,
-		    easy, and accessible low-fat vegan food can be." </p>
-			<p> - <strong>Alicia C. Simpson</strong>, author of Quick and
-			Easy Vegan Comfort Food</p>
-		    </blockquote>
-		</div>
-
-<div id='kindleReaderDiv42'></div><script type='text/javascript' src='http://kindleweb.s3.amazonaws.com/app/KindleReader-min.js'></script><script>KindleReader.LoadSample({containerID: 'kindleReaderDiv42', asin: 'B004EPYW8S', width: '880', height: '675'});</script>
-        	<p>&nbsp;</p>
-                <img width="890px" height="556px" src="http://img.happyherbivore.com/cookbook/hh-cookbook-fan-collage.jpg">
-		<div class="clearboth"></div>
-		
-
-	  </div> <!-- End Cookbook -->
-	</div><!-- box_content_body -->
-
-    </div>
-
-<link rel="stylesheet" type="text/css" href="http://css.happyherbivore.com/jquery.lightbox-0.5.css">
-<script type="text/javascript" src="http://js.happyherbivore.com/jquery.lightbox-0.5.js"></script>
-<script type="text/javascript">
-$(function() {
-	$('a.lightbox').lightBox(); // Select all links with lightbox class
-});
-</script>
-{% endblock %}
-
-{% block right_column %}
-{% endblock %}

File article/templates/hhcb-index.html

-<!doctype html>
-<!--[if lt IE 7 ]> <html class="no-js ie6" lang="en"> <![endif]-->
-<!--[if IE 7 ]>    <html class="no-js ie7" lang="en"> <![endif]-->
-<!--[if IE 8 ]>    <html class="no-js ie8" lang="en"> <![endif]-->
-<!--[if (gte IE 9)|!(IE)]><!--> <html class="no-js" lang="en"> <!--<![endif]-->
-<head>
-  <meta charset="utf-8">
-  <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
-
-  <title></title>
-  <meta name="description" content="">
-  <meta name="author" content="">
-
-  <meta name="viewport" content="width=device-width, initial-scale=1.0">
-  <link rel="shortcut icon" href="/favicon.ico">
-  <link rel="apple-touch-icon" href="/apple-touch-icon.png">
-
-  <link rel="stylesheet" href="css/style.css?v=2">
-  <script src="js/libs/modernizr-1.7.min.js"></script>
-
-	      <script type="text/javascript" src="https://www.google.com/jsapi?key=ABQIAAAAHtQa3n-NXW-mufLJ5-R_pRSN_7pkuEmkLeo6xOoOPIdHXm3DixRQkbJPjugrQ14QHwe7qzyHecP69w"></script>
-	      <script type="text/javascript">
-		//google.load("swfobject", "2.2");
-		//google.load("search", "1");
-		google.load("jquery", "1.4.2");
-		//google.load("jqueryui", "1.8.11");
-	      </script>
-
-    <script src="http://johannburkard.de/resources/Johann/jquery.highlight-3.js"></script>
-<script>
-  jQuery.expr[':'].Contains = function(a, i, m) {
-  return jQuery(a).text().toLowerCase().indexOf(m[3].toLowerCase()) >= 0;
-};
-
-var HH = {};
-
-$(function () {
-    $('input').keyup(function () {
-        //alert($('input').val());
-        userinput = $('input').val();
-        if (userinput.length >= 2) {
-            $('ul').removeHighlight();
-            HH.searchcb(userinput);
-        } else if (userinput.length === 0) {
-            $('ul').removeHighlight();
-            // removeHighlight deletes the selected text in sub <li>
-            $('li').show();
-
-
-        }
-    });
-        
-});
-
-HH.searchcb = function (userinput) {
-    $('li').hide();
-    //alert(userinput);
-    $('ul').find(":Contains('" + userinput + "')").show().highlight(userinput);
-
-};