diff --git a/helpers/data.js b/helpers/data.js index e671f72b..c8e168da 100644 --- a/helpers/data.js +++ b/helpers/data.js @@ -70,7 +70,9 @@ module.exports = { getFileContent: function(filePath) { var requirePath = getRequirePath(filePath); - return getFile(requirePath); + return function() { + return getFile(requirePath); + }; }, getTestScriptPath: function(filePath) { @@ -84,32 +86,40 @@ module.exports = { }, getFormattedHtml: function(content) { - var html = prettify.html(content, { - 'indent_char': '\t', - 'indent_size': 1 - }); + return function() { + content = typeof content === 'function' ? content() : content; - return Highlight.highlight('html', html).value; + var html = prettify.html(content, { + 'indent_char': '\t', + 'indent_size': 1 + }); + + return Highlight.highlight('html', html).value; + }; }, getFormattedHandlebars: function(content) { - var usedPartials = this._getUsedPartialsInTemplate(content), - partialContent; + return function() { + content = typeof content === 'function' ? content() : content; - // Look up content of all partials used in the main template - usedPartials = usedPartials.map((partial) => { - partialContent = getFile(path.resolve('./source/', partial + '.hbs')); + var usedPartials = this._getUsedPartialsInTemplate(content), + partialContent; + + // Look up content of all partials used in the main template + usedPartials = usedPartials.map((partial) => { + partialContent = getFile(path.resolve('./source/', partial + '.hbs')); + + return { + name: partial, + content: this._getHighlightedTemplate(partialContent) + }; + }); return { - name: partial, - content: this._getHighlightedTemplate(partialContent) + content: this._getHighlightedTemplate(content), + partials: usedPartials }; - }); - - return { - content: this._getHighlightedTemplate(content), - partials: usedPartials - }; + }.bind(this); }, /** @@ -155,25 +165,33 @@ module.exports = { }, getFormattedJson: function(content) { - var formatted = JSON.stringify(content, null, '\t'); + return function() { + var formatted = JSON.stringify(content, null, '\t'); - return Highlight.highlight('json', formatted).value; + return Highlight.highlight('json', formatted).value; + }; }, getDataMock: function(filePath) { - var requirePath = getRequirePath(filePath), - content = requireNew(requirePath); + var requirePath = getRequirePath(filePath); + + return function() { + var content = requireNew(requirePath); - content = JSON.stringify(content, null, '\t'); + content = JSON.stringify(content, null, '\t'); - return Highlight.highlight('json', content).value; + return Highlight.highlight('json', content).value; + }; }, getDocumentation: function(filePath) { - var requirePath = getRequirePath(filePath), - content = getFile(requirePath); + var requirePath = getRequirePath(filePath); - return marked(content); + return function() { + var content = getFile(requirePath); + + return marked(content); + }; }, getColors: function(filePath) { diff --git a/source/demo/modules/imageversions/imageversions.data.js b/source/demo/modules/imageversions/imageversions.data.js index d2854d95..b0de576f 100644 --- a/source/demo/modules/imageversions/imageversions.data.js +++ b/source/demo/modules/imageversions/imageversions.data.js @@ -23,7 +23,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant diff --git a/source/demo/modules/media/media.data.js b/source/demo/modules/media/media.data.js index 922f10b1..de859707 100644 --- a/source/demo/modules/media/media.data.js +++ b/source/demo/modules/media/media.data.js @@ -23,7 +23,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant diff --git a/source/demo/modules/skiplinks/skiplinks.data.js b/source/demo/modules/skiplinks/skiplinks.data.js index 35b5a85d..f89d6c7c 100644 --- a/source/demo/modules/skiplinks/skiplinks.data.js +++ b/source/demo/modules/skiplinks/skiplinks.data.js @@ -32,7 +32,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant, diff --git a/source/demo/modules/slideshow/slideshow.data.js b/source/demo/modules/slideshow/slideshow.data.js index 76e88378..51ad9c05 100644 --- a/source/demo/modules/slideshow/slideshow.data.js +++ b/source/demo/modules/slideshow/slideshow.data.js @@ -46,7 +46,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant, diff --git a/source/demo/modules/svgsprite/svgsprite.data.js b/source/demo/modules/svgsprite/svgsprite.data.js index eb4b07c2..b7fddb1e 100644 --- a/source/demo/modules/svgsprite/svgsprite.data.js +++ b/source/demo/modules/svgsprite/svgsprite.data.js @@ -48,7 +48,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant diff --git a/source/demo/modules/teaser/teaser.data.js b/source/demo/modules/teaser/teaser.data.js index 28191d5d..85c1dd21 100644 --- a/source/demo/modules/teaser/teaser.data.js +++ b/source/demo/modules/teaser/teaser.data.js @@ -46,7 +46,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant, diff --git a/source/demo/modules/teasers/teasers.data.js b/source/demo/modules/teasers/teasers.data.js index 67b468ec..07f21503 100644 --- a/source/demo/modules/teasers/teasers.data.js +++ b/source/demo/modules/teasers/teasers.data.js @@ -31,7 +31,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant, diff --git a/source/modules/.scaffold/scaffold.data.js b/source/modules/.scaffold/scaffold.data.js index 44d93b37..71b8ff5d 100644 --- a/source/modules/.scaffold/scaffold.data.js +++ b/source/modules/.scaffold/scaffold.data.js @@ -26,7 +26,9 @@ var _ = require('lodash'), } }, function(variant) { var variantProps = _.merge({}, data, variant).props, - compiledVariant = handlebarsHelper.Handlebars.compile(template)(variantProps), + compiledVariant = function() { + return handlebarsHelper.Handlebars.compile(template())(variantProps); + }, variantData = _.merge({}, data, variant, { meta: { demo: compiledVariant,