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;
							 |