UNPKG

html-nest-rule

Version:

nesting rule realization for HTML spec

47 lines (37 loc) 1.32 kB
/** * @file rule for the <a> element * @author nighca<nighca@live.cn> */ var util = require('../util'); module.exports = { tagName: 'a', getCategories: function (element) { return ['flow content', 'phrasing content', 'interactive content', 'palpable content']; }, validateContext: function (element) { var result = []; // IGNORE: context: is - phrasing content return result; }, validateContent: function (element) { var result = []; // content: raw - transparent, but there must be no interactive content descendant // transparent var contentModelParent = util.getContentModelParent(element); var rule = contentModelParent && util.getRule(contentModelParent); if (rule) { result = result.concat(rule.validateContent(element)); } // but there must be no interactive content descendant util.walkDescendants(element, function (descendant) { if (util.isCategory('interactive content', descendant)) { result.push({ expect: 'no interactive content descendant', got: util.nodeInfo(descendant), target: element }); } }); return result; } };