diff --git a/lib/index.js b/lib/index.js
index b881fc2..530a601 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,10 +1,11 @@
 'use strict';
 
-var jade = require('jade');
+var consolidate = require('consolidate');
 var shortcodes = require('shortcode-parser');
 var debug = require('debug')('metalsmith-shortcodes');
 var each = require('async').each;
 var extend = require('extend');
+var omit = require('lodash.omit');
 var join = require('path').join;
 var match = require('multimatch');
 var fs = require('fs');
@@ -40,8 +41,19 @@ var SHORTCODE_RE = /\[\s*([^\/][A-Za-z0-9\-_]*)/g
 function plugin(opts){
   opts = opts || {};
 
+  var settings = [
+    'directory',
+    'pattern',
+    'engine',
+    'ext'
+  ];
+
   var dir = opts.directory || 'templates';
   var pattern = opts.pattern;
+  var engine = opts.engine || 'jade';
+  var ext = opts.extension || '.jade';
+
+  var consolidateParams = omit(opts, settings);
 
   return function(files, metalsmith, done){
 
@@ -71,7 +83,7 @@ function plugin(opts){
       var codes = [], c
       while (c = SHORTCODE_RE.exec(str)) codes.push(c[1]);
       codes.forEach( function(code){
-        var tmpl = metalsmith.join(dir, code + ".jade")
+        var tmpl = join(dir, code + ext)
         // if (shortcodes._shortcodes[code]) return;  // need shortcodes.has() 
         debug('found shortcode: %s', code);
         try {
@@ -81,8 +93,20 @@ function plugin(opts){
           return;
         }
         shortcodes.add(code, function(buf,attrs,extra){
-          var obj = extend({}, extra, attrs, {innerText: buf.toString()});
-          return jade.renderFile(tmpl, obj);
+          var obj = extend({}, extra, attrs, consolidateParams, metalsmith.metadata(), {innerText: buf.toString()});
+          // very dodgy code to force synchronous execution for consolidate
+          var ret;
+          consolidate[engine](tmpl, obj, function(err, html){
+            if (err) {
+              ret = false;
+              throw err;
+            }
+            ret = html;
+          });
+          while(ret === undefined) {
+            // do nothing
+          }
+          return ret;
         })
       });
       return codes;
diff --git a/package.json b/package.json
index 2fdd25c..97befdf 100644
--- a/package.json
+++ b/package.json
@@ -2,21 +2,23 @@
   "name": "metalsmith-shortcodes",
   "description": "A metalsmith plugin to render wordpress-esque shortcodes via templates.",
   "repository": "git://github.com/ericgj/metalsmith-shortcodes.git",
-  "version": "0.0.2",
+  "version": "0.1.0",
   "author": "Eric Gjertsen",
   "license": "MIT",
   "main": "lib/index.js",
   "dependencies": {
-    "jade": "~1.3.0", 
-    "shortcode-parser": "0.0.1",
-    "async": "~0.2.10",
-    "debug": "~0.7.4",
-    "extend": "~1.2.1",
-    "multimatch": "^0.1.0"
+    "async": "~2.0.0",
+    "consolidate": "^0.14.1",
+    "debug": "~2.2.0",
+    "extend": "~3.0.0",
+    "lodash.omit": "^4.3.0",
+    "multimatch": "^2.1.0",
+    "shortcode-parser": "0.0.1"
   },
   "devDependencies": {
-    "mocha": "1.x",
-    "metalsmith": "0.x",
-    "assert-dir-equal": "0.0.1"
+    "assert-dir-equal": "1.0.1",
+    "jade": "^1.11.0",
+    "metalsmith": "2.x",
+    "mocha": "2.x"
   }
 }