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