33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			33 lines
		
	
	
		
			1.0 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var _ = require('lodash'); | ||
|  | 
 | ||
|  | /** | ||
|  |  * @dgProcessor checkUnbalancedBackTicks | ||
|  |  * @description | ||
|  |  * Searches the rendered content for an odd number of (```) backticks,
 | ||
|  |  * which would indicate an unbalanced pair and potentially a typo in the | ||
|  |  * source content. | ||
|  |  */ | ||
|  | module.exports = function checkUnbalancedBackTicks(log, createDocMessage) { | ||
|  | 
 | ||
|  |   var BACKTICK_REGEX = /^ *```/gm; | ||
|  | 
 | ||
|  |   return { | ||
|  |     // $runAfter: ['checkAnchorLinksProcessor'],
 | ||
|  |     $runAfter: ['inlineTagProcessor'], | ||
|  |     $runBefore: ['writeFilesProcessor'], | ||
|  |     $process: function(docs) { | ||
|  |       _.forEach(docs, function(doc) { | ||
|  |         if (doc.renderedContent) { | ||
|  |           var matches = doc.renderedContent.match(BACKTICK_REGEX); | ||
|  |           if (matches && matches.length % 2 !== 0) { | ||
|  |             doc.unbalancedBackTicks = true; | ||
|  |             log.warn(createDocMessage( | ||
|  |                 'checkUnbalancedBackTicks processor: unbalanced backticks found in rendered content', | ||
|  |                 doc)); | ||
|  |             log.warn(doc.renderedContent); | ||
|  |           } | ||
|  |         } | ||
|  |       }); | ||
|  |     } | ||
|  |   }; | ||
|  | }; |