angular-docs-cn/aio/tools/transforms/angular-base-package/processors/convertToJson.js

37 lines
1.0 KiB
JavaScript

module.exports = function convertToJsonProcessor(log, createDocMessage) {
return {
$runAfter: ['checkUnbalancedBackTicks'],
$runBefore: ['writeFilesProcessor'],
docTypes: [],
$process: function(docs) {
const docTypes = this.docTypes;
docs.forEach((doc) => {
if (docTypes.indexOf(doc.docType) !== -1) {
let contents = doc.renderedContent || '';
let title = doc.title;
// We do allow an empty `title` but if it is `undefined` we resort to `vFile.title` and then `name`
if (title === undefined) {
title = (doc.vFile && doc.vFile.title);
}
if (title === undefined) {
title = doc.name;
}
// If there is still no title then log a warning
if (title === undefined) {
title = '';
log.warn(createDocMessage('Title property expected', doc));
}
doc.renderedContent = JSON.stringify({ id: doc.path, title, contents }, null, 2);
}
});
}
};
};