26 lines
		
	
	
		
			616 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			26 lines
		
	
	
		
			616 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
const markdownlint = require('markdownlint');
 | 
						|
 | 
						|
const lintPrism = require('./markdown-prism');
 | 
						|
const lintYAML = require('./markdown-yaml');
 | 
						|
 | 
						|
function linter(rules) {
 | 
						|
  const lint = (file, next) => {
 | 
						|
    const options = {
 | 
						|
      files: [file.path],
 | 
						|
      config: rules,
 | 
						|
      customRules: [lintYAML, lintPrism]
 | 
						|
    };
 | 
						|
    markdownlint(options, function callback(err, result) {
 | 
						|
      const resultString = (result || '').toString();
 | 
						|
      if (resultString) {
 | 
						|
        process.exitCode = 1;
 | 
						|
        console.log(resultString);
 | 
						|
      }
 | 
						|
      if (next) next(err, file);
 | 
						|
    });
 | 
						|
  };
 | 
						|
  return lint;
 | 
						|
}
 | 
						|
 | 
						|
module.exports = linter;
 |