assemble-layouts
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 = 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;parsedLayouts;
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;
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 containingdata
andcontents
properties.options
{Object}: additional options to overrideglobal
and/orfile
options
.set
Store a layout.
name
{String}: name of the layout to store.layout
{Object}: object containingdata
andcontent
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.