'use strict';
const { htmlTag, url_for } = require('hexo-util');
const flatten = function(arr, result = []) {
for (const i in arr) {
const value = arr[i];
if (Array.isArray(value)) {
flatten(value, result);
} else {
result.push(value);
}
}
return result;
};
function cssHelper(...args) {
let result = '\n';
flatten(args).forEach(item => {
// Old syntax
if (typeof item === 'string' || item instanceof String) {
let path = item;
if (!path.endsWith('.css')) {
path += '.css';
}
result += `\n`;
} else {
// New syntax
item.href = url_for.call(this, item.href);
if (!item.href.endsWith('.css')) item.href += '.css';
result += htmlTag('link', { rel: 'stylesheet', ...item }) + '\n';
}
});
return result;
}
module.exports = cssHelper;