47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
			
		
		
	
	
			47 lines
		
	
	
		
			1.5 KiB
		
	
	
	
		
			JavaScript
		
	
	
	
	
	
| var _ = require('lodash');
 | |
| 
 | |
| module.exports = function createCheatsheetDoc(createDocMessage, renderMarkdown, versionInfo, targetEnvironments) {
 | |
|   return {
 | |
|     $runAfter: ['processing-docs'],
 | |
|     $runBefore: ['docs-processed'],
 | |
|     $process: function(docs) {
 | |
| 
 | |
|       var currentEnvironment = targetEnvironments.isActive('ts') && 'TypeScript' ||
 | |
|                                targetEnvironments.isActive('js') && 'JavaScript' ||
 | |
|                                targetEnvironments.isActive('dart') && 'Dart';
 | |
| 
 | |
|       var cheatsheetDoc = {
 | |
|         id: 'cheatsheet',
 | |
|         aliases: ['cheatsheet'],
 | |
|         docType: 'cheatsheet-data',
 | |
|         sections: [],
 | |
|         version: versionInfo,
 | |
|         currentEnvironment: currentEnvironment
 | |
|       };
 | |
| 
 | |
|       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;
 | |
|     }
 | |
|   };
 | |
| }; |