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