41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
		
		
			
		
	
	
			41 lines
		
	
	
		
			1.1 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
|  | var _ = require('lodash'); | ||
|  | 
 | ||
|  | module.exports = function createCheatsheetDoc(createDocMessage, renderMarkdown) { | ||
|  |   return { | ||
|  |     $runAfter: ['processing-docs'], | ||
|  |     $runBefore: ['docs-processed'], | ||
|  |     $process: function(docs) { | ||
|  | 
 | ||
|  |       var cheatsheetDoc = { | ||
|  |         id: 'cheatsheet', | ||
|  |         aliases: ['cheatsheet'], | ||
|  |         docType: 'json-data', | ||
|  |         sections: [] | ||
|  |       }; | ||
|  | 
 | ||
|  |       docs = docs.filter(function(doc) { | ||
|  |         if (doc.docType === 'cheatsheet-section') { | ||
|  |           var section = _.pick(doc, ['name', 'description', 'items', 'index']); | ||
|  | 
 | ||
|  |           // Let's make sure that the descriptions are rendered as markdown
 | ||
|  |           section.description = renderMarkdown(section.description); | ||
|  |           section.items.forEach(function(item) { | ||
|  |             item.description = renderMarkdown(item.description); | ||
|  |           }); | ||
|  | 
 | ||
|  | 
 | ||
|  |           cheatsheetDoc.sections.push(section); | ||
|  |           return false; | ||
|  |         } | ||
|  |         return true; | ||
|  |       }); | ||
|  | 
 | ||
|  |       // Sort the sections by their index
 | ||
|  |       cheatsheetDoc.sections.sort(function(a,b) { return a.index - b.index; }); | ||
|  | 
 | ||
|  |       docs.push(cheatsheetDoc); | ||
|  | 
 | ||
|  |       return docs; | ||
|  |     } | ||
|  |   }; | ||
|  | }; |