@ithaka/bonsai
Version:
ITHAKA core styling
43 lines (35 loc) • 1.51 kB
JavaScript
let foundationDocsHandlebars = require("foundation-docs").handlebars;
let comparisonHelper = require("handlebars-helpers").comparison();
let fs = require ("fs");
let partials = require("./partialsRegistry");
partials.forEach( partial => {
fs.readFile(`./documentation/partials/${partial}.html`, "utf8", function (err, data) {
foundationDocsHandlebars.registerPartial(partial, data);
});
});
foundationDocsHandlebars.registerHelper(comparisonHelper);
/**
* Mark the output of the formatted Sass value from foundation docs handlebars helper "formatSassValue" as html string:
* - For basic values, return as-is.
* - For maps, render each item in the map on its own line.
* - For undefined values, return "None"
* @param {string} value - Sass value to mark.
* @returns {string} A formatted html safe string.
*/
foundationDocsHandlebars.registerHelper("styleSassValue", function(value) {
let output = foundationDocsHandlebars.helpers.formatSassValue(value);
return new foundationDocsHandlebars.SafeString(output);
});
/**
* Make foundation docs handlebars helper "md" safely handle the case when text is empty or undefined. "md" helper converts Markdown to HTML.
* @param {string} text - Markdown string.
* @returns {string} Converted HTML.
*/
foundationDocsHandlebars.registerHelper('markdown', function(text) {
if (text) {
return foundationDocsHandlebars.helpers.md(text);
} else {
return "";
}
});
module.exports = foundationDocsHandlebars;