axyseo 2.0.0-alpha.0.0.4 → 2.0.0-alpha.0.0.6
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +5 -2
- package/.browserslistrc +0 -1
- package/.gitattributes +0 -1
- package/babel.config.js +0 -3
- package/eslint.config.mjs +0 -119
- package/src/bundledPlugins/index.js +0 -5
- package/src/bundledPlugins/previouslyUsedKeywords.js +0 -192
- package/src/config/diacritics.js +0 -106
- package/src/config/getTransliterations.js +0 -1447
- package/src/config/transliterationsWPstyle.js +0 -774
- package/src/config/wordBoundaries.js +0 -23
- package/src/config/wordBoundariesWithoutPunctuation.js +0 -9
- package/src/const/analysis.js +0 -41
- package/src/errors/invalidType.js +0 -14
- package/src/errors/missingArgument.js +0 -14
- package/src/helpers/createMeasurementElement.js +0 -40
- package/src/helpers/domManipulation.js +0 -65
- package/src/helpers/errors.js +0 -26
- package/src/helpers/factory.js +0 -219
- package/src/helpers/formatNumber.js +0 -12
- package/src/helpers/formatString.js +0 -33
- package/src/helpers/getLanguagesWithWordComplexity.js +0 -8
- package/src/helpers/getLanguagesWithWordFormSupport.js +0 -11
- package/src/helpers/getWordComplexityConfig.js +0 -20
- package/src/helpers/getWordComplexityHelper.js +0 -20
- package/src/helpers/htmlEntities.js +0 -41
- package/src/helpers/includesAny.js +0 -19
- package/src/helpers/index.js +0 -127
- package/src/helpers/shortlinker/Shortlinker.js +0 -75
- package/src/helpers/shortlinker/index.js +0 -1
- package/src/helpers/shortlinker/singleton.js +0 -68
- package/src/helpers/types.js +0 -34
- package/src/index.js +0 -60
- package/src/languageProcessing/AbstractResearcher.js +0 -366
- package/src/languageProcessing/helpers/highlighting/getMarkingsInSentence.js +0 -125
- package/src/languageProcessing/helpers/html/getFieldsToMark.js +0 -29
- package/src/languageProcessing/helpers/html/getSubheadingTexts.js +0 -47
- package/src/languageProcessing/helpers/html/getSubheadings.js +0 -95
- package/src/languageProcessing/helpers/html/html.js +0 -176
- package/src/languageProcessing/helpers/html/htmlParser.js +0 -145
- package/src/languageProcessing/helpers/html/matchParagraphs.js +0 -62
- package/src/languageProcessing/helpers/html/normalizeHTML.js +0 -16
- package/src/languageProcessing/helpers/image/getAltAttribute.js +0 -20
- package/src/languageProcessing/helpers/image/getImagesInTree.js +0 -16
- package/src/languageProcessing/helpers/image/imageInText.js +0 -19
- package/src/languageProcessing/helpers/index.js +0 -12
- package/src/languageProcessing/helpers/language/getLanguage.js +0 -9
- package/src/languageProcessing/helpers/link/checkNofollow.js +0 -38
- package/src/languageProcessing/helpers/link/getAnchorsFromText.js +0 -32
- package/src/languageProcessing/helpers/link/getLinkType.js +0 -32
- package/src/languageProcessing/helpers/match/findKeywordFormsInString.js +0 -101
- package/src/languageProcessing/helpers/match/isDoubleQuoted.js +0 -13
- package/src/languageProcessing/helpers/match/matchTextWithArray.js +0 -36
- package/src/languageProcessing/helpers/match/matchTextWithTransliteration.js +0 -58
- package/src/languageProcessing/helpers/match/matchTextWithWord.js +0 -45
- package/src/languageProcessing/helpers/match/matchWordFormsWithSentence.js +0 -164
- package/src/languageProcessing/helpers/match/processExactMatchRequest.js +0 -20
- package/src/languageProcessing/helpers/morphology/baseStemmer.js +0 -11
- package/src/languageProcessing/helpers/morphology/buildFormRule.js +0 -19
- package/src/languageProcessing/helpers/morphology/buildTopicStems.js +0 -169
- package/src/languageProcessing/helpers/morphology/createRulesFromArrays.js +0 -45
- package/src/languageProcessing/helpers/morphology/exceptionListHelpers.js +0 -65
- package/src/languageProcessing/helpers/morphology/findMatchingEndingInArray.js +0 -24
- package/src/languageProcessing/helpers/morphology/flattenSortLength.js +0 -14
- package/src/languageProcessing/helpers/morphology/getAllWordsFromPaper.js +0 -39
- package/src/languageProcessing/helpers/morphology/regexHelpers.js +0 -44
- package/src/languageProcessing/helpers/morphology/stemHelpers.js +0 -38
- package/src/languageProcessing/helpers/morphology/stemPrefixedFunctionWords.js +0 -31
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/directPrecedenceException.js +0 -36
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/getClausesSplitOnStopWords.js +0 -113
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/freeAuxiliaryParticipleOrder/nonDirectParticiplePrecedenceException.js +0 -45
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/getClauses.js +0 -231
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/getIndicesWithRegex.js +0 -20
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/matchRegularParticiples.js +0 -23
- package/src/languageProcessing/helpers/passiveVoice/periphrastic/precedenceException.js +0 -40
- package/src/languageProcessing/helpers/prominentWords/determineProminentWords.js +0 -238
- package/src/languageProcessing/helpers/regex/createRegexFromArray.js +0 -35
- package/src/languageProcessing/helpers/regex/createRegexFromDoubleArray.js +0 -34
- package/src/languageProcessing/helpers/regex/createWordRegex.js +0 -30
- package/src/languageProcessing/helpers/regex/matchStringWithRegex.js +0 -19
- package/src/languageProcessing/helpers/regex/searchAndReplaceWithOneRegex.js +0 -14
- package/src/languageProcessing/helpers/sanitize/doubleQuotes.js +0 -12
- package/src/languageProcessing/helpers/sanitize/filterShortcodesFromTree.js +0 -131
- package/src/languageProcessing/helpers/sanitize/mergeListItems.js +0 -24
- package/src/languageProcessing/helpers/sanitize/parseSynonyms.js +0 -20
- package/src/languageProcessing/helpers/sanitize/quotes.js +0 -46
- package/src/languageProcessing/helpers/sanitize/removeEmailAddresses.js +0 -12
- package/src/languageProcessing/helpers/sanitize/removePunctuation.js +0 -64
- package/src/languageProcessing/helpers/sanitize/removePunctuationExceptQuotes.js +0 -18
- package/src/languageProcessing/helpers/sanitize/removeSentenceTerminators.js +0 -13
- package/src/languageProcessing/helpers/sanitize/removeURLs.js +0 -13
- package/src/languageProcessing/helpers/sanitize/sanitizeLineBreakTag.js +0 -11
- package/src/languageProcessing/helpers/sanitize/sanitizeString.js +0 -18
- package/src/languageProcessing/helpers/sanitize/stripHTMLTags.js +0 -57
- package/src/languageProcessing/helpers/sanitize/stripNonTextTags.js +0 -15
- package/src/languageProcessing/helpers/sanitize/stripNumbers.js +0 -21
- package/src/languageProcessing/helpers/sanitize/stripSpaces.js +0 -23
- package/src/languageProcessing/helpers/sanitize/stripWordBoundaries.js +0 -65
- package/src/languageProcessing/helpers/sanitize/unifyWhitespace.js +0 -61
- package/src/languageProcessing/helpers/sentence/SentenceTokenizer.js +0 -640
- package/src/languageProcessing/helpers/sentence/countSentences.js +0 -20
- package/src/languageProcessing/helpers/sentence/getSentences.js +0 -65
- package/src/languageProcessing/helpers/sentence/getSentencesFromTree.js +0 -55
- package/src/languageProcessing/helpers/sentence/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/helpers/sentence/sentencesLength.js +0 -31
- package/src/languageProcessing/helpers/syllables/DeviationFragment.js +0 -112
- package/src/languageProcessing/helpers/syllables/countSyllables.js +0 -182
- package/src/languageProcessing/helpers/syllables/syllableCountIterator.js +0 -56
- package/src/languageProcessing/helpers/syllables/syllableCountStep.js +0 -68
- package/src/languageProcessing/helpers/transform/transformWordsWithHyphens.js +0 -17
- package/src/languageProcessing/helpers/transliterate/replaceDiacritics.js +0 -22
- package/src/languageProcessing/helpers/transliterate/specialCharacterMappings.js +0 -214
- package/src/languageProcessing/helpers/transliterate/transliterate.js +0 -20
- package/src/languageProcessing/helpers/transliterate/transliterateWPstyle.js +0 -21
- package/src/languageProcessing/helpers/url/parseSlug.js +0 -10
- package/src/languageProcessing/helpers/url/url.js +0 -172
- package/src/languageProcessing/helpers/word/addWordboundary.js +0 -37
- package/src/languageProcessing/helpers/word/areWordsInSentence.js +0 -16
- package/src/languageProcessing/helpers/word/countMetaDescriptionLength.js +0 -18
- package/src/languageProcessing/helpers/word/countWords.js +0 -14
- package/src/languageProcessing/helpers/word/createPunctuationTokens.js +0 -42
- package/src/languageProcessing/helpers/word/filterWordsFromArray.js +0 -15
- package/src/languageProcessing/helpers/word/followsIndex.js +0 -25
- package/src/languageProcessing/helpers/word/getAllWordsFromTree.js +0 -23
- package/src/languageProcessing/helpers/word/getWords.js +0 -43
- package/src/languageProcessing/helpers/word/includesIndex.js +0 -30
- package/src/languageProcessing/helpers/word/indices.js +0 -146
- package/src/languageProcessing/helpers/word/markWordsInSentences.js +0 -173
- package/src/languageProcessing/helpers/word/matchWordInSentence.js +0 -61
- package/src/languageProcessing/helpers/word/splitIntoTokens.js +0 -46
- package/src/languageProcessing/index.js +0 -91
- package/src/languageProcessing/languages/_default/Researcher.js +0 -34
- package/src/languageProcessing/languages/_default/helpers/getStemmer.js +0 -11
- package/src/languageProcessing/languages/ar/Researcher.js +0 -46
- package/src/languageProcessing/languages/ar/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/ar/config/functionWords.js +0 -329
- package/src/languageProcessing/languages/ar/config/internal/passiveVerbsWithLongVowel.js +0 -570
- package/src/languageProcessing/languages/ar/config/prefixedFunctionWords.js +0 -5
- package/src/languageProcessing/languages/ar/config/transitionWords.js +0 -19
- package/src/languageProcessing/languages/ar/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/ar/helpers/createBasicWordForms.js +0 -32
- package/src/languageProcessing/languages/ar/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/ar/helpers/internal/stem.js +0 -632
- package/src/languageProcessing/languages/ar/helpers/isPassiveSentence.js +0 -33
- package/src/languageProcessing/languages/ca/Researcher.js +0 -43
- package/src/languageProcessing/languages/ca/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/ca/config/transitionWords.js +0 -31
- package/src/languageProcessing/languages/ca/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/ca/helpers/getStemmer.js +0 -11
- package/src/languageProcessing/languages/cs/Researcher.js +0 -44
- package/src/languageProcessing/languages/cs/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/cs/config/functionWords.js +0 -121
- package/src/languageProcessing/languages/cs/config/internal/passiveVoiceAuxiliaries.js +0 -38
- package/src/languageProcessing/languages/cs/config/internal/passiveVoiceEndings.js +0 -54
- package/src/languageProcessing/languages/cs/config/stopWords.js +0 -42
- package/src/languageProcessing/languages/cs/config/transitionWords.js +0 -26
- package/src/languageProcessing/languages/cs/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/cs/helpers/getClauses.js +0 -26
- package/src/languageProcessing/languages/cs/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/cs/helpers/internal/getParticiples.js +0 -16
- package/src/languageProcessing/languages/cs/helpers/internal/stem.js +0 -499
- package/src/languageProcessing/languages/cs/values/Clause.js +0 -34
- package/src/languageProcessing/languages/de/Researcher.js +0 -52
- package/src/languageProcessing/languages/de/config/firstWordExceptions.js +0 -17
- package/src/languageProcessing/languages/de/config/functionWords.js +0 -303
- package/src/languageProcessing/languages/de/config/internal/exceptionsParticiplesActive.js +0 -2231
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceAuxiliaries.js +0 -96
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceIrregulars.js +0 -368
- package/src/languageProcessing/languages/de/config/internal/passiveVoiceRegex.js +0 -72
- package/src/languageProcessing/languages/de/config/keyphraseLength.js +0 -11
- package/src/languageProcessing/languages/de/config/stopWords.js +0 -67
- package/src/languageProcessing/languages/de/config/syllables.json +0 -460
- package/src/languageProcessing/languages/de/config/transitionWords.js +0 -31
- package/src/languageProcessing/languages/de/config/twoPartTransitionWords.js +0 -12
- package/src/languageProcessing/languages/de/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/de/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/de/helpers/checkIfWordIsComplex.js +0 -40
- package/src/languageProcessing/languages/de/helpers/checkIfWordIsFunction.js +0 -15
- package/src/languageProcessing/languages/de/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/de/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/de/helpers/internal/SentenceTokenizer.js +0 -31
- package/src/languageProcessing/languages/de/helpers/internal/detectAndStemRegularParticiple.js +0 -128
- package/src/languageProcessing/languages/de/helpers/internal/determineStem.js +0 -128
- package/src/languageProcessing/languages/de/helpers/internal/getParticiples.js +0 -40
- package/src/languageProcessing/languages/de/helpers/internal/stem.js +0 -215
- package/src/languageProcessing/languages/de/helpers/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/languages/de/values/Clause.js +0 -85
- package/src/languageProcessing/languages/el/Researcher.js +0 -46
- package/src/languageProcessing/languages/el/config/firstWordExceptions.js +0 -47
- package/src/languageProcessing/languages/el/config/functionWords.js +0 -116
- package/src/languageProcessing/languages/el/config/internal/auxiliaries.js +0 -19
- package/src/languageProcessing/languages/el/config/internal/morphologicalPassiveSuffixes.js +0 -87
- package/src/languageProcessing/languages/el/config/internal/nonPassiveVerbStems.js +0 -138
- package/src/languageProcessing/languages/el/config/stopWords.js +0 -854
- package/src/languageProcessing/languages/el/config/transitionWords.js +0 -26
- package/src/languageProcessing/languages/el/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/el/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/el/helpers/getStemmer.js +0 -21
- package/src/languageProcessing/languages/el/helpers/internal/getParticiples.js +0 -20
- package/src/languageProcessing/languages/el/helpers/internal/stem.js +0 -368
- package/src/languageProcessing/languages/el/helpers/isPassiveSentence.js +0 -38
- package/src/languageProcessing/languages/el/values/Clause.js +0 -37
- package/src/languageProcessing/languages/en/Researcher.js +0 -46
- package/src/languageProcessing/languages/en/config/abbreviations.js +0 -55
- package/src/languageProcessing/languages/en/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/en/config/functionWords.js +0 -186
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceAuxiliaries.js +0 -44
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceIrregulars.js +0 -354
- package/src/languageProcessing/languages/en/config/internal/passiveVoiceNonVerbEndingEd.js +0 -3047
- package/src/languageProcessing/languages/en/config/regularParticiplesRegex.js +0 -5
- package/src/languageProcessing/languages/en/config/stopWords.js +0 -52
- package/src/languageProcessing/languages/en/config/syllables.json +0 -86
- package/src/languageProcessing/languages/en/config/transitionWords.js +0 -48
- package/src/languageProcessing/languages/en/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/en/config/wordComplexity.js +0 -5
- package/src/languageProcessing/languages/en/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/en/helpers/checkIfWordIsComplex.js +0 -43
- package/src/languageProcessing/languages/en/helpers/getClauses.js +0 -49
- package/src/languageProcessing/languages/en/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/en/helpers/internal/determineStem.js +0 -178
- package/src/languageProcessing/languages/en/helpers/internal/getAdjectiveStem.js +0 -162
- package/src/languageProcessing/languages/en/helpers/internal/getParticiples.js +0 -25
- package/src/languageProcessing/languages/en/helpers/internal/getVerbStem.js +0 -237
- package/src/languageProcessing/languages/en/values/Clause.js +0 -68
- package/src/languageProcessing/languages/es/Researcher.js +0 -48
- package/src/languageProcessing/languages/es/config/firstWordExceptions.js +0 -16
- package/src/languageProcessing/languages/es/config/functionWords.js +0 -321
- package/src/languageProcessing/languages/es/config/internal/passiveVoiceAuxiliaries.js +0 -60
- package/src/languageProcessing/languages/es/config/internal/passiveVoiceParticiples.js +0 -7327
- package/src/languageProcessing/languages/es/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/es/config/stopWords.js +0 -33
- package/src/languageProcessing/languages/es/config/syllables.json +0 -176
- package/src/languageProcessing/languages/es/config/transitionWords.js +0 -40
- package/src/languageProcessing/languages/es/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/es/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/es/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/es/helpers/checkIfWordIsComplex.js +0 -56
- package/src/languageProcessing/languages/es/helpers/getClauses.js +0 -29
- package/src/languageProcessing/languages/es/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/es/helpers/internal/checkVerbStemModifications.js +0 -41
- package/src/languageProcessing/languages/es/helpers/internal/getParticiples.js +0 -35
- package/src/languageProcessing/languages/es/helpers/internal/stem.js +0 -793
- package/src/languageProcessing/languages/es/values/Clause.js +0 -47
- package/src/languageProcessing/languages/fa/Researcher.js +0 -47
- package/src/languageProcessing/languages/fa/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/fa/config/functionWords.js +0 -122
- package/src/languageProcessing/languages/fa/config/internal/participles.js +0 -1429
- package/src/languageProcessing/languages/fa/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/fa/config/transitionWords.js +0 -20
- package/src/languageProcessing/languages/fa/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/fa/helpers/createBasicWordForms.js +0 -97
- package/src/languageProcessing/languages/fa/helpers/getStemmer.js +0 -13
- package/src/languageProcessing/languages/fa/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/fr/Researcher.js +0 -46
- package/src/languageProcessing/languages/fr/config/firstWordExceptions.js +0 -16
- package/src/languageProcessing/languages/fr/config/functionWords.js +0 -281
- package/src/languageProcessing/languages/fr/config/internal/exceptionsParticiplesActive.js +0 -1510
- package/src/languageProcessing/languages/fr/config/internal/passiveVoiceAuxiliaries.js +0 -108
- package/src/languageProcessing/languages/fr/config/internal/passiveVoiceIrregulars.js +0 -565
- package/src/languageProcessing/languages/fr/config/stopWords.js +0 -119
- package/src/languageProcessing/languages/fr/config/syllables.json +0 -1426
- package/src/languageProcessing/languages/fr/config/transitionWords.js +0 -59
- package/src/languageProcessing/languages/fr/config/twoPartTransitionWords.js +0 -15
- package/src/languageProcessing/languages/fr/config/wordComplexity.js +0 -4
- package/src/languageProcessing/languages/fr/helpers/calculateFleschReadingScore.js +0 -18
- package/src/languageProcessing/languages/fr/helpers/checkIfWordIsComplex.js +0 -67
- package/src/languageProcessing/languages/fr/helpers/getClauses.js +0 -34
- package/src/languageProcessing/languages/fr/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/fr/helpers/internal/getParticiples.js +0 -72
- package/src/languageProcessing/languages/fr/helpers/internal/stem.js +0 -633
- package/src/languageProcessing/languages/fr/values/Clause.js +0 -96
- package/src/languageProcessing/languages/he/Researcher.js +0 -50
- package/src/languageProcessing/languages/he/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/he/config/functionWords.js +0 -564
- package/src/languageProcessing/languages/he/config/internal/regularRootsHufal.js +0 -186
- package/src/languageProcessing/languages/he/config/internal/regularRootsNifal.js +0 -195
- package/src/languageProcessing/languages/he/config/internal/regularRootsPual.js +0 -168
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsHufal.js +0 -188
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsNifal.js +0 -197
- package/src/languageProcessing/languages/he/config/passiveVoice/regularRootsPual.js +0 -170
- package/src/languageProcessing/languages/he/config/prefixedFunctionWords.js +0 -2
- package/src/languageProcessing/languages/he/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/he/config/transitionWords.js +0 -28
- package/src/languageProcessing/languages/he/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/he/helpers/createBasicWordForms.js +0 -33
- package/src/languageProcessing/languages/he/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/he/helpers/internal/stem.js +0 -52
- package/src/languageProcessing/languages/he/helpers/isPassiveSentence.js +0 -96
- package/src/languageProcessing/languages/he/helpers/stem.js +0 -52
- package/src/languageProcessing/languages/hu/Researcher.js +0 -48
- package/src/languageProcessing/languages/hu/config/firstWordExceptions.js +0 -31
- package/src/languageProcessing/languages/hu/config/functionWords.js +0 -284
- package/src/languageProcessing/languages/hu/config/internal/auxiliaries.js +0 -97
- package/src/languageProcessing/languages/hu/config/internal/morphologicalPassiveAffixes.js +0 -125
- package/src/languageProcessing/languages/hu/config/internal/nonPassivesInVaAndVe.js +0 -265
- package/src/languageProcessing/languages/hu/config/internal/odikVerbs.js +0 -273
- package/src/languageProcessing/languages/hu/config/internal/participles.js +0 -412
- package/src/languageProcessing/languages/hu/config/stopWords.js +0 -213
- package/src/languageProcessing/languages/hu/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/hu/config/twoPartTransitionWords.js +0 -34
- package/src/languageProcessing/languages/hu/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/hu/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/hu/helpers/internal/getParticiples.js +0 -21
- package/src/languageProcessing/languages/hu/helpers/internal/stem.js +0 -389
- package/src/languageProcessing/languages/hu/helpers/isPassiveSentence.js +0 -54
- package/src/languageProcessing/languages/hu/values/Clause.js +0 -41
- package/src/languageProcessing/languages/id/Researcher.js +0 -46
- package/src/languageProcessing/languages/id/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/id/config/functionWords.js +0 -202
- package/src/languageProcessing/languages/id/config/internal/nonPassiveVerbsStartingDi.js +0 -215
- package/src/languageProcessing/languages/id/config/transitionWords.js +0 -62
- package/src/languageProcessing/languages/id/config/twoPartTransitionWords.js +0 -13
- package/src/languageProcessing/languages/id/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/id/helpers/internal/stem.js +0 -462
- package/src/languageProcessing/languages/id/helpers/internal/stemHelpers.js +0 -78
- package/src/languageProcessing/languages/id/helpers/isPassiveSentence.js +0 -39
- package/src/languageProcessing/languages/id/helpers/splitIntoTokensCustom.js +0 -47
- package/src/languageProcessing/languages/it/Researcher.js +0 -48
- package/src/languageProcessing/languages/it/config/firstWordExceptions.js +0 -17
- package/src/languageProcessing/languages/it/config/functionWords.js +0 -277
- package/src/languageProcessing/languages/it/config/internal/passiveVoiceAuxiliaries.js +0 -98
- package/src/languageProcessing/languages/it/config/internal/passiveVoiceParticiples.js +0 -7197
- package/src/languageProcessing/languages/it/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/it/config/stopWords.js +0 -57
- package/src/languageProcessing/languages/it/config/syllables.json +0 -573
- package/src/languageProcessing/languages/it/config/transitionWords.js +0 -104
- package/src/languageProcessing/languages/it/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/it/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/it/helpers/getClauses.js +0 -32
- package/src/languageProcessing/languages/it/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/it/helpers/internal/getParticiples.js +0 -34
- package/src/languageProcessing/languages/it/helpers/internal/stem.js +0 -436
- package/src/languageProcessing/languages/it/values/Clause.js +0 -47
- package/src/languageProcessing/languages/ja/Researcher.js +0 -86
- package/src/languageProcessing/languages/ja/config/assessmentApplicabilityCharacterCount.js +0 -4
- package/src/languageProcessing/languages/ja/config/firstWordExceptions.js +0 -8
- package/src/languageProcessing/languages/ja/config/functionWords.js +0 -563
- package/src/languageProcessing/languages/ja/config/keyphraseLength.js +0 -16
- package/src/languageProcessing/languages/ja/config/metaDescriptionLength.js +0 -4
- package/src/languageProcessing/languages/ja/config/paragraphLength.js +0 -10
- package/src/languageProcessing/languages/ja/config/sentenceLength.js +0 -4
- package/src/languageProcessing/languages/ja/config/subheadingsTooLong.js +0 -18
- package/src/languageProcessing/languages/ja/config/textLength.js +0 -47
- package/src/languageProcessing/languages/ja/config/topicLength.js +0 -5
- package/src/languageProcessing/languages/ja/config/transitionWords.js +0 -354
- package/src/languageProcessing/languages/ja/customResearches/findKeyphraseInSEOTitle.js +0 -98
- package/src/languageProcessing/languages/ja/customResearches/getKeyphraseLength.js +0 -19
- package/src/languageProcessing/languages/ja/customResearches/getWordForms.js +0 -50
- package/src/languageProcessing/languages/ja/customResearches/textLength.js +0 -24
- package/src/languageProcessing/languages/ja/helpers/countCharacters.js +0 -19
- package/src/languageProcessing/languages/ja/helpers/customGetStemmer.js +0 -21
- package/src/languageProcessing/languages/ja/helpers/getContentWords.js +0 -21
- package/src/languageProcessing/languages/ja/helpers/getWords.js +0 -31
- package/src/languageProcessing/languages/ja/helpers/internal/SentenceTokenizer.js +0 -102
- package/src/languageProcessing/languages/ja/helpers/internal/createWordForms.js +0 -68
- package/src/languageProcessing/languages/ja/helpers/internal/determineStem.js +0 -17
- package/src/languageProcessing/languages/ja/helpers/matchTextWithWord.js +0 -53
- package/src/languageProcessing/languages/ja/helpers/matchTransitionWords.js +0 -25
- package/src/languageProcessing/languages/ja/helpers/memoizedSentenceTokenizer.js +0 -28
- package/src/languageProcessing/languages/ja/helpers/splitIntoTokensCustom.js +0 -20
- package/src/languageProcessing/languages/ja/helpers/wordsCharacterCount.js +0 -13
- package/src/languageProcessing/languages/nb/Researcher.js +0 -45
- package/src/languageProcessing/languages/nb/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/nb/config/functionWords.js +0 -106
- package/src/languageProcessing/languages/nb/config/internal/participles.js +0 -3127
- package/src/languageProcessing/languages/nb/config/internal/passiveVoiceAuxiliaries.js +0 -15
- package/src/languageProcessing/languages/nb/config/stopWords.js +0 -39
- package/src/languageProcessing/languages/nb/config/transitionWords.js +0 -21
- package/src/languageProcessing/languages/nb/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/nb/helpers/getClauses.js +0 -28
- package/src/languageProcessing/languages/nb/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/nb/helpers/internal/getParticiples.js +0 -24
- package/src/languageProcessing/languages/nb/helpers/internal/stem.js +0 -133
- package/src/languageProcessing/languages/nb/values/Clause.js +0 -43
- package/src/languageProcessing/languages/nl/Researcher.js +0 -48
- package/src/languageProcessing/languages/nl/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/nl/config/functionWords.js +0 -233
- package/src/languageProcessing/languages/nl/config/internal/nonParticiples.js +0 -2515
- package/src/languageProcessing/languages/nl/config/internal/passiveVoiceAuxiliaries.js +0 -13
- package/src/languageProcessing/languages/nl/config/internal/passiveVoiceIrregulars.js +0 -474
- package/src/languageProcessing/languages/nl/config/keyphraseLength.js +0 -10
- package/src/languageProcessing/languages/nl/config/stopWords.js +0 -35
- package/src/languageProcessing/languages/nl/config/syllables.json +0 -343
- package/src/languageProcessing/languages/nl/config/transitionWords.js +0 -22
- package/src/languageProcessing/languages/nl/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/nl/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/nl/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/nl/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/nl/helpers/internal/checkExceptionsWithFullForms.js +0 -128
- package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemRegularParticiple.js +0 -324
- package/src/languageProcessing/languages/nl/helpers/internal/detectAndStemSuffixes.js +0 -164
- package/src/languageProcessing/languages/nl/helpers/internal/determineStem.js +0 -133
- package/src/languageProcessing/languages/nl/helpers/internal/getParticiples.js +0 -25
- package/src/languageProcessing/languages/nl/helpers/internal/getStemWordsWithTAndDEnding.js +0 -183
- package/src/languageProcessing/languages/nl/helpers/internal/stem.js +0 -146
- package/src/languageProcessing/languages/nl/helpers/internal/stemModificationHelpers.js +0 -109
- package/src/languageProcessing/languages/nl/helpers/internal/stemTOrDFromEndOfWord.js +0 -65
- package/src/languageProcessing/languages/nl/values/Clause.js +0 -62
- package/src/languageProcessing/languages/pl/Researcher.js +0 -47
- package/src/languageProcessing/languages/pl/config/firstWordExceptions.js +0 -12
- package/src/languageProcessing/languages/pl/config/functionWords.js +0 -421
- package/src/languageProcessing/languages/pl/config/internal/auxiliaries.js +0 -85
- package/src/languageProcessing/languages/pl/config/internal/participles.js +0 -26433
- package/src/languageProcessing/languages/pl/config/sentenceLength.js +0 -10
- package/src/languageProcessing/languages/pl/config/stopWords.js +0 -36
- package/src/languageProcessing/languages/pl/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/pl/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/pl/helpers/getClauses.js +0 -25
- package/src/languageProcessing/languages/pl/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/pl/helpers/internal/getParticiples.js +0 -18
- package/src/languageProcessing/languages/pl/helpers/internal/stem.js +0 -161
- package/src/languageProcessing/languages/pl/values/Clause.js +0 -53
- package/src/languageProcessing/languages/pt/Researcher.js +0 -48
- package/src/languageProcessing/languages/pt/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/pt/config/functionWords.js +0 -226
- package/src/languageProcessing/languages/pt/config/internal/passiveVoiceAuxiliaries.js +0 -66
- package/src/languageProcessing/languages/pt/config/internal/passiveVoiceParticiples.js +0 -4088
- package/src/languageProcessing/languages/pt/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/pt/config/stopWords.js +0 -50
- package/src/languageProcessing/languages/pt/config/syllables.json +0 -38
- package/src/languageProcessing/languages/pt/config/transitionWords.js +0 -34
- package/src/languageProcessing/languages/pt/config/twoPartTransitionWords.js +0 -9
- package/src/languageProcessing/languages/pt/helpers/calculateFleschReadingScore.js +0 -15
- package/src/languageProcessing/languages/pt/helpers/getClauses.js +0 -29
- package/src/languageProcessing/languages/pt/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/pt/helpers/internal/getParticiples.js +0 -35
- package/src/languageProcessing/languages/pt/helpers/internal/stem.js +0 -319
- package/src/languageProcessing/languages/pt/values/Clause.js +0 -43
- package/src/languageProcessing/languages/ru/Researcher.js +0 -48
- package/src/languageProcessing/languages/ru/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/ru/config/fleschReadingEaseScores.js +0 -20
- package/src/languageProcessing/languages/ru/config/functionWords.js +0 -519
- package/src/languageProcessing/languages/ru/config/internal/participlesShortenedList.js +0 -2914
- package/src/languageProcessing/languages/ru/config/internal/passiveVoiceParticiples.js +0 -6295
- package/src/languageProcessing/languages/ru/config/sentenceLength.js +0 -3
- package/src/languageProcessing/languages/ru/config/syllables.json +0 -19
- package/src/languageProcessing/languages/ru/config/transitionWords.js +0 -62
- package/src/languageProcessing/languages/ru/config/twoPartTransitionWords.js +0 -14
- package/src/languageProcessing/languages/ru/helpers/calculateFleschReadingScore.js +0 -16
- package/src/languageProcessing/languages/ru/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/ru/helpers/internal/stem.js +0 -288
- package/src/languageProcessing/languages/ru/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/sk/Researcher.js +0 -46
- package/src/languageProcessing/languages/sk/config/firstWordExceptions.js +0 -14
- package/src/languageProcessing/languages/sk/config/functionWords.js +0 -855
- package/src/languageProcessing/languages/sk/config/internal/nonPassives.js +0 -1074
- package/src/languageProcessing/languages/sk/config/internal/passiveVoiceAuxiliaries.js +0 -22
- package/src/languageProcessing/languages/sk/config/stopWords.js +0 -34
- package/src/languageProcessing/languages/sk/config/transitionWords.js +0 -23
- package/src/languageProcessing/languages/sk/config/twoPartTransitionWords.js +0 -10
- package/src/languageProcessing/languages/sk/helpers/getClauses.js +0 -26
- package/src/languageProcessing/languages/sk/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/sk/helpers/internal/getParticiples.js +0 -16
- package/src/languageProcessing/languages/sk/helpers/internal/stem.js +0 -319
- package/src/languageProcessing/languages/sk/values/Clause.js +0 -39
- package/src/languageProcessing/languages/sv/Researcher.js +0 -45
- package/src/languageProcessing/languages/sv/config/firstWordExceptions.js +0 -15
- package/src/languageProcessing/languages/sv/config/functionWords.js +0 -176
- package/src/languageProcessing/languages/sv/config/internal/passiveVerbs.js +0 -10400
- package/src/languageProcessing/languages/sv/config/keyphraseLength.js +0 -11
- package/src/languageProcessing/languages/sv/config/transitionWords.js +0 -35
- package/src/languageProcessing/languages/sv/config/twoPartTransitionWords.js +0 -8
- package/src/languageProcessing/languages/sv/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/sv/helpers/internal/stem.js +0 -152
- package/src/languageProcessing/languages/sv/helpers/isPassiveSentence.js +0 -14
- package/src/languageProcessing/languages/tr/Researcher.js +0 -44
- package/src/languageProcessing/languages/tr/config/firstWordExceptions.js +0 -13
- package/src/languageProcessing/languages/tr/config/functionWords.js +0 -116
- package/src/languageProcessing/languages/tr/config/internal/nonPassiveExceptions.js +0 -574
- package/src/languageProcessing/languages/tr/config/internal/passiveEndings.js +0 -151
- package/src/languageProcessing/languages/tr/config/sentenceLength.js +0 -7
- package/src/languageProcessing/languages/tr/config/transitionWords.js +0 -42
- package/src/languageProcessing/languages/tr/config/twoPartTransitionWords.js +0 -7
- package/src/languageProcessing/languages/tr/helpers/getStemmer.js +0 -22
- package/src/languageProcessing/languages/tr/helpers/internal/stem.js +0 -20
- package/src/languageProcessing/languages/tr/helpers/isPassiveSentence.js +0 -43
- package/src/languageProcessing/researches/altTagCount.js +0 -70
- package/src/languageProcessing/researches/countSentencesFromText.js +0 -19
- package/src/languageProcessing/researches/findKeyphraseInSEOTitle.js +0 -257
- package/src/languageProcessing/researches/findKeywordInFirstParagraph.js +0 -86
- package/src/languageProcessing/researches/findTransitionWords.js +0 -123
- package/src/languageProcessing/researches/functionWordsInKeyphrase.js +0 -44
- package/src/languageProcessing/researches/getAnchorsWithKeyphrase.js +0 -227
- package/src/languageProcessing/researches/getFleschReadingScore.js +0 -150
- package/src/languageProcessing/researches/getKeywordDensity.js +0 -44
- package/src/languageProcessing/researches/getLinkStatistics.js +0 -54
- package/src/languageProcessing/researches/getLinks.js +0 -18
- package/src/languageProcessing/researches/getLongCenterAlignedTexts.js +0 -37
- package/src/languageProcessing/researches/getParagraphLength.js +0 -44
- package/src/languageProcessing/researches/getParagraphs.js +0 -18
- package/src/languageProcessing/researches/getPassiveVoiceResult.js +0 -129
- package/src/languageProcessing/researches/getProminentWordsForInsights.js +0 -48
- package/src/languageProcessing/researches/getProminentWordsForInternalLinking.js +0 -119
- package/src/languageProcessing/researches/getSentenceBeginnings.js +0 -124
- package/src/languageProcessing/researches/getSubheadingTextLengths.js +0 -59
- package/src/languageProcessing/researches/getWordForms.js +0 -204
- package/src/languageProcessing/researches/h1s.js +0 -10
- package/src/languageProcessing/researches/imageCount.js +0 -16
- package/src/languageProcessing/researches/index.js +0 -5
- package/src/languageProcessing/researches/keyphraseDistribution.js +0 -249
- package/src/languageProcessing/researches/keyphraseLength.js +0 -17
- package/src/languageProcessing/researches/keywordCount.js +0 -134
- package/src/languageProcessing/researches/keywordCountInUrl.js +0 -57
- package/src/languageProcessing/researches/matchKeywordInSubheadings.js +0 -62
- package/src/languageProcessing/researches/metaDescriptionKeyword.js +0 -85
- package/src/languageProcessing/researches/metaDescriptionLength.js +0 -12
- package/src/languageProcessing/researches/pageTitleWidth.js +0 -11
- package/src/languageProcessing/researches/readingTime.js +0 -82
- package/src/languageProcessing/researches/sentences.js +0 -20
- package/src/languageProcessing/researches/videoCount.js +0 -32
- package/src/languageProcessing/researches/wordComplexity.js +0 -129
- package/src/languageProcessing/researches/wordCountInText.js +0 -29
- package/src/languageProcessing/values/Clause.js +0 -108
- package/src/languageProcessing/values/ProminentWord.js +0 -95
- package/src/languageProcessing/values/Sentence.js +0 -111
- package/src/languageProcessing/values/index.js +0 -9
- package/src/markers/addMark.js +0 -9
- package/src/markers/addMarkSingleWord.js +0 -32
- package/src/markers/index.js +0 -7
- package/src/markers/removeDuplicateMarks.js +0 -27
- package/src/markers/removeMarks.js +0 -11
- package/src/parse/build/build.js +0 -52
- package/src/parse/build/index.js +0 -10
- package/src/parse/build/private/adapt.js +0 -113
- package/src/parse/build/private/adaptAttributes.js +0 -36
- package/src/parse/build/private/alwaysFilterElements.js +0 -75
- package/src/parse/build/private/combineIntoImplicitParagraphs.js +0 -130
- package/src/parse/build/private/filterBeforeTokenizing.js +0 -32
- package/src/parse/build/private/filterHelpers.js +0 -44
- package/src/parse/build/private/filterTree.js +0 -42
- package/src/parse/build/private/getTextElementPositions.js +0 -184
- package/src/parse/build/private/helpers/parseClassAttribute.js +0 -9
- package/src/parse/build/private/isPhrasingContent.js +0 -28
- package/src/parse/build/private/parseBlocks.js +0 -151
- package/src/parse/build/private/tokenize.js +0 -74
- package/src/parse/language/LanguageProcessor.js +0 -74
- package/src/parse/structure/Heading.js +0 -26
- package/src/parse/structure/Node.js +0 -69
- package/src/parse/structure/Paragraph.js +0 -48
- package/src/parse/structure/Sentence.js +0 -30
- package/src/parse/structure/SourceCodeLocation.js +0 -41
- package/src/parse/structure/Text.js +0 -27
- package/src/parse/structure/Token.js +0 -24
- package/src/parse/structure/index.js +0 -16
- package/src/parse/traverse/findAllInTree.js +0 -58
- package/src/parse/traverse/index.js +0 -12
- package/src/parse/traverse/innerText.js +0 -26
- package/src/parsedPaper/ParsedPaper.js +0 -92
- package/src/parsedPaper/assess/TreeAssessor.js +0 -184
- package/src/parsedPaper/assess/assessmentListFactories.js +0 -73
- package/src/parsedPaper/assess/assessments/Assessment.js +0 -79
- package/src/parsedPaper/assess/assessments/index.js +0 -6
- package/src/parsedPaper/assess/assessorFactories.js +0 -104
- package/src/parsedPaper/assess/cornerstone/assessmentListFactories.js +0 -47
- package/src/parsedPaper/assess/cornerstone/index.js +0 -5
- package/src/parsedPaper/assess/index.js +0 -20
- package/src/parsedPaper/build/PaperParser.js +0 -105
- package/src/parsedPaper/build/linguisticParsing/Sentence.js +0 -89
- package/src/parsedPaper/build/linguisticParsing/SentenceTokenizer.js +0 -323
- package/src/parsedPaper/build/linguisticParsing/parseText.js +0 -20
- package/src/parsedPaper/build/tree/TreeBuilder.js +0 -75
- package/src/parsedPaper/build/tree/cleanup/calculateTextIndices.js +0 -190
- package/src/parsedPaper/build/tree/cleanup/getElementContent.js +0 -21
- package/src/parsedPaper/build/tree/cleanup/postParsing.js +0 -37
- package/src/parsedPaper/build/tree/html/HTMLTreeConverter.js +0 -230
- package/src/parsedPaper/build/tree/html/buildTree.js +0 -31
- package/src/parsedPaper/build/tree/html/htmlConstants.js +0 -37
- package/src/parsedPaper/build/tree/index.js +0 -14
- package/src/parsedPaper/build/tree/metadata/buildTree.js +0 -32
- package/src/parsedPaper/research/TreeResearcher.js +0 -134
- package/src/parsedPaper/research/index.js +0 -13
- package/src/parsedPaper/research/researches/Headings.js +0 -20
- package/src/parsedPaper/research/researches/LinkStatistics.js +0 -128
- package/src/parsedPaper/research/researches/Research.js +0 -50
- package/src/parsedPaper/research/researches/index.js +0 -1
- package/src/parsedPaper/structure/tree/FormattingElement.js +0 -67
- package/src/parsedPaper/structure/tree/SourceCodeLocation.js +0 -31
- package/src/parsedPaper/structure/tree/TextContainer.js +0 -85
- package/src/parsedPaper/structure/tree/index.js +0 -22
- package/src/parsedPaper/structure/tree/nodes/Heading.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/LeafNode.js +0 -75
- package/src/parsedPaper/structure/tree/nodes/List.js +0 -47
- package/src/parsedPaper/structure/tree/nodes/ListItem.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/MetadataMiscellaneous.js +0 -46
- package/src/parsedPaper/structure/tree/nodes/MetadataText.js +0 -26
- package/src/parsedPaper/structure/tree/nodes/Node.js +0 -154
- package/src/parsedPaper/structure/tree/nodes/Paragraph.js +0 -24
- package/src/parsedPaper/structure/tree/nodes/StructuredNode.js +0 -52
- package/src/parsedPaper/structure/tree/nodes/index.js +0 -21
- package/src/scoring/assessments/assessment.js +0 -63
- package/src/scoring/assessments/index.js +0 -58
- package/src/scoring/assessments/readability/ParagraphTooLongAssessment.js +0 -173
- package/src/scoring/assessments/readability/SentenceBeginningsAssessment.js +0 -132
- package/src/scoring/assessments/readability/SentenceLengthInTextAssessment.js +0 -186
- package/src/scoring/assessments/readability/TransitionWordsAssessment.js +0 -168
- package/src/scoring/assessments/seo/ImageCountAssessment.js +0 -112
- package/src/scoring/assessments/seo/InternalLinksAssessment.js +0 -114
- package/src/scoring/assessments/seo/IntroductionKeywordAssessment.js +0 -110
- package/src/scoring/assessments/seo/KeyphraseAssessment.js +0 -104
- package/src/scoring/assessments/seo/KeyphraseLengthAssessment.js +0 -110
- package/src/scoring/assessments/seo/KeywordDensityAssessment.js +0 -116
- package/src/scoring/assessments/seo/MetaDescriptionKeywordAssessment.js +0 -114
- package/src/scoring/assessments/seo/MetaDescriptionLengthAssessment.js +0 -112
- package/src/scoring/assessments/seo/MetaTitleKeywordAssessment.js +0 -111
- package/src/scoring/assessments/seo/NumberInMetaTitleAssessment.js +0 -107
- package/src/scoring/assessments/seo/OutboundLinksAssessment.js +0 -111
- package/src/scoring/assessments/seo/PageTitleWidthAssessment.js +0 -104
- package/src/scoring/assessments/seo/SingleH1Assessment.js +0 -118
- package/src/scoring/assessments/seo/SingleTitleAssessment.js +0 -108
- package/src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js +0 -107
- package/src/scoring/assessments/seo/TextImagesAssessment.js +0 -144
- package/src/scoring/assessments/seo/TextLengthAssessment.js +0 -100
- package/src/scoring/assessments/seo/UrlKeywordAssessment.js +0 -111
- package/src/scoring/assessments/seo/UrlLengthAssessment.js +0 -103
- package/src/scoring/assessors/assessor.js +0 -269
- package/src/scoring/assessors/avadaAssessor.js +0 -67
- package/src/scoring/assessors/contentAssessor.js +0 -159
- package/src/scoring/assessors/index.js +0 -4
- package/src/scoring/assessors/seoAssessor.js +0 -57
- package/src/scoring/helpers/assessments/checkForTooLongSentences.js +0 -13
- package/src/scoring/helpers/assessments/inRange.js +0 -49
- package/src/scoring/helpers/assessments/keyphraseLengthFactor.js +0 -10
- package/src/scoring/helpers/assessments/recommendedKeywordCount.js +0 -43
- package/src/scoring/helpers/index.js +0 -74
- package/src/scoring/interpreters/index.js +0 -5
- package/src/scoring/interpreters/scoreToRating.js +0 -31
- package/src/scoring/renderers/AssessorPresenter.js +0 -360
- package/src/scoring/scoreAggregators/ReadabilityScoreAggregator.js +0 -203
- package/src/scoring/scoreAggregators/SEOScoreAggregator.js +0 -54
- package/src/scoring/scoreAggregators/ScoreAggregator.js +0 -23
- package/src/scoring/scoreAggregators/index.js +0 -3
- package/src/values/AssessmentResult.js +0 -496
- package/src/values/Mark.js +0 -271
- package/src/values/Paper.js +0 -425
- package/src/values/index.js +0 -9
- package/src/vendor/turkishStemmer.js +0 -3435
- package/tsconfig.json +0 -15
|
@@ -1,366 +0,0 @@
|
|
|
1
|
-
import {merge, isUndefined, isEmpty} from 'lodash';
|
|
2
|
-
|
|
3
|
-
import InvalidTypeError from '../errors/invalidType';
|
|
4
|
-
import MissingArgument from '../errors/missingArgument';
|
|
5
|
-
|
|
6
|
-
// All researches in alphabetical order.
|
|
7
|
-
import altTagCount from './researches/altTagCount.js';
|
|
8
|
-
import countSentencesFromText from './researches/countSentencesFromText.js';
|
|
9
|
-
import findKeywordInFirstParagraph from './researches/findKeywordInFirstParagraph.js';
|
|
10
|
-
import findKeyphraseInSEOTitle from './researches/findKeyphraseInSEOTitle';
|
|
11
|
-
import findTransitionWords from './researches/findTransitionWords';
|
|
12
|
-
import functionWordsInKeyphrase from './researches/functionWordsInKeyphrase';
|
|
13
|
-
import getAnchorsWithKeyphrase from './researches/getAnchorsWithKeyphrase';
|
|
14
|
-
import getFleschReadingScore from './researches/getFleschReadingScore';
|
|
15
|
-
import getKeyphraseDensity, {getKeywordDensity} from './researches/getKeywordDensity.js';
|
|
16
|
-
import getLinks from './researches/getLinks.js';
|
|
17
|
-
import getLinkStatistics from './researches/getLinkStatistics';
|
|
18
|
-
import getParagraphs from './researches/getParagraphs';
|
|
19
|
-
import getParagraphLength from './researches/getParagraphLength.js';
|
|
20
|
-
import getPassiveVoiceResult from './researches/getPassiveVoiceResult';
|
|
21
|
-
import getProminentWordsForInsights from './researches/getProminentWordsForInsights';
|
|
22
|
-
import getProminentWordsForInternalLinking from './researches/getProminentWordsForInternalLinking';
|
|
23
|
-
import getSentenceBeginnings from './researches/getSentenceBeginnings';
|
|
24
|
-
import getSubheadingTextLengths from './researches/getSubheadingTextLengths.js';
|
|
25
|
-
import h1s from './researches/h1s';
|
|
26
|
-
import imageCount from './researches/imageCount.js';
|
|
27
|
-
import keyphraseLength from './researches/keyphraseLength';
|
|
28
|
-
import getKeyphraseCount, {keywordCount} from './researches/keywordCount';
|
|
29
|
-
import {keywordCountInSlug, keywordCountInUrl} from './researches/keywordCountInUrl';
|
|
30
|
-
import matchKeywordInSubheadings from './researches/matchKeywordInSubheadings';
|
|
31
|
-
import metaDescriptionKeyword from './researches/metaDescriptionKeyword';
|
|
32
|
-
import metaDescriptionLength from './researches/metaDescriptionLength.js';
|
|
33
|
-
import morphology from './researches/getWordForms';
|
|
34
|
-
import pageTitleWidth from './researches/pageTitleWidth.js';
|
|
35
|
-
import readingTime from './researches/readingTime';
|
|
36
|
-
import sentences from './researches/sentences';
|
|
37
|
-
import videoCount from './researches/videoCount';
|
|
38
|
-
import wordCountInText from './researches/wordCountInText.js';
|
|
39
|
-
|
|
40
|
-
// All helpers.
|
|
41
|
-
import memoizedTokenizer from './helpers/sentence/memoizedSentenceTokenizer';
|
|
42
|
-
|
|
43
|
-
/**
|
|
44
|
-
* The researcher contains all the researches, helpers, data, and config.
|
|
45
|
-
*/
|
|
46
|
-
export default class AbstractResearcher {
|
|
47
|
-
/**
|
|
48
|
-
* Constructor
|
|
49
|
-
* @param {Paper} paper The Paper object that is needed within the researches.
|
|
50
|
-
*
|
|
51
|
-
* @constructor
|
|
52
|
-
*/
|
|
53
|
-
constructor(paper) {
|
|
54
|
-
this.paper = paper;
|
|
55
|
-
|
|
56
|
-
// We expose the deprecated keywordCountInUrl for backwards compatibility.
|
|
57
|
-
this.defaultResearches = {
|
|
58
|
-
altTagCount,
|
|
59
|
-
countSentencesFromText,
|
|
60
|
-
findKeywordInFirstParagraph,
|
|
61
|
-
findKeyphraseInSEOTitle,
|
|
62
|
-
findTransitionWords,
|
|
63
|
-
functionWordsInKeyphrase,
|
|
64
|
-
getAnchorsWithKeyphrase,
|
|
65
|
-
getFleschReadingScore,
|
|
66
|
-
getKeyphraseCount,
|
|
67
|
-
getKeyphraseDensity,
|
|
68
|
-
getKeywordDensity,
|
|
69
|
-
getLinks,
|
|
70
|
-
getLinkStatistics,
|
|
71
|
-
getParagraphs,
|
|
72
|
-
getParagraphLength,
|
|
73
|
-
getProminentWordsForInsights,
|
|
74
|
-
getProminentWordsForInternalLinking,
|
|
75
|
-
getSentenceBeginnings,
|
|
76
|
-
getSubheadingTextLengths,
|
|
77
|
-
h1s,
|
|
78
|
-
imageCount,
|
|
79
|
-
keyphraseLength,
|
|
80
|
-
keywordCount,
|
|
81
|
-
keywordCountInSlug,
|
|
82
|
-
keywordCountInUrl,
|
|
83
|
-
matchKeywordInSubheadings,
|
|
84
|
-
metaDescriptionKeyword,
|
|
85
|
-
metaDescriptionLength,
|
|
86
|
-
morphology,
|
|
87
|
-
pageTitleWidth,
|
|
88
|
-
readingTime,
|
|
89
|
-
sentences,
|
|
90
|
-
wordCountInText,
|
|
91
|
-
videoCount,
|
|
92
|
-
getPassiveVoiceResult
|
|
93
|
-
};
|
|
94
|
-
|
|
95
|
-
this._data = {};
|
|
96
|
-
|
|
97
|
-
this.customResearches = {};
|
|
98
|
-
|
|
99
|
-
this.helpers = {
|
|
100
|
-
memoizedTokenizer
|
|
101
|
-
};
|
|
102
|
-
|
|
103
|
-
this.config = {
|
|
104
|
-
areHyphensWordBoundaries: true
|
|
105
|
-
};
|
|
106
|
-
}
|
|
107
|
-
|
|
108
|
-
/**
|
|
109
|
-
* Set the Paper associated with the Researcher.
|
|
110
|
-
*
|
|
111
|
-
* @param {Paper} paper The Paper to use within the Researcher.
|
|
112
|
-
*
|
|
113
|
-
* @throws {InvalidTypeError} Parameter needs to be an instance of the Paper object.
|
|
114
|
-
*
|
|
115
|
-
* @returns {void}
|
|
116
|
-
*/
|
|
117
|
-
setPaper(paper) {
|
|
118
|
-
this.paper = paper;
|
|
119
|
-
}
|
|
120
|
-
|
|
121
|
-
/**
|
|
122
|
-
* Add a custom research that will be available within the Researcher.
|
|
123
|
-
*
|
|
124
|
-
* @param {string} name A name to reference the research by.
|
|
125
|
-
* @param {function} research The function to be added to the Researcher.
|
|
126
|
-
*
|
|
127
|
-
* @throws {MissingArgument} Research name cannot be empty.
|
|
128
|
-
* @throws {InvalidTypeError} The research requires a valid Function callback.
|
|
129
|
-
*
|
|
130
|
-
* @returns {void}
|
|
131
|
-
*/
|
|
132
|
-
addResearch(name, research) {
|
|
133
|
-
if (isUndefined(name) || isEmpty(name)) {
|
|
134
|
-
throw new MissingArgument('Research name cannot be empty');
|
|
135
|
-
}
|
|
136
|
-
|
|
137
|
-
if (!(research instanceof Function)) {
|
|
138
|
-
throw new InvalidTypeError('The research requires a Function callback.');
|
|
139
|
-
}
|
|
140
|
-
|
|
141
|
-
this.customResearches[name] = research;
|
|
142
|
-
}
|
|
143
|
-
|
|
144
|
-
/**
|
|
145
|
-
* Add research data to the researcher by the research name.
|
|
146
|
-
*
|
|
147
|
-
* @param {string} research The identifier of the research.
|
|
148
|
-
* @param {Object} data The data object.
|
|
149
|
-
*
|
|
150
|
-
* @returns {void}.
|
|
151
|
-
*/
|
|
152
|
-
addResearchData(research, data) {
|
|
153
|
-
this._data[research] = data;
|
|
154
|
-
}
|
|
155
|
-
|
|
156
|
-
/**
|
|
157
|
-
* Add a custom helper that will be available within the Researcher.
|
|
158
|
-
*
|
|
159
|
-
* @param {string} name A name to reference the helper by.
|
|
160
|
-
* @param {function} helper The function to be added to the Researcher.
|
|
161
|
-
*
|
|
162
|
-
* @throws {MissingArgument} Helper name cannot be empty.
|
|
163
|
-
* @throws {InvalidTypeError} The helper requires a valid Function callback.
|
|
164
|
-
*
|
|
165
|
-
* @returns {void}
|
|
166
|
-
*/
|
|
167
|
-
addHelper(name, helper) {
|
|
168
|
-
if (isUndefined(name) || isEmpty(name)) {
|
|
169
|
-
throw new MissingArgument('Helper name cannot be empty');
|
|
170
|
-
}
|
|
171
|
-
|
|
172
|
-
if (!(helper instanceof Function)) {
|
|
173
|
-
throw new InvalidTypeError('The research requires a Function callback.');
|
|
174
|
-
}
|
|
175
|
-
|
|
176
|
-
this.helpers[name] = helper;
|
|
177
|
-
}
|
|
178
|
-
|
|
179
|
-
/**
|
|
180
|
-
* Add a custom configuration that will be available within the Researcher.
|
|
181
|
-
*
|
|
182
|
-
* @param {string} name A name to reference the helper by.
|
|
183
|
-
* @param {*} config The configuration to be added to the Researcher.
|
|
184
|
-
*
|
|
185
|
-
* @throws {MissingArgument} Configuration name and the configuration itself cannot be empty.
|
|
186
|
-
*
|
|
187
|
-
* @returns {void}
|
|
188
|
-
*/
|
|
189
|
-
addConfig(name, config) {
|
|
190
|
-
if (isUndefined(name) || isEmpty(name)) {
|
|
191
|
-
throw new MissingArgument(
|
|
192
|
-
'Failed to add the custom researcher config. Config name cannot be empty.'
|
|
193
|
-
);
|
|
194
|
-
}
|
|
195
|
-
|
|
196
|
-
if (isUndefined(config) || (isEmpty(config) && config === Object(config))) {
|
|
197
|
-
throw new MissingArgument(
|
|
198
|
-
'Failed to add the custom researcher config. Config cannot be empty.'
|
|
199
|
-
);
|
|
200
|
-
}
|
|
201
|
-
|
|
202
|
-
this.config[name] = config;
|
|
203
|
-
}
|
|
204
|
-
|
|
205
|
-
/**
|
|
206
|
-
* Check whether the research is known by the Researcher.
|
|
207
|
-
*
|
|
208
|
-
* @param {string} name The name to reference the research by.
|
|
209
|
-
*
|
|
210
|
-
* @returns {boolean} Whether or not the research is known by the Researcher.
|
|
211
|
-
*/
|
|
212
|
-
hasResearch(name) {
|
|
213
|
-
return (
|
|
214
|
-
Object.keys(this.getAvailableResearches()).filter(function(research) {
|
|
215
|
-
return research === name;
|
|
216
|
-
}).length > 0
|
|
217
|
-
);
|
|
218
|
-
}
|
|
219
|
-
|
|
220
|
-
/**
|
|
221
|
-
* Check whether the helper is known by the Researcher.
|
|
222
|
-
*
|
|
223
|
-
* @param {string} name The name to reference the helper by.
|
|
224
|
-
*
|
|
225
|
-
* @returns {boolean} Whether or not the helper is known by the Researcher.
|
|
226
|
-
*/
|
|
227
|
-
hasHelper(name) {
|
|
228
|
-
return (
|
|
229
|
-
Object.keys(this.getAvailableHelpers()).filter(function(helper) {
|
|
230
|
-
return helper === name;
|
|
231
|
-
}).length > 0
|
|
232
|
-
);
|
|
233
|
-
}
|
|
234
|
-
|
|
235
|
-
/**
|
|
236
|
-
* Check whether the config is known by the Researcher.
|
|
237
|
-
*
|
|
238
|
-
* @param {string} name The name to reference the config by.
|
|
239
|
-
*
|
|
240
|
-
* @returns {boolean} Whether or not the config is known by the Researcher.
|
|
241
|
-
*/
|
|
242
|
-
hasConfig(name) {
|
|
243
|
-
return (
|
|
244
|
-
Object.keys(this.getAvailableConfig()).filter(function(config) {
|
|
245
|
-
return config === name;
|
|
246
|
-
}).length > 0
|
|
247
|
-
);
|
|
248
|
-
}
|
|
249
|
-
|
|
250
|
-
/**
|
|
251
|
-
* Check whether the research data is known by the Researcher.
|
|
252
|
-
*
|
|
253
|
-
* @param {string} name The name to reference the research data by.
|
|
254
|
-
*
|
|
255
|
-
* @returns {boolean} Whether or not the research data is known by the Researcher.
|
|
256
|
-
*/
|
|
257
|
-
hasResearchData(name) {
|
|
258
|
-
return (
|
|
259
|
-
Object.keys(this.getAvailableResearchData()).filter(function(data) {
|
|
260
|
-
return data === name;
|
|
261
|
-
}).length > 0
|
|
262
|
-
);
|
|
263
|
-
}
|
|
264
|
-
|
|
265
|
-
/**
|
|
266
|
-
* Return all available researches.
|
|
267
|
-
*
|
|
268
|
-
* @returns {Object} An object containing all available researches.
|
|
269
|
-
*/
|
|
270
|
-
getAvailableResearches() {
|
|
271
|
-
return merge(this.defaultResearches, this.customResearches);
|
|
272
|
-
}
|
|
273
|
-
|
|
274
|
-
/**
|
|
275
|
-
* Return all available helpers.
|
|
276
|
-
*
|
|
277
|
-
* @returns {Object} An object containing all available helpers.
|
|
278
|
-
*/
|
|
279
|
-
getAvailableHelpers() {
|
|
280
|
-
return this.helpers;
|
|
281
|
-
}
|
|
282
|
-
|
|
283
|
-
/**
|
|
284
|
-
* Return all available configuration.
|
|
285
|
-
*
|
|
286
|
-
* @returns {Object} An object containing all available configuration.
|
|
287
|
-
*/
|
|
288
|
-
getAvailableConfig() {
|
|
289
|
-
return this.config;
|
|
290
|
-
}
|
|
291
|
-
|
|
292
|
-
/**
|
|
293
|
-
* Return all available research data.
|
|
294
|
-
*
|
|
295
|
-
* @returns {Object} An object containing all available research data.
|
|
296
|
-
*/
|
|
297
|
-
getAvailableResearchData() {
|
|
298
|
-
return this._data;
|
|
299
|
-
}
|
|
300
|
-
|
|
301
|
-
/**
|
|
302
|
-
* Return the Research by name.
|
|
303
|
-
*
|
|
304
|
-
* @param {string} name The name to reference the research by.
|
|
305
|
-
*
|
|
306
|
-
* @returns {*} Returns the result of the research or false if research does not exist.
|
|
307
|
-
*
|
|
308
|
-
* @throws {MissingArgument} Research name cannot be empty.
|
|
309
|
-
*/
|
|
310
|
-
getResearch(name) {
|
|
311
|
-
if (isUndefined(name) || isEmpty(name)) {
|
|
312
|
-
throw new MissingArgument('Research name cannot be empty');
|
|
313
|
-
}
|
|
314
|
-
|
|
315
|
-
if (!this.hasResearch(name)) {
|
|
316
|
-
return false;
|
|
317
|
-
}
|
|
318
|
-
|
|
319
|
-
return this.getAvailableResearches()[name](this.paper, this);
|
|
320
|
-
}
|
|
321
|
-
|
|
322
|
-
/**
|
|
323
|
-
* Return the research data from a research data provider by research name.
|
|
324
|
-
*
|
|
325
|
-
* @param {string} research The identifier of the research.
|
|
326
|
-
*
|
|
327
|
-
* @returns {*} The data provided by the provider, false if the data do not exist
|
|
328
|
-
*/
|
|
329
|
-
getData(research) {
|
|
330
|
-
if (this.hasResearchData(research)) {
|
|
331
|
-
return this._data[research];
|
|
332
|
-
}
|
|
333
|
-
|
|
334
|
-
return false;
|
|
335
|
-
}
|
|
336
|
-
|
|
337
|
-
/**
|
|
338
|
-
* Return language specific configuration by configuration name.
|
|
339
|
-
*
|
|
340
|
-
* @param {string} name The name of the configuration.
|
|
341
|
-
*
|
|
342
|
-
* @returns {*} The configuration, false if the configuration does not exist.
|
|
343
|
-
*/
|
|
344
|
-
getConfig(name) {
|
|
345
|
-
if (this.hasConfig(name)) {
|
|
346
|
-
return this.config[name];
|
|
347
|
-
}
|
|
348
|
-
|
|
349
|
-
return false;
|
|
350
|
-
}
|
|
351
|
-
|
|
352
|
-
/**
|
|
353
|
-
* Return language specific helper by helper name.
|
|
354
|
-
*
|
|
355
|
-
* @param {string} name The name of the helper.
|
|
356
|
-
*
|
|
357
|
-
* @returns {*} The helper, false if the helper does not exist.
|
|
358
|
-
*/
|
|
359
|
-
getHelper(name) {
|
|
360
|
-
if (this.hasHelper(name)) {
|
|
361
|
-
return this.helpers[name];
|
|
362
|
-
}
|
|
363
|
-
|
|
364
|
-
return false;
|
|
365
|
-
}
|
|
366
|
-
}
|
|
@@ -1,125 +0,0 @@
|
|
|
1
|
-
import Mark from "../../../values/Mark";
|
|
2
|
-
|
|
3
|
-
const markStart = "<yoastmark class='yoast-text-mark'>";
|
|
4
|
-
const markEnd = "</yoastmark>";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Adds `yoastmark` tags to the keyphrase matches in the sentence.
|
|
8
|
-
*
|
|
9
|
-
* This is a helper for search-based highlighting.
|
|
10
|
-
*
|
|
11
|
-
* @param {Sentence} sentence The sentence to add the `yoastmark` tags to.
|
|
12
|
-
* @param {Token[]} matches The array of the keyphrase matches.
|
|
13
|
-
*
|
|
14
|
-
* @returns {string} The sentence with the added `yoastmark` tags.
|
|
15
|
-
*/
|
|
16
|
-
const createMarksForSentence = ( sentence, matches ) => {
|
|
17
|
-
const tokens = sentence.tokens;
|
|
18
|
-
|
|
19
|
-
const newTokens = [];
|
|
20
|
-
for ( let i = tokens.length - 1; i >= 0; i-- ) {
|
|
21
|
-
const token = tokens[ i ];
|
|
22
|
-
if ( matches.some( match => match.sourceCodeRange.startOffset === token.sourceCodeRange.startOffset ||
|
|
23
|
-
match.sourceCodeRange.endOffset === token.sourceCodeRange.endOffset ) ) {
|
|
24
|
-
newTokens.unshift( markStart, token.text, markEnd );
|
|
25
|
-
} else {
|
|
26
|
-
newTokens.unshift( token.text );
|
|
27
|
-
}
|
|
28
|
-
}
|
|
29
|
-
const markedSentence = newTokens.join( "" );
|
|
30
|
-
// Merge consecutive markings into one marking.
|
|
31
|
-
return markedSentence.replace( new RegExp( "</yoastmark>([ \u00A0]?)<yoastmark class='yoast-text-mark'>", "ig" ), "$1" );
|
|
32
|
-
};
|
|
33
|
-
|
|
34
|
-
/**
|
|
35
|
-
* Merges consecutive and overlapping markings into one marking.
|
|
36
|
-
*
|
|
37
|
-
* This is a helper for position-based highlighting.
|
|
38
|
-
*
|
|
39
|
-
* @param {Mark[]} markings An array of markings to merge.
|
|
40
|
-
*
|
|
41
|
-
* @returns {Mark[]} An array of markings where consecutive and overlapping markings are merged.
|
|
42
|
-
*/
|
|
43
|
-
const mergeConsecutiveAndOverlappingMarkings = ( markings ) => {
|
|
44
|
-
const newMarkings = [];
|
|
45
|
-
|
|
46
|
-
// Sort markings by start offset. This is probably redundant, but for extra safety.
|
|
47
|
-
markings.sort( function( a, b ) {
|
|
48
|
-
return a.getPositionStart() - b.getPositionStart();
|
|
49
|
-
} );
|
|
50
|
-
|
|
51
|
-
markings.forEach( ( marking ) => {
|
|
52
|
-
if ( newMarkings.length === 0 ) {
|
|
53
|
-
newMarkings.push( marking );
|
|
54
|
-
return;
|
|
55
|
-
}
|
|
56
|
-
|
|
57
|
-
const lastMarking = newMarkings[ newMarkings.length - 1 ];
|
|
58
|
-
// Adding 1 to the position end, with the assumption that the language uses spaces.
|
|
59
|
-
// When we adapt Japanese to use this helper, this check should also be adapted.
|
|
60
|
-
if ( ( lastMarking.getPositionEnd() + 1 === marking.getPositionStart() ) ||
|
|
61
|
-
( marking.getPositionStart() <= lastMarking.getPositionEnd() ) ) {
|
|
62
|
-
// The marking is consecutive to the last marking, so we extend the last marking to include the new marking.
|
|
63
|
-
lastMarking.setPositionEnd( marking.getPositionEnd() );
|
|
64
|
-
lastMarking.setBlockPositionEnd( marking.getBlockPositionEnd() );
|
|
65
|
-
} else {
|
|
66
|
-
// The marking is not consecutive to the last marking, so we add it to the array by itself.
|
|
67
|
-
newMarkings.push( marking );
|
|
68
|
-
}
|
|
69
|
-
} );
|
|
70
|
-
|
|
71
|
-
return newMarkings;
|
|
72
|
-
};
|
|
73
|
-
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Gets the Mark objects of all keyphrase matches in the sentence.
|
|
77
|
-
* Currently, this function creates Mark objects compatible for both search-based and position-based highlighting.
|
|
78
|
-
* In a pure position-based highlighting, we don't need to provide 'marked' and 'original' when creating the Mark object.
|
|
79
|
-
*
|
|
80
|
-
* @param {Sentence} sentence The sentence to check.
|
|
81
|
-
* @param {Token[]} matchesInSentence An array containing the keyphrase matches in the sentence.
|
|
82
|
-
*
|
|
83
|
-
* @returns {Mark[]} The array of Mark objects of the keyphrase matches in the sentence.
|
|
84
|
-
*/
|
|
85
|
-
function getMarkingsInSentence( sentence, matchesInSentence ) {
|
|
86
|
-
if ( matchesInSentence.length === 0 ) {
|
|
87
|
-
return [];
|
|
88
|
-
}
|
|
89
|
-
|
|
90
|
-
// Create the marked sentence that is used for search-based highlighting.
|
|
91
|
-
const markedSentence = createMarksForSentence( sentence, matchesInSentence );
|
|
92
|
-
|
|
93
|
-
/*
|
|
94
|
-
* Note that there is a paradigm shift:
|
|
95
|
-
* With search-based highlighting, there would be one Mark object for the entire sentence.
|
|
96
|
-
* With position-based highlighting, there is a Mark object for each match.
|
|
97
|
-
* Hence, in order to be backwards compatible with search-based highlighting,
|
|
98
|
-
* all Mark objects for a sentence have the same markedSentence.
|
|
99
|
-
*/
|
|
100
|
-
const markings = matchesInSentence.map( token => {
|
|
101
|
-
const startOffset = token.sourceCodeRange.startOffset;
|
|
102
|
-
const endOffset = token.sourceCodeRange.endOffset;
|
|
103
|
-
return new Mark( {
|
|
104
|
-
position: {
|
|
105
|
-
startOffset: startOffset,
|
|
106
|
-
endOffset: endOffset,
|
|
107
|
-
// Relative to start of block positions.
|
|
108
|
-
startOffsetBlock: startOffset - ( sentence.parentStartOffset || 0 ),
|
|
109
|
-
endOffsetBlock: endOffset - ( sentence.parentStartOffset || 0 ),
|
|
110
|
-
// The client id of the block the match was found in.
|
|
111
|
-
clientId: sentence.parentClientId || "",
|
|
112
|
-
// The attribute id of the Yoast sub-block the match was found in.
|
|
113
|
-
attributeId: sentence.parentAttributeId || "",
|
|
114
|
-
// Whether the match was found in the first section of the Yoast sub-block.
|
|
115
|
-
isFirstSection: sentence.isParentFirstSectionOfBlock || false,
|
|
116
|
-
},
|
|
117
|
-
marked: markedSentence,
|
|
118
|
-
original: sentence.text,
|
|
119
|
-
} );
|
|
120
|
-
} );
|
|
121
|
-
|
|
122
|
-
return mergeConsecutiveAndOverlappingMarkings( markings );
|
|
123
|
-
}
|
|
124
|
-
|
|
125
|
-
export default getMarkingsInSentence;
|
|
@@ -1,29 +0,0 @@
|
|
|
1
|
-
import { flatten, isUndefined, uniq } from "lodash";
|
|
2
|
-
import { getSubheadings } from "./getSubheadings";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Gets the part of the html that we want to apply the marking to.
|
|
6
|
-
*
|
|
7
|
-
* @param {array} marks The array of mark objects.
|
|
8
|
-
* @param {string} html The html of the page where we want to apply the marking to.
|
|
9
|
-
*
|
|
10
|
-
* @returns {{selectedHTML: *[], fieldsToMark: *}} The selected part of the html we want to apply the marking to.
|
|
11
|
-
*/
|
|
12
|
-
export function getFieldsToMark( marks, html ) {
|
|
13
|
-
const fieldsToMark = uniq( flatten( marks.map( mark => {
|
|
14
|
-
if ( ! isUndefined( mark.getFieldsToMark() ) ) {
|
|
15
|
-
return mark.getFieldsToMark();
|
|
16
|
-
}
|
|
17
|
-
} ) ) );
|
|
18
|
-
|
|
19
|
-
const selectedHTML = [];
|
|
20
|
-
fieldsToMark.forEach( field => {
|
|
21
|
-
if ( field === "heading" ) {
|
|
22
|
-
const subheadings = getSubheadings( html );
|
|
23
|
-
subheadings.forEach( subheading => {
|
|
24
|
-
selectedHTML.push( subheading[ 0 ] );
|
|
25
|
-
} );
|
|
26
|
-
}
|
|
27
|
-
} );
|
|
28
|
-
return { fieldsToMark, selectedHTML };
|
|
29
|
-
}
|
|
@@ -1,47 +0,0 @@
|
|
|
1
|
-
import { isUndefined } from "lodash";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Returns An array of found subheadings including the following text.
|
|
5
|
-
*
|
|
6
|
-
* @param {string} text The text to analyze from.
|
|
7
|
-
*
|
|
8
|
-
* @returns {Array} An array of found subheadings including the following text.
|
|
9
|
-
*/
|
|
10
|
-
export default function( text ) {
|
|
11
|
-
// Match all the subheadings.
|
|
12
|
-
const subheadings = [ ...text.matchAll( new RegExp( "<h([1-6])(?:[^>]+)?>(.*?)<\\/h\\1>", "ig" ) ) ];
|
|
13
|
-
|
|
14
|
-
const foundSubheadings = [];
|
|
15
|
-
|
|
16
|
-
subheadings.forEach( ( subheading, i ) => {
|
|
17
|
-
// Retrieve the current subheading string.
|
|
18
|
-
const subheadingString = subheading[ 0 ];
|
|
19
|
-
// Retrieve the current subheading index.
|
|
20
|
-
const currentMatchIndex = subheading.index;
|
|
21
|
-
// Retrieve the next subheading.
|
|
22
|
-
const nextSubheading = subheadings[ i + 1 ];
|
|
23
|
-
|
|
24
|
-
let nextMatchIndex;
|
|
25
|
-
|
|
26
|
-
// Check if there is a next subheading.
|
|
27
|
-
if ( isUndefined( nextSubheading ) ) {
|
|
28
|
-
// If there is no next subheading, the next match index is the index of the last character in the text.
|
|
29
|
-
nextMatchIndex = subheading.input.length;
|
|
30
|
-
} else {
|
|
31
|
-
// Retrieve the index of the next subheading.
|
|
32
|
-
nextMatchIndex = nextSubheading.index;
|
|
33
|
-
}
|
|
34
|
-
|
|
35
|
-
// Retrieve the text following the current subheading.
|
|
36
|
-
const textFollowingCurrentSubheading = subheading.input.slice( currentMatchIndex + subheadingString.length, nextMatchIndex );
|
|
37
|
-
foundSubheadings.push( {
|
|
38
|
-
subheading: subheadingString,
|
|
39
|
-
text: textFollowingCurrentSubheading,
|
|
40
|
-
index: currentMatchIndex,
|
|
41
|
-
} );
|
|
42
|
-
} );
|
|
43
|
-
|
|
44
|
-
return foundSubheadings;
|
|
45
|
-
}
|
|
46
|
-
|
|
47
|
-
|
|
@@ -1,95 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Gets all subheadings from the text and returns these in an array.
|
|
3
|
-
*
|
|
4
|
-
* @param {string} text The text to return the headings from.
|
|
5
|
-
*
|
|
6
|
-
* @returns {Array<string[]>} Matches of subheadings in the text, first key is everything including tags,
|
|
7
|
-
* second is the heading level, third is the content of the subheading.
|
|
8
|
-
*/
|
|
9
|
-
function getSubheadings( text ) {
|
|
10
|
-
const subheadings = [];
|
|
11
|
-
const regex = /<h([1-6])(?:[^>]+)?>(.*?)<\/h\1>/ig;
|
|
12
|
-
let match;
|
|
13
|
-
|
|
14
|
-
while ( ( match = regex.exec( text ) ) !== null ) {
|
|
15
|
-
subheadings.push( match );
|
|
16
|
-
}
|
|
17
|
-
|
|
18
|
-
return subheadings;
|
|
19
|
-
}
|
|
20
|
-
|
|
21
|
-
/**
|
|
22
|
-
* Gets all the level 2 and 3 subheadings from the text and returns these in an array.
|
|
23
|
-
*
|
|
24
|
-
* @param {string} text The text to return the headings from.
|
|
25
|
-
*
|
|
26
|
-
* @returns {Array<string[]>} Matches of subheadings in the text, first key is everything including tags,
|
|
27
|
-
* second is the heading level, third is the content of the subheading.
|
|
28
|
-
*/
|
|
29
|
-
function getSubheadingsTopLevel( text ) {
|
|
30
|
-
const subheadings = [];
|
|
31
|
-
const regex = /<h([2-3])(?:[^>]+)?>(.*?)<\/h\1>/ig;
|
|
32
|
-
let match;
|
|
33
|
-
|
|
34
|
-
while ( ( match = regex.exec( text ) ) !== null ) {
|
|
35
|
-
subheadings.push( match );
|
|
36
|
-
}
|
|
37
|
-
|
|
38
|
-
return subheadings;
|
|
39
|
-
}
|
|
40
|
-
|
|
41
|
-
/**
|
|
42
|
-
* Gets the content of subheadings in the text.
|
|
43
|
-
*
|
|
44
|
-
* @param {string} text The text to get the subheading contents from.
|
|
45
|
-
*
|
|
46
|
-
* @returns {string[]} A list of all the subheadings with their content.
|
|
47
|
-
*/
|
|
48
|
-
function getSubheadingContents( text ) {
|
|
49
|
-
const subheadings = getSubheadings( text );
|
|
50
|
-
|
|
51
|
-
return subheadings.map( subheading => subheading[ 0 ] );
|
|
52
|
-
}
|
|
53
|
-
|
|
54
|
-
/**
|
|
55
|
-
* Gets the content of subheadings h2 and h3 in the text.
|
|
56
|
-
*
|
|
57
|
-
* @param {string} text The text to get the subheading contents from.
|
|
58
|
-
*
|
|
59
|
-
* @returns {string[]} A list of all the subheadings with their content.
|
|
60
|
-
*/
|
|
61
|
-
function getSubheadingContentsTopLevel( text ) {
|
|
62
|
-
const subheadings = getSubheadingsTopLevel( text );
|
|
63
|
-
|
|
64
|
-
// Only return the entire string matched, not the rest of the outputs of the regex.exec function.
|
|
65
|
-
return subheadings.map( subheading => subheading[ 0 ] );
|
|
66
|
-
}
|
|
67
|
-
|
|
68
|
-
/**
|
|
69
|
-
* Removes all level 2 and 3 subheadings from the text.
|
|
70
|
-
*
|
|
71
|
-
* @param {string} text The text to remove the headings from.
|
|
72
|
-
*
|
|
73
|
-
* @returns {string} The text with removed subheadings.
|
|
74
|
-
*/
|
|
75
|
-
function removeSubheadingsTopLevel( text ) {
|
|
76
|
-
const regex = /<h([2-3])(?:[^>]+)?>(.*?)<\/h\1>/ig;
|
|
77
|
-
|
|
78
|
-
return text.replace( regex, "" );
|
|
79
|
-
}
|
|
80
|
-
|
|
81
|
-
export {
|
|
82
|
-
getSubheadings,
|
|
83
|
-
getSubheadingsTopLevel,
|
|
84
|
-
getSubheadingContents,
|
|
85
|
-
getSubheadingContentsTopLevel,
|
|
86
|
-
removeSubheadingsTopLevel,
|
|
87
|
-
};
|
|
88
|
-
|
|
89
|
-
export default {
|
|
90
|
-
getSubheadings: getSubheadings,
|
|
91
|
-
getSubheadingsTopLevel: getSubheadingsTopLevel,
|
|
92
|
-
getSubheadingContents: getSubheadingContents,
|
|
93
|
-
getSubheadingContentsTopLevel: getSubheadingContentsTopLevel,
|
|
94
|
-
removeSubheadingsTopLevel: removeSubheadingsTopLevel,
|
|
95
|
-
};
|