0.1.8 • Published 10 years ago

assemble-layouts v0.1.8

Weekly downloads
3
License
-
Repository
github
Last release
10 years ago

assemble-layouts NPM version

Assemble plugin for rendering nested template layouts.

Install

Install with npm:

npm i assemble-layouts --save-dev

API

Layouts

Create a new instance of Layouts to generate flattened layout stacks.

Example:

var layouts = new Layouts(options);

Default settings for body regex/delimiters:

var options = {
  delims: ['{{', '}}'],     // start and end delimiters for body tag
  expression: '{{ body }}', // default body tag for empty layouts
  matter: '\\s*body\\s*',   // inner contents of body tag regex
};

Assuming parsedLayouts have been read from the file system and parsed, we can now add them to the layouts cache:

var parsedLayouts = glob.sync('layouts/*.hbs');
parsedLayouts.forEach(function (layout) {
  // `layout` must have at `data` and `content` properties
  layouts.set(layout.name, layout);
});

Render the stack

Render the entire layout stack for a specific page object:

var page = {data: {a: 'b', layout: 'default'}, content: 'Howdy {{name}}!'};
var template = layouts.render(page);

page object

The page object must have data and content properties!

  • options {Object}: global options for how to determine layouts.

.flatten

Flatten the entire layout stack based on the file and options and how the layout stack is defined.

  • file {Object}: object containing data and contents properties.
  • options {Object}: additional options to override global and/or file options

.set

Store a layout.

  • name {String}: name of the layout to store.
  • layout {Object}: object containing data and content properties.

.get

Return a stored layout.

  • name {String}: name of the layout

.createStack

Create a layout stack based on options and layout data. Returned stack is an array with the layouts to use going from the top level parent to the lowest level child.

  • options {Object}: used to determine the layout to use.

.useLayout

Return a valid layout name if one should be used, otherwise, returns null to indicate a layout should not be used.

  • layout {String}: layout to use, or a negative value to not use a layout

Authors

Brian Woodward

Jon Schlinkert

License

Copyright (c) 2014 Brian Woodward, contributors.
Released under the MIT license


This file was generated by verb-cli on July 24, 2014.

0.1.8

10 years ago

0.1.7

10 years ago

0.1.6

10 years ago

0.1.5

10 years ago

0.1.4

10 years ago

0.1.3

10 years ago

0.1.2

10 years ago

0.1.1

10 years ago

0.1.0

10 years ago