25 lines
		
	
	
		
			693 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			25 lines
		
	
	
		
			693 B
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| const yaml = require('js-yaml');
 | |
| 
 | |
| module.exports = {
 | |
|   names: ['yaml-linter'],
 | |
|   description: 'YAML code blocks should be valid',
 | |
|   tags: ['yaml'],
 | |
|   function: function rule(params, onError) {
 | |
|     params.tokens
 | |
|       .filter(param => param.type === 'fence')
 | |
|       .filter(param => param.info === 'yml' || param.info === 'yaml')
 | |
|       // TODO since the parser only looks for yml, should we reject yaml blocks?
 | |
|       .forEach(codeBlock => {
 | |
|         try {
 | |
|           yaml.safeLoad(codeBlock.content);
 | |
|         } catch (e) {
 | |
|           onError({
 | |
|             lineNumber: codeBlock.lineNumber,
 | |
|             detail: e.message,
 | |
|             context: codeBlock.line
 | |
|           });
 | |
|         }
 | |
|       });
 | |
|   }
 | |
| };
 |