assemble-related-pages

An Assemble plugin for generating lists of related pages.

assemble-related-pages

An Assemble plugin for generating lists of related pages.

Current implementation uses tags, and defines related pages as those that share at least one tag.

For now, this depends on my modified version of Assemble, which supports plugins. Hopefully that makes it into Assemble proper (see my pull request).

First, setup a project with Grunt and Assemble.

Then install the plugin:

npm install --save-dev assemble-related-pages

Add the plugin to your Grunt assemble config:

assemble: {
  options: {
    plugins: [ require('assemble-related-pages')() ]
  },
  pages: {
    src: ['docs/*.hbs'],
    dest: './'
  }
},

Use tags in your pages.

Then, anywhere you like, add something like the following to your layouts and/or pages:

  {{#each page.related}}
    <li>
      <a href="{{relative ../page.dest this.dest}}">{{this.data.title}}</a>
    </li>
  {{/each}}

See example/1/src and the assemble:example_1 task in Gruntfile.js.