diff --git a/lib/jekyll/draft.rb b/lib/jekyll/draft.rb
index <HASH>..<HASH> 100644
--- a/lib/jekyll/draft.rb
+++ b/lib/jekyll/draft.rb
@@ -13,6 +13,10 @@ module Jekyll
       name =~ MATCHER
     end
 
+    def type
+      :draft
+    end
+
     # Get the full path to the directory containing the draft files
     def containing_dir(source, dir)
       File.join(source, dir, '_drafts')
diff --git a/lib/jekyll/page.rb b/lib/jekyll/page.rb
index <HASH>..<HASH> 100644
--- a/lib/jekyll/page.rb
+++ b/lib/jekyll/page.rb
@@ -30,6 +30,10 @@ module Jekyll
       self.read_yaml(File.join(base, dir), name)
     end
 
+    def type
+      :page
+    end
+
     # The generated directory into which the page will be placed
     # upon generation. This is derived from the permalink or, if
     # permalink is absent, we be '/'
diff --git a/lib/jekyll/post.rb b/lib/jekyll/post.rb
index <HASH>..<HASH> 100644
--- a/lib/jekyll/post.rb
+++ b/lib/jekyll/post.rb
@@ -65,6 +65,10 @@ module Jekyll
       self.populate_tags
     end
 
+    def type
+      :post
+    end
+
     def published?
       if self.data.has_key?('published') && self.data['published'] == false
         false
Add a method to retrieve type to post, page and draft