stylelint-sassdoc
Version:
stylelint plugin to check scss files for a valid sassdoc documentation Credits to https://github.com/anneangersbach
44 lines (39 loc) • 1.47 kB
JavaScript
const stylelint = require('stylelint');
const regExCheck = require('../../utils/regExCheck');
const checkCommentsForExample = require('../../utils/checkCommentsForExample');
const ruleName = 'sassdoc/atExample';
const messages = stylelint.utils.ruleMessages(ruleName, {
expected: 'SassDoc: Expected a minimum of one @example.',
});
module.exports = stylelint.createPlugin(ruleName, (actual) => (root, result) => {
const validOptions = stylelint.utils.validateOptions(result, ruleName, {
actual,
});
if (!validOptions) {
return;
}
root.walkAtRules((node) => {
let results = [];
// node is nested in a code block (function, mixin, etc)
// or it is private (params is the name of the mixin)
if (node.parent !== root || node.params[0] === '_') {
return;
}
// parse only atRules that are functions or mixins,
// as the others don't need @example documentation.
if (node.name === 'function' || node.name === 'mixin') {
results = checkCommentsForExample(node);
// return error on missing @example
if (results.length < 1) {
stylelint.utils.report({
message: messages.expected,
node,
result,
ruleName,
});
}
}
});
});
module.exports.ruleName = ruleName;
module.exports.messages = messages;