48 lines
1.4 KiB
JavaScript
48 lines
1.4 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;
|
||
|
}
|
||
|
};
|
||
|
};
|