diff --git a/History.md b/History.md
index a03cbb5..58d4046 100644
--- a/History.md
+++ b/History.md
@@ -1,4 +1,8 @@
+0.0.2 - February 5, 2013
+------------------------
+* mix in metadata
+
0.0.1 - February 4, 2013
------------------------
:sparkles:
\ No newline at end of file
diff --git a/lib/index.js b/lib/index.js
index 8c5fe08..db4e4a9 100644
--- a/lib/index.js
+++ b/lib/index.js
@@ -1,5 +1,6 @@
var consolidate = require('consolidate');
+var defaults = require('defaults');
var each = require('async').each;
/**
@@ -21,10 +22,12 @@ function plugin(opts){
if (!opts.engine) throw new Error('"engine" option required');
return function(files, metalsmith, done){
+ var metadata = metalsmith.metadata();
+
each(Object.keys(files), convert, done);
function convert(file, done){
- var data = files[file];
+ var data = defaults(files[file], metadata);
var template = data.template;
if (!template) return done();
var tmpl = metalsmith.join(opts.dir, template);
diff --git a/package.json b/package.json
index 22f9d54..9faad44 100644
--- a/package.json
+++ b/package.json
@@ -2,16 +2,17 @@
"name": "metalsmith-templates",
"description": "A metalsmith plugin to render files with templates.",
"repository": "git://github.com/segmentio/metalsmith-templates.git",
- "version": "0.0.1",
+ "version": "0.0.2",
"license": "MIT",
"main": "lib/index.js",
"dependencies": {
"consolidate": "~0.10.0",
- "async": "~0.2.10"
+ "async": "~0.2.10",
+ "defaults": "~1.0.0"
},
"devDependencies": {
"mocha": "1.x",
- "metalsmith": "0.0.0",
+ "metalsmith": "0.0.2",
"swig": "~1.3.2",
"assert-dir-equal": "0.0.1"
}
diff --git a/test/fixtures/metadata/build/one.html b/test/fixtures/metadata/build/one.html
new file mode 100644
index 0000000..9e7b8da
--- /dev/null
+++ b/test/fixtures/metadata/build/one.html
@@ -0,0 +1,8 @@
+
+
+ Local Title
+
+
+ one
+
+
\ No newline at end of file
diff --git a/test/fixtures/metadata/build/two.html b/test/fixtures/metadata/build/two.html
new file mode 100644
index 0000000..8316a12
--- /dev/null
+++ b/test/fixtures/metadata/build/two.html
@@ -0,0 +1,8 @@
+
+
+ Global Title
+
+
+ two
+
+
\ No newline at end of file
diff --git a/test/fixtures/metadata/expected/one.html b/test/fixtures/metadata/expected/one.html
new file mode 100644
index 0000000..9e7b8da
--- /dev/null
+++ b/test/fixtures/metadata/expected/one.html
@@ -0,0 +1,8 @@
+
+
+ Local Title
+
+
+ one
+
+
\ No newline at end of file
diff --git a/test/fixtures/metadata/expected/two.html b/test/fixtures/metadata/expected/two.html
new file mode 100644
index 0000000..8316a12
--- /dev/null
+++ b/test/fixtures/metadata/expected/two.html
@@ -0,0 +1,8 @@
+
+
+ Global Title
+
+
+ two
+
+
\ No newline at end of file
diff --git a/test/fixtures/metadata/src/one.html b/test/fixtures/metadata/src/one.html
new file mode 100644
index 0000000..0435b6f
--- /dev/null
+++ b/test/fixtures/metadata/src/one.html
@@ -0,0 +1,6 @@
+---
+title: Local Title
+template: layout.html
+---
+
+one
\ No newline at end of file
diff --git a/test/fixtures/metadata/src/two.html b/test/fixtures/metadata/src/two.html
new file mode 100644
index 0000000..8435ec1
--- /dev/null
+++ b/test/fixtures/metadata/src/two.html
@@ -0,0 +1,5 @@
+---
+template: layout.html
+---
+
+two
\ No newline at end of file
diff --git a/test/fixtures/metadata/templates/layout.html b/test/fixtures/metadata/templates/layout.html
new file mode 100644
index 0000000..f6f2b3d
--- /dev/null
+++ b/test/fixtures/metadata/templates/layout.html
@@ -0,0 +1,8 @@
+
+
+ {{title}}
+
+
+ {{body}}
+
+
\ No newline at end of file
diff --git a/test/index.js b/test/index.js
index 62146f2..a459a72 100644
--- a/test/index.js
+++ b/test/index.js
@@ -24,4 +24,15 @@ describe('metalsmith-templates', function(){
done();
});
});
+
+ it('should mix in global metadata', function(done){
+ Metalsmith('test/fixtures/metadata')
+ .metadata({ title: 'Global Title' })
+ .use(templates({ engine: 'swig' }))
+ .build(function(err){
+ if (err) return done(err);
+ equal('test/fixtures/metadata/expected', 'test/fixtures/metadata/build');
+ done();
+ });
+ });
});
\ No newline at end of file