From 1619160c8addac59b571ba9adaa54b3edb4a1b52 Mon Sep 17 00:00:00 2001 From: Pete Bacon Darwin Date: Tue, 13 Mar 2018 11:24:05 +0000 Subject: [PATCH] build(aio): implement rules to prevent headings in content (#22759) * No headings are allowed in `description` and `shortDescription` * Only heading level 3 is allowed in `usageNotes` PR Close #22759 --- .../transforms/angular-api-package/index.js | 18 ++++++++++++++++++ 1 file changed, 18 insertions(+) diff --git a/aio/tools/transforms/angular-api-package/index.js b/aio/tools/transforms/angular-api-package/index.js index 043b3c50c9..79216b41fe 100644 --- a/aio/tools/transforms/angular-api-package/index.js +++ b/aio/tools/transforms/angular-api-package/index.js @@ -119,6 +119,24 @@ module.exports = new Package('angular-api', [basePackage, typeScriptPackage]) addNotYetDocumentedProperty.docTypes = API_DOC_TYPES; }) + .config(function(checkContentRules, EXPORT_DOC_TYPES) { + const createNoMarkdownHeadings = require('./content-rules/noMarkdownHeadings'); + const noMarkdownHeadings = createNoMarkdownHeadings(); + const allowOnlyLevel3Headings = createNoMarkdownHeadings(1, 2, '4,'); + const DOC_TYPES_TO_CHECK = EXPORT_DOC_TYPES.concat(['member', 'overload-info']); + const PROPS_TO_CHECK = ['description', 'shortDescription']; + + DOC_TYPES_TO_CHECK.forEach(docType => { + const ruleSet = checkContentRules.docTypeRules[docType] = checkContentRules.docTypeRules[docType] || {}; + PROPS_TO_CHECK.forEach(prop => { + const rules = ruleSet[prop] = ruleSet[prop] || []; + rules.push(noMarkdownHeadings); + }); + const rules = ruleSet['usageNotes'] = ruleSet['usageNotes'] || []; + rules.push(allowOnlyLevel3Headings); + }); + }) + .config(function(computePathsProcessor, EXPORT_DOC_TYPES, generateApiListDoc) { const API_SEGMENT = 'api';