diff --git a/lib/index.js b/lib/index.js index bee9676..7f75bde 100644 --- a/lib/index.js +++ b/lib/index.js @@ -88,8 +88,10 @@ function plugin(opts){ keys.forEach(function(key){ debug('referencing collection: %s', key); + var settings = opts[key]; var col = metadata[key]; var last = col.length - 1; + if (settings.refer === false) return; col.forEach(function(file, i){ if (0 != i) file.previous = col[i-1]; if (last != i) file.next = col[i+1]; diff --git a/test/fixtures/references-off/build/one.md b/test/fixtures/references-off/build/one.md new file mode 100644 index 0000000..d888cd7 --- /dev/null +++ b/test/fixtures/references-off/build/one.md @@ -0,0 +1,2 @@ + +one \ No newline at end of file diff --git a/test/fixtures/references-off/build/three.md b/test/fixtures/references-off/build/three.md new file mode 100644 index 0000000..b57895e --- /dev/null +++ b/test/fixtures/references-off/build/three.md @@ -0,0 +1,2 @@ + +three \ No newline at end of file diff --git a/test/fixtures/references-off/build/two.md b/test/fixtures/references-off/build/two.md new file mode 100644 index 0000000..f12fcfe --- /dev/null +++ b/test/fixtures/references-off/build/two.md @@ -0,0 +1,2 @@ + +two \ No newline at end of file diff --git a/test/fixtures/references-off/src/one.md b/test/fixtures/references-off/src/one.md new file mode 100644 index 0000000..d920332 --- /dev/null +++ b/test/fixtures/references-off/src/one.md @@ -0,0 +1,5 @@ +--- +collection: articles +--- + +one \ No newline at end of file diff --git a/test/fixtures/references-off/src/three.md b/test/fixtures/references-off/src/three.md new file mode 100644 index 0000000..c302318 --- /dev/null +++ b/test/fixtures/references-off/src/three.md @@ -0,0 +1,5 @@ +--- +collection: articles +--- + +three \ No newline at end of file diff --git a/test/fixtures/references-off/src/two.md b/test/fixtures/references-off/src/two.md new file mode 100644 index 0000000..f7cf208 --- /dev/null +++ b/test/fixtures/references-off/src/two.md @@ -0,0 +1,5 @@ +--- +collection: articles +--- + +two \ No newline at end of file diff --git a/test/index.js b/test/index.js index b07cd3c..c4f3adc 100644 --- a/test/index.js +++ b/test/index.js @@ -129,6 +129,23 @@ describe('metalsmith-collections', function(){ }); }); + it('should not add references if opts[key].refer === false', function(done){ + var metalsmith = Metalsmith('test/fixtures/references-off'); + metalsmith + .use(collections({ articles: { refer: false }})) + .build(function(err){ + if (err) return done(err); + var articles = metalsmith.metadata().articles; + assert(!articles[0].previous); + assert(!articles[0].next); + assert(!articles[1].previous); + assert(!articles[1].next); + assert(!articles[2].previous); + assert(!articles[2].next); + done(); + }); + }); + it('should not fail with empty collections', function(done) { var metalsmith = Metalsmith('test/fixtures/empty'); metalsmith