yoastseo
Version:
Yoast client-side content analysis
38 lines (36 loc) • 1.4 kB
JavaScript
;
Object.defineProperty(exports, "__esModule", {
value: true
});
exports.default = _default;
var _getAllWordsFromTree = require("../helpers/word/getAllWordsFromTree");
/**
* @typedef {Object} ParagraphLength
* @property {Paragraph} paragraph The paragraph.
* @property {number} paragraphLength The length of the paragraph.
*/
/**
* Gets all paragraphs and their word counts or character counts from the text.
*
* @param {Paper} paper The paper object to get the text from.
* @param {Researcher} researcher The researcher to use for analysis.
*
* @returns {ParagraphLength[]} The array containing an object with the paragraph word or character count and paragraph text.
*/
function _default(paper, researcher) {
const paragraphs = paper.getTree().findAll(node => node.name === "p");
const paragraphLengths = [];
paragraphs.forEach(paragraph => {
const customLengthHelper = researcher.getHelper("customCountLength");
const tokens = paragraph.sentences.map(sentence => sentence.tokens).flat();
const length = customLengthHelper ? customLengthHelper(paragraph.innerText()) : (0, _getAllWordsFromTree.getWordsFromTokens)(tokens, false).length;
if (length > 0) {
paragraphLengths.push({
paragraph: paragraph,
paragraphLength: length
});
}
});
return paragraphLengths;
}
//# sourceMappingURL=getParagraphLength.js.map