UNPKG

docpad

Version:

DocPad is a dynamic static site generator. Write your content as files, or import your content from other external sources. Render the content with plugins. And deploy your static or dynamic website to your favourite hosting provider.

67 lines (60 loc) 1.76 kB
// Generated by CoffeeScript 2.5.1 // ===================================== // Requires // External var ElementsCollection, StylesCollection, typeChecker; typeChecker = require('typechecker'); // Local ElementsCollection = require('./elements'); // ===================================== // Classes /** * Styles collection class. A DocPad * project's style (css) file paths * @class StylesCollection * @constructor * @extends ElementsCollection */ StylesCollection = class StylesCollection extends ElementsCollection { /** * Add an element to the collection * Right now we just support strings * @method add * @param {Array} values string array of file paths * @param {Object} opts */ add(values, opts) { var i, key, len, value; // Prepare opts || (opts = {}); opts.attrs || (opts.attrs = ''); // Ensure array if (typeChecker.isArray(values)) { values = values.slice(); } else if (values) { values = [values]; } else { values = []; } // Convert urls into script element html for (key = i = 0, len = values.length; i < len; key = ++i) { value = values[key]; if (typeChecker.isString(value)) { if (value[0] === '<') { continue; // we are an element already, don't bother doing anything } else if (value.indexOf(' ') === -1) { // we are a url values[key] = `<link ${opts.attrs} rel="stylesheet" href="${value}" />`; } else { // we are inline values[key] = `<style ${opts.attrs}>${value}</style>`; } } } // Call the super with our values return super.add(values, opts); } }; // ===================================== // Export module.exports = StylesCollection;