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,176 +0,0 @@
|
|
|
1
|
-
const blockElements = [ "address", "article", "aside", "blockquote", "canvas", "dd", "div", "dl", "fieldset", "figcaption",
|
|
2
|
-
"figure", "footer", "form", "h1", "h2", "h3", "h4", "h5", "h6", "header", "hgroup", "hr", "li", "main", "nav",
|
|
3
|
-
"noscript", "ol", "output", "p", "pre", "section", "table", "tfoot", "ul", "video" ];
|
|
4
|
-
const inlineElements = [ "b", "big", "i", "small", "tt", "abbr", "acronym", "cite", "code", "dfn", "em", "kbd", "strong",
|
|
5
|
-
"samp", "time", "var", "a", "bdo", "br", "img", "map", "object", "q", "script", "span", "sub", "sup", "button",
|
|
6
|
-
"input", "label", "select", "textarea" ];
|
|
7
|
-
|
|
8
|
-
const blockElementsRegex = new RegExp( "^(" + blockElements.join( "|" ) + ")$", "i" );
|
|
9
|
-
const inlineElementsRegex = new RegExp( "^(" + inlineElements.join( "|" ) + ")$", "i" );
|
|
10
|
-
|
|
11
|
-
const blockElementStartRegex = new RegExp( "^<(" + blockElements.join( "|" ) + ")[^>]*?>$", "i" );
|
|
12
|
-
const blockElementEndRegex = new RegExp( "^</(" + blockElements.join( "|" ) + ")[^>]*?>$", "i" );
|
|
13
|
-
|
|
14
|
-
const inlineElementStartRegex = new RegExp( "^<(" + inlineElements.join( "|" ) + ")[^>]*>$", "i" );
|
|
15
|
-
const inlineElementEndRegex = new RegExp( "^</(" + inlineElements.join( "|" ) + ")[^>]*>$", "i" );
|
|
16
|
-
|
|
17
|
-
const otherElementStartRegex = /^<([^>\s/]+)[^>]*>$/;
|
|
18
|
-
const otherElementEndRegex = /^<\/([^>\s]+)[^>]*>$/;
|
|
19
|
-
|
|
20
|
-
const contentRegex = /^[^<]+$/;
|
|
21
|
-
const greaterThanContentRegex = /^<[^><]*$/;
|
|
22
|
-
|
|
23
|
-
const commentRegex = /<!--(.|[\r\n])*?-->/g;
|
|
24
|
-
|
|
25
|
-
import { forEach, memoize } from "lodash";
|
|
26
|
-
import core from "tokenizer2/core";
|
|
27
|
-
|
|
28
|
-
let tokens = [];
|
|
29
|
-
let htmlBlockTokenizer;
|
|
30
|
-
|
|
31
|
-
/**
|
|
32
|
-
* Creates a tokenizer to tokenize HTML into blocks.
|
|
33
|
-
*
|
|
34
|
-
* @returns {void}
|
|
35
|
-
*/
|
|
36
|
-
function createTokenizer() {
|
|
37
|
-
tokens = [];
|
|
38
|
-
|
|
39
|
-
htmlBlockTokenizer = core( function( token ) {
|
|
40
|
-
tokens.push( token );
|
|
41
|
-
} );
|
|
42
|
-
|
|
43
|
-
htmlBlockTokenizer.addRule( contentRegex, "content" );
|
|
44
|
-
htmlBlockTokenizer.addRule( greaterThanContentRegex, "greater-than-sign-content" );
|
|
45
|
-
|
|
46
|
-
htmlBlockTokenizer.addRule( blockElementStartRegex, "block-start" );
|
|
47
|
-
htmlBlockTokenizer.addRule( blockElementEndRegex, "block-end" );
|
|
48
|
-
htmlBlockTokenizer.addRule( inlineElementStartRegex, "inline-start" );
|
|
49
|
-
htmlBlockTokenizer.addRule( inlineElementEndRegex, "inline-end" );
|
|
50
|
-
|
|
51
|
-
htmlBlockTokenizer.addRule( otherElementStartRegex, "other-element-start" );
|
|
52
|
-
htmlBlockTokenizer.addRule( otherElementEndRegex, "other-element-end" );
|
|
53
|
-
}
|
|
54
|
-
|
|
55
|
-
/**
|
|
56
|
-
* Returns whether or not the given element name is a block element.
|
|
57
|
-
*
|
|
58
|
-
* @param {string} htmlElementName The name of the HTML element.
|
|
59
|
-
* @returns {boolean} Whether or not it is a block element.
|
|
60
|
-
*/
|
|
61
|
-
function isBlockElement( htmlElementName ) {
|
|
62
|
-
return blockElementsRegex.test( htmlElementName );
|
|
63
|
-
}
|
|
64
|
-
|
|
65
|
-
/**
|
|
66
|
-
* Returns whether or not the given element name is an inline element.
|
|
67
|
-
*
|
|
68
|
-
* @param {string} htmlElementName The name of the HTML element.
|
|
69
|
-
* @returns {boolean} Whether or not it is an inline element.
|
|
70
|
-
*/
|
|
71
|
-
function isInlineElement( htmlElementName ) {
|
|
72
|
-
return inlineElementsRegex.test( htmlElementName );
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
/**
|
|
76
|
-
* Splits a text into blocks based on HTML block elements.
|
|
77
|
-
*
|
|
78
|
-
* @param {string} text The text to split.
|
|
79
|
-
* @returns {Array} A list of blocks based on HTML block elements.
|
|
80
|
-
*/
|
|
81
|
-
function getBlocks( text ) {
|
|
82
|
-
const blocks = [];
|
|
83
|
-
let depth = 0,
|
|
84
|
-
blockStartTag = "",
|
|
85
|
-
currentBlock = "",
|
|
86
|
-
blockEndTag = "";
|
|
87
|
-
|
|
88
|
-
// Remove all comments because it is very hard to tokenize them.
|
|
89
|
-
text = text.replace( commentRegex, "" );
|
|
90
|
-
|
|
91
|
-
createTokenizer();
|
|
92
|
-
htmlBlockTokenizer.onText( text );
|
|
93
|
-
htmlBlockTokenizer.end();
|
|
94
|
-
|
|
95
|
-
forEach( tokens, function( token, i ) {
|
|
96
|
-
const nextToken = tokens[ i + 1 ];
|
|
97
|
-
|
|
98
|
-
switch ( token.type ) {
|
|
99
|
-
case "content":
|
|
100
|
-
case "greater-than-sign-content":
|
|
101
|
-
case "inline-start":
|
|
102
|
-
case "inline-end":
|
|
103
|
-
case "other-tag":
|
|
104
|
-
case "other-element-start":
|
|
105
|
-
case "other-element-end":
|
|
106
|
-
case "greater than sign":
|
|
107
|
-
if ( ! nextToken || ( depth === 0 && ( nextToken.type === "block-start" || nextToken.type === "block-end" ) ) ) {
|
|
108
|
-
currentBlock += token.src;
|
|
109
|
-
|
|
110
|
-
blocks.push( currentBlock );
|
|
111
|
-
blockStartTag = "";
|
|
112
|
-
currentBlock = "";
|
|
113
|
-
blockEndTag = "";
|
|
114
|
-
} else {
|
|
115
|
-
currentBlock += token.src;
|
|
116
|
-
}
|
|
117
|
-
break;
|
|
118
|
-
|
|
119
|
-
case "block-start":
|
|
120
|
-
if ( depth !== 0 ) {
|
|
121
|
-
if ( currentBlock.trim() !== "" ) {
|
|
122
|
-
blocks.push( currentBlock );
|
|
123
|
-
}
|
|
124
|
-
currentBlock = "";
|
|
125
|
-
blockEndTag = "";
|
|
126
|
-
}
|
|
127
|
-
|
|
128
|
-
depth++;
|
|
129
|
-
blockStartTag = token.src;
|
|
130
|
-
break;
|
|
131
|
-
|
|
132
|
-
case "block-end":
|
|
133
|
-
depth--;
|
|
134
|
-
blockEndTag = token.src;
|
|
135
|
-
|
|
136
|
-
/*
|
|
137
|
-
* We try to match the most deep blocks so discard any other blocks that have been started but not
|
|
138
|
-
* finished.
|
|
139
|
-
*/
|
|
140
|
-
if ( "" !== blockStartTag && "" !== blockEndTag ) {
|
|
141
|
-
blocks.push( blockStartTag + currentBlock + blockEndTag );
|
|
142
|
-
} else if ( "" !== currentBlock.trim() ) {
|
|
143
|
-
blocks.push( currentBlock );
|
|
144
|
-
}
|
|
145
|
-
blockStartTag = "";
|
|
146
|
-
currentBlock = "";
|
|
147
|
-
blockEndTag = "";
|
|
148
|
-
break;
|
|
149
|
-
}
|
|
150
|
-
|
|
151
|
-
// Handles HTML with too many closing tags.
|
|
152
|
-
if ( depth < 0 ) {
|
|
153
|
-
depth = 0;
|
|
154
|
-
}
|
|
155
|
-
} );
|
|
156
|
-
|
|
157
|
-
return blocks;
|
|
158
|
-
}
|
|
159
|
-
|
|
160
|
-
const memoizedGetBlocks = memoize( getBlocks );
|
|
161
|
-
|
|
162
|
-
export {
|
|
163
|
-
blockElements,
|
|
164
|
-
inlineElements,
|
|
165
|
-
isBlockElement,
|
|
166
|
-
isInlineElement,
|
|
167
|
-
memoizedGetBlocks as getBlocks,
|
|
168
|
-
};
|
|
169
|
-
|
|
170
|
-
export default {
|
|
171
|
-
blockElements: blockElements,
|
|
172
|
-
inlineElements: inlineElements,
|
|
173
|
-
isBlockElement: isBlockElement,
|
|
174
|
-
isInlineElement: isInlineElement,
|
|
175
|
-
getBlocks: memoizedGetBlocks,
|
|
176
|
-
};
|
|
@@ -1,145 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* This file is used for HTML parsing for assessment that not use the HTML Parser.
|
|
3
|
-
* We use a (simpler) external library, which can be found here: https://github.com/fb55/htmlparser2.
|
|
4
|
-
*/
|
|
5
|
-
import htmlparser from "htmlparser2";
|
|
6
|
-
|
|
7
|
-
/**
|
|
8
|
-
* The array containing the text parts without ignored HTML blocks.
|
|
9
|
-
* @type {string[]}
|
|
10
|
-
*/
|
|
11
|
-
let textArray = [];
|
|
12
|
-
/**
|
|
13
|
-
* Whether we are currently in an ignored HTML block.
|
|
14
|
-
* @type {boolean}
|
|
15
|
-
*/
|
|
16
|
-
let inIgnorableBlock = false;
|
|
17
|
-
/**
|
|
18
|
-
* The stack of currently ignored tags, when we are in an ignorable HTML block.
|
|
19
|
-
* @type {string[]}
|
|
20
|
-
*/
|
|
21
|
-
let ignoreStack = [];
|
|
22
|
-
|
|
23
|
-
/**
|
|
24
|
-
* The HTML tags that should be ignored.
|
|
25
|
-
* @type {string[]}
|
|
26
|
-
*/
|
|
27
|
-
const IGNORED_TAGS = [ "script", "style", "code", "pre", "blockquote", "textarea" ];
|
|
28
|
-
/**
|
|
29
|
-
* The classes of HTML elements that should be ignored.
|
|
30
|
-
* @type {string[]}
|
|
31
|
-
*/
|
|
32
|
-
const IGNORED_CLASSES = [
|
|
33
|
-
"yoast-table-of-contents",
|
|
34
|
-
"yoast-reading-time__wrapper",
|
|
35
|
-
"elementor-button-wrapper",
|
|
36
|
-
"elementor-divider",
|
|
37
|
-
"elementor-spacer",
|
|
38
|
-
"elementor-custom-embed",
|
|
39
|
-
"elementor-icon-wrapper",
|
|
40
|
-
"elementor-icon-box-wrapper",
|
|
41
|
-
"elementor-counter",
|
|
42
|
-
"elementor-progress-wrapper",
|
|
43
|
-
"elementor-alert",
|
|
44
|
-
"elementor-soundcloud-wrapper",
|
|
45
|
-
"elementor-shortcode",
|
|
46
|
-
"elementor-menu-anchor",
|
|
47
|
-
"elementor-title",
|
|
48
|
-
];
|
|
49
|
-
|
|
50
|
-
/**
|
|
51
|
-
* Parses the text.
|
|
52
|
-
*/
|
|
53
|
-
const parser = new htmlparser.Parser( {
|
|
54
|
-
/**
|
|
55
|
-
* Handles the opening tag.
|
|
56
|
-
* If we are in an ignorable block, disregard the tag.
|
|
57
|
-
* If the opening tag is included in the `IGNORED_TAGS` array, or the class is in the `IGNORED_CLASSES` array,
|
|
58
|
-
* set `inIgnorableBlock` to true and add the tag to the `ignoreStack`.
|
|
59
|
-
* Otherwise, push the tag to the `textArray`.
|
|
60
|
-
*
|
|
61
|
-
* @param {string} tagName The tag name.
|
|
62
|
-
* @param {object} nodeValue The attribute with the keys and values of the tag.
|
|
63
|
-
*
|
|
64
|
-
* @returns {void}
|
|
65
|
-
*/
|
|
66
|
-
onopentag: function( tagName, nodeValue ) {
|
|
67
|
-
if ( inIgnorableBlock ) {
|
|
68
|
-
ignoreStack.push( tagName );
|
|
69
|
-
return;
|
|
70
|
-
}
|
|
71
|
-
|
|
72
|
-
const classNames = nodeValue.class ? nodeValue.class.split( " " ) : [];
|
|
73
|
-
if ( IGNORED_TAGS.includes( tagName ) || classNames.some( className => IGNORED_CLASSES.includes( className ) ) ) {
|
|
74
|
-
inIgnorableBlock = true;
|
|
75
|
-
ignoreStack.push( tagName );
|
|
76
|
-
return;
|
|
77
|
-
}
|
|
78
|
-
|
|
79
|
-
const nodeValueType = Object.keys( nodeValue );
|
|
80
|
-
let nodeValueString = "";
|
|
81
|
-
|
|
82
|
-
nodeValueType.forEach( function( node ) {
|
|
83
|
-
// Build the tag again.
|
|
84
|
-
nodeValueString += " " + node + "='" + nodeValue[ node ] + "'";
|
|
85
|
-
} );
|
|
86
|
-
|
|
87
|
-
textArray.push( "<" + tagName + nodeValueString + ">" );
|
|
88
|
-
},
|
|
89
|
-
/**
|
|
90
|
-
* Handles the text that doesn't contain opening or closing tags.
|
|
91
|
-
* If `inIgnorableBlock` is false, the text gets pushed to the `textArray` array.
|
|
92
|
-
*
|
|
93
|
-
* @param {string} text The text that doesn't contain opening or closing tags.
|
|
94
|
-
*
|
|
95
|
-
* @returns {void}
|
|
96
|
-
*/
|
|
97
|
-
ontext: function( text ) {
|
|
98
|
-
if ( ! inIgnorableBlock ) {
|
|
99
|
-
textArray.push( text );
|
|
100
|
-
}
|
|
101
|
-
},
|
|
102
|
-
/**
|
|
103
|
-
* Handles the closing tag.
|
|
104
|
-
* If the closing tag is the last tag on the `ignoreStack`, jump out of the ignorable block.
|
|
105
|
-
* Otherwise, if we are not currently in an ignorable block, push the tag to the `textArray`.
|
|
106
|
-
*
|
|
107
|
-
* @param {string} tagName The tag name.
|
|
108
|
-
*
|
|
109
|
-
* @returns {void}
|
|
110
|
-
*/
|
|
111
|
-
onclosetag: function( tagName ) {
|
|
112
|
-
if ( ignoreStack.length === 1 && ignoreStack[ 0 ] === tagName ) {
|
|
113
|
-
inIgnorableBlock = false;
|
|
114
|
-
ignoreStack = [];
|
|
115
|
-
return;
|
|
116
|
-
}
|
|
117
|
-
|
|
118
|
-
if ( inIgnorableBlock ) {
|
|
119
|
-
ignoreStack.pop();
|
|
120
|
-
return;
|
|
121
|
-
}
|
|
122
|
-
|
|
123
|
-
textArray.push( "</" + tagName + ">" );
|
|
124
|
-
},
|
|
125
|
-
}, { decodeEntities: true } );
|
|
126
|
-
|
|
127
|
-
/**
|
|
128
|
-
* Calls htmlparser2 and returns the text without HTML blocks that we do not want to consider for the content analysis.
|
|
129
|
-
* Note that this function will soon be deprecated in favour of our own HTML parser.
|
|
130
|
-
*
|
|
131
|
-
* @param {string} text The text to parse.
|
|
132
|
-
*
|
|
133
|
-
* @returns {string} The text without the HTML blocks.
|
|
134
|
-
*/
|
|
135
|
-
export default function( text ) {
|
|
136
|
-
// Return the globals to their starting values.
|
|
137
|
-
textArray = [];
|
|
138
|
-
inIgnorableBlock = false;
|
|
139
|
-
ignoreStack = [];
|
|
140
|
-
|
|
141
|
-
parser.write( text );
|
|
142
|
-
// Make sure to complete the process of parsing and reset the parser to avoid side effects.
|
|
143
|
-
parser.parseComplete();
|
|
144
|
-
return textArray.join( "" );
|
|
145
|
-
}
|
|
@@ -1,62 +0,0 @@
|
|
|
1
|
-
import { filter, flatMap, map } from "lodash";
|
|
2
|
-
|
|
3
|
-
import { getBlocks } from "./html";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Matches the paragraphs in <p>-tags and returns the text in them.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} text The text to match paragraph in.
|
|
9
|
-
*
|
|
10
|
-
* @returns {array} An array containing all paragraphs texts.
|
|
11
|
-
*/
|
|
12
|
-
const getParagraphsInTags = function( text ) {
|
|
13
|
-
let paragraphs = [];
|
|
14
|
-
// Matches everything between the <p> and </p> tags.
|
|
15
|
-
const regex = /<p(?:[^>]+)?>(.*?)<\/p>/ig;
|
|
16
|
-
let match;
|
|
17
|
-
|
|
18
|
-
while ( ( match = regex.exec( text ) ) !== null ) {
|
|
19
|
-
paragraphs.push( match );
|
|
20
|
-
}
|
|
21
|
-
|
|
22
|
-
// Returns only the text from within the paragraph tags.
|
|
23
|
-
paragraphs = map( paragraphs, function( paragraph ) {
|
|
24
|
-
return paragraph[ 1 ];
|
|
25
|
-
} );
|
|
26
|
-
|
|
27
|
-
return paragraphs.filter( paragraph => paragraph.length > 0 );
|
|
28
|
-
};
|
|
29
|
-
|
|
30
|
-
/**
|
|
31
|
-
* Returns an array with all paragraphs from the text.
|
|
32
|
-
*
|
|
33
|
-
* @param {string} text The text to match paragraph in.
|
|
34
|
-
*
|
|
35
|
-
* @returns {Array} The array containing all paragraphs from the text.
|
|
36
|
-
*/
|
|
37
|
-
export default function( text ) {
|
|
38
|
-
let paragraphs = getParagraphsInTags( text );
|
|
39
|
-
|
|
40
|
-
if ( paragraphs.length > 0 ) {
|
|
41
|
-
return paragraphs;
|
|
42
|
-
}
|
|
43
|
-
|
|
44
|
-
// If no <p> tags found, split on double linebreaks.
|
|
45
|
-
let blocks = getBlocks( text );
|
|
46
|
-
|
|
47
|
-
blocks = filter( blocks, function( block ) {
|
|
48
|
-
// Match explicit paragraph tags, or if a block has no HTML tags.
|
|
49
|
-
return 0 !== block.indexOf( "<h" );
|
|
50
|
-
} );
|
|
51
|
-
|
|
52
|
-
paragraphs = flatMap( blocks, function( block ) {
|
|
53
|
-
return block.split( "\n\n" );
|
|
54
|
-
} );
|
|
55
|
-
|
|
56
|
-
if ( paragraphs.length > 0 ) {
|
|
57
|
-
return paragraphs;
|
|
58
|
-
}
|
|
59
|
-
|
|
60
|
-
// If no paragraphs are found, return an array containing the entire text.
|
|
61
|
-
return [ text ];
|
|
62
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Replaces single quotes around HTML attribute values with double quotes.
|
|
3
|
-
* Double quotes are the standard, but we convert these to single quotes when parsing the HTML in `avadaseo` package.
|
|
4
|
-
* Here, we change them back to double quotes so by parsing the HTML and then outputting it again.
|
|
5
|
-
* Note that this function does more than just replacing single quotes with double quotes. It also restores corrupted HTML.
|
|
6
|
-
* @param {string} str The input string.
|
|
7
|
-
*
|
|
8
|
-
* @returns {string} The string with single quotes around HTML attributes replaced with double quotes.
|
|
9
|
-
*/
|
|
10
|
-
export default function( str ) {
|
|
11
|
-
const doc = new DOMParser().parseFromString( str, "text/html" );
|
|
12
|
-
const normalizedHTML = doc.body.innerHTML;
|
|
13
|
-
|
|
14
|
-
// Replace ` ` with an actual non breaking space (U+00A0).
|
|
15
|
-
return normalizedHTML.replace( / /g, "\u00A0" );
|
|
16
|
-
}
|
|
@@ -1,20 +0,0 @@
|
|
|
1
|
-
import stripSpaces from "../sanitize/stripSpaces.js";
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Checks for an alt attribute in the image and returns its content.
|
|
5
|
-
*
|
|
6
|
-
* @param {Node} imageNode Text string to match the alt attribute.
|
|
7
|
-
* @returns {String} The contents of the alt attribute, empty if none is set.
|
|
8
|
-
*/
|
|
9
|
-
export default function( imageNode ) {
|
|
10
|
-
let alt = "";
|
|
11
|
-
|
|
12
|
-
if ( imageNode.name === "img" ) {
|
|
13
|
-
alt = stripSpaces( imageNode.attributes.alt || "" );
|
|
14
|
-
|
|
15
|
-
alt = alt.replace( /"/g, "\"" );
|
|
16
|
-
alt = alt.replace( /'/g, "'" );
|
|
17
|
-
}
|
|
18
|
-
|
|
19
|
-
return alt;
|
|
20
|
-
}
|
|
@@ -1,16 +0,0 @@
|
|
|
1
|
-
/**
|
|
2
|
-
* Checks the tree for images.
|
|
3
|
-
*
|
|
4
|
-
* @param {Paper} paper The paper to check for images.
|
|
5
|
-
*
|
|
6
|
-
* @returns {Array} Array containing all images in the tree
|
|
7
|
-
*/
|
|
8
|
-
export default function( paper ) {
|
|
9
|
-
const tree = paper.getTree();
|
|
10
|
-
|
|
11
|
-
if ( ! tree ) {
|
|
12
|
-
return [];
|
|
13
|
-
}
|
|
14
|
-
|
|
15
|
-
return tree.findAll( node => node.name === "img" );
|
|
16
|
-
}
|
|
@@ -1,19 +0,0 @@
|
|
|
1
|
-
/** @module stringProcessing/imageInText */
|
|
2
|
-
|
|
3
|
-
import matchStringWithRegex from "../regex/matchStringWithRegex.js";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* @returns {object} A precompiled regex for recognizing self closing image tags.
|
|
7
|
-
*/
|
|
8
|
-
export const imageRegex = new RegExp( "<img(?:[^>]+)?>(</img>)*", "ig" );
|
|
9
|
-
|
|
10
|
-
|
|
11
|
-
/**
|
|
12
|
-
* Checks the text for images.
|
|
13
|
-
*
|
|
14
|
-
* @param {string} text The text string to check for images
|
|
15
|
-
* @returns {Array} Array containing all types of found images
|
|
16
|
-
*/
|
|
17
|
-
export default function( text ) {
|
|
18
|
-
return matchStringWithRegex( text, imageRegex );
|
|
19
|
-
}
|
|
@@ -1,12 +0,0 @@
|
|
|
1
|
-
import { normalize } from "./sanitize/quotes";
|
|
2
|
-
import { createShortcodeTagsRegex, filterShortcodesFromHTML } from "./sanitize/filterShortcodesFromTree";
|
|
3
|
-
import processExactMatchRequest from "./match/processExactMatchRequest";
|
|
4
|
-
import removeHtmlBlocks from "./html/htmlParser";
|
|
5
|
-
|
|
6
|
-
export {
|
|
7
|
-
normalize,
|
|
8
|
-
removeHtmlBlocks,
|
|
9
|
-
filterShortcodesFromHTML,
|
|
10
|
-
createShortcodeTagsRegex,
|
|
11
|
-
processExactMatchRequest,
|
|
12
|
-
};
|
|
@@ -1,38 +0,0 @@
|
|
|
1
|
-
/** @module stringProcessing/checkNofollow */
|
|
2
|
-
|
|
3
|
-
// We use an external library, which can be found here: https://github.com/fb55/htmlparser2.
|
|
4
|
-
import htmlparser from "htmlparser2";
|
|
5
|
-
|
|
6
|
-
/**
|
|
7
|
-
* Checks if a link has a `rel` attribute with a `nofollow` value. If it has, returns Nofollow, otherwise Dofollow.
|
|
8
|
-
*
|
|
9
|
-
* @param {string} anchorHTML The anchor HTML to check against.
|
|
10
|
-
* @returns {string} Returns Dofollow or Nofollow.
|
|
11
|
-
*/
|
|
12
|
-
export default function( anchorHTML ) {
|
|
13
|
-
let linkFollow = "Dofollow";
|
|
14
|
-
|
|
15
|
-
const parser = new htmlparser.Parser( {
|
|
16
|
-
/**
|
|
17
|
-
* Detects if there is a `nofollow` value in the `rel` attribute of a link.
|
|
18
|
-
*
|
|
19
|
-
* @param {string} tagName The tag name.
|
|
20
|
-
* @param {object} attributes The tag attributes with the names and values of each attribute found.
|
|
21
|
-
* @returns {void}
|
|
22
|
-
*/
|
|
23
|
-
onopentag: function( tagName, attributes ) {
|
|
24
|
-
if ( tagName !== "a" || ! attributes.rel ) {
|
|
25
|
-
return;
|
|
26
|
-
}
|
|
27
|
-
|
|
28
|
-
if ( attributes.rel.toLowerCase().split( /\s/ ).includes( "nofollow" ) ) {
|
|
29
|
-
linkFollow = "Nofollow";
|
|
30
|
-
}
|
|
31
|
-
},
|
|
32
|
-
} );
|
|
33
|
-
|
|
34
|
-
parser.write( anchorHTML );
|
|
35
|
-
parser.end();
|
|
36
|
-
|
|
37
|
-
return linkFollow;
|
|
38
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** @module stringProcessing/getAnchorsFromText */
|
|
2
|
-
|
|
3
|
-
/**
|
|
4
|
-
* Check for anchors in the text string and returns them in an array.
|
|
5
|
-
*
|
|
6
|
-
* @param {String} text The text to check for matches.
|
|
7
|
-
*
|
|
8
|
-
* @returns {Array} The matched links in text.
|
|
9
|
-
*/
|
|
10
|
-
export default function( text ) {
|
|
11
|
-
let matches;
|
|
12
|
-
|
|
13
|
-
/*
|
|
14
|
-
* Regex matches everything between <a> and </a>.
|
|
15
|
-
*
|
|
16
|
-
* There must be:
|
|
17
|
-
* - at least one whitespace after the starting `<a`, otherwise it matches `<abbr` tags.
|
|
18
|
-
* - followed by at least one not `>`, to match any attributes that are given.
|
|
19
|
-
* This could be one or zero (`*`), but an anchor tag without an `href` attribute does not make sense.
|
|
20
|
-
* The regex could be more precise here, by checking for the `href`, but this is less complex.
|
|
21
|
-
* - losing tag of the opening tag `>`.
|
|
22
|
-
* - content of the anchor tag. Any character, including line separators (`[\n\r\u2028\u2029]`).
|
|
23
|
-
* - the closing anchor tag.
|
|
24
|
-
*/
|
|
25
|
-
matches = text.match( /<a[\s]+(?:[^>]+)>((?:.|[\n\r\u2028\u2029])*?)<\/a>/ig );
|
|
26
|
-
|
|
27
|
-
if ( matches === null ) {
|
|
28
|
-
matches = [];
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return matches;
|
|
32
|
-
}
|
|
@@ -1,32 +0,0 @@
|
|
|
1
|
-
/** @module stringProcess/getLinkType */
|
|
2
|
-
|
|
3
|
-
import urlHelper from "../url/url";
|
|
4
|
-
|
|
5
|
-
/**
|
|
6
|
-
* Determines the type of link.
|
|
7
|
-
*
|
|
8
|
-
* @param {string} anchor String with anchor element.
|
|
9
|
-
* @param {string} siteUrlOrDomain URL or domain to match against.
|
|
10
|
-
*
|
|
11
|
-
* @returns {string} The link type (other, external or internal).
|
|
12
|
-
*/
|
|
13
|
-
export default function( anchor, siteUrlOrDomain ) {
|
|
14
|
-
const anchorUrl = urlHelper.getFromAnchorTag( anchor );
|
|
15
|
-
|
|
16
|
-
/**
|
|
17
|
-
* A link is "Other" if:
|
|
18
|
-
* - The protocol is neither null, nor http, nor https.
|
|
19
|
-
* - The link is a relative fragment URL (starts with #), because it won't navigate to another page.
|
|
20
|
-
*/
|
|
21
|
-
const protocol = urlHelper.getProtocol( anchorUrl );
|
|
22
|
-
if ( protocol && ! urlHelper.protocolIsHttpScheme( protocol ) ||
|
|
23
|
-
urlHelper.isRelativeFragmentURL( anchorUrl ) ) {
|
|
24
|
-
return "other";
|
|
25
|
-
}
|
|
26
|
-
|
|
27
|
-
if ( urlHelper.isInternalLink( anchorUrl, siteUrlOrDomain ) ) {
|
|
28
|
-
return "internal";
|
|
29
|
-
}
|
|
30
|
-
|
|
31
|
-
return "external";
|
|
32
|
-
}
|
|
@@ -1,101 +0,0 @@
|
|
|
1
|
-
import { isEmpty, sum } from "lodash";
|
|
2
|
-
import matchTextWithArray from "./matchTextWithArray.js";
|
|
3
|
-
|
|
4
|
-
/**
|
|
5
|
-
* Matches forms of words in the keyphrase against a given text.
|
|
6
|
-
*
|
|
7
|
-
* @param {Array} keywordForms The array with word forms of all (content) words from the keyphrase in a shape
|
|
8
|
-
* [ [ form1, form2, ... ], [ form1, form2, ... ] ].
|
|
9
|
-
* @param {string} text The string to match the word forms against.
|
|
10
|
-
* @param {string} locale The locale of the paper.
|
|
11
|
-
* @param {function} matchWordCustomHelper The helper function to match word in text.
|
|
12
|
-
*
|
|
13
|
-
* @returns {Object} The number and the percentage of the keyphrase words that were matched in the text by at least one form,
|
|
14
|
-
* and the lowest number of positions of the matches.
|
|
15
|
-
*/
|
|
16
|
-
const findWordFormsInString = function( keywordForms, text, locale, matchWordCustomHelper ) {
|
|
17
|
-
const wordNumber = keywordForms.length;
|
|
18
|
-
const foundWords = Array( wordNumber );
|
|
19
|
-
let positions = [];
|
|
20
|
-
let matches = [];
|
|
21
|
-
|
|
22
|
-
for ( let i = 0; i < wordNumber; i++ ) {
|
|
23
|
-
const matchedKeyphrase = matchTextWithArray( text, keywordForms[ i ], locale, matchWordCustomHelper );
|
|
24
|
-
foundWords[ i ] = matchedKeyphrase.count > 0 ? 1 : 0;
|
|
25
|
-
positions.push( matchedKeyphrase.position );
|
|
26
|
-
matches = matches.concat( matchedKeyphrase.matches );
|
|
27
|
-
}
|
|
28
|
-
const foundNumberOfWords = sum( foundWords );
|
|
29
|
-
const result = {
|
|
30
|
-
countWordMatches: foundNumberOfWords,
|
|
31
|
-
percentWordMatches: 0,
|
|
32
|
-
matches: matches,
|
|
33
|
-
};
|
|
34
|
-
|
|
35
|
-
if ( wordNumber > 0 ) {
|
|
36
|
-
result.percentWordMatches = Math.round( foundNumberOfWords / wordNumber * 100 );
|
|
37
|
-
}
|
|
38
|
-
// Filtered out negative number, i.e. -1.
|
|
39
|
-
positions = positions.filter( position => position >= 0 );
|
|
40
|
-
result.position = positions.length === 0 ? -1 : Math.min( ...positions );
|
|
41
|
-
|
|
42
|
-
return result;
|
|
43
|
-
};
|
|
44
|
-
|
|
45
|
-
/**
|
|
46
|
-
* Matches forms of words in the keyphrase and in the synonyms against a given text.
|
|
47
|
-
*
|
|
48
|
-
* @param {Object} topicForms The object with word forms of all (content) words from the keyphrase and eventually synonyms,
|
|
49
|
-
* comes in a shape {
|
|
50
|
-
* keyphraseForms: [[ form1, form2, ... ], [ form1, form2, ... ]],
|
|
51
|
-
* synonymsForms: [
|
|
52
|
-
* [[ form1, form2, ... ], [ form1, form2, ... ]],
|
|
53
|
-
* [[ form1, form2, ... ], [ form1, form2, ... ]],
|
|
54
|
-
* [[ form1, form2, ... ], [ form1, form2, ... ]],
|
|
55
|
-
* ],
|
|
56
|
-
* }
|
|
57
|
-
* @param {string} text The string to match the word forms against.
|
|
58
|
-
* @param {boolean} useSynonyms Whether to use synonyms as if it was keyphrase or not (depends on the assessment).
|
|
59
|
-
* @param {string} locale The locale of the paper.
|
|
60
|
-
* @param {function} matchWordCustomHelper The language-specific helper function to match word in text.
|
|
61
|
-
*
|
|
62
|
-
* @returns {Object} The number and the percentage for the keyphrase words or synonyms that were matched in the text by at least one form,
|
|
63
|
-
* and whether the keyphrase or a synonym was matched.
|
|
64
|
-
*/
|
|
65
|
-
const findTopicFormsInString = function( topicForms, text, useSynonyms, locale, matchWordCustomHelper ) {
|
|
66
|
-
// First check if the keyword is found in the text
|
|
67
|
-
let result = findWordFormsInString( topicForms.keyphraseForms, text, locale, matchWordCustomHelper );
|
|
68
|
-
result.keyphraseOrSynonym = "keyphrase";
|
|
69
|
-
|
|
70
|
-
// If a full match found with the keyword or if no synonyms are supplied or supposed to be used, return the keyphrase search result.
|
|
71
|
-
if ( result.percentWordMatches === 100 || useSynonyms === false || isEmpty( topicForms.synonymsForms ) ) {
|
|
72
|
-
return result;
|
|
73
|
-
}
|
|
74
|
-
|
|
75
|
-
// Collect results of matching of every synonym with the text.
|
|
76
|
-
const resultsSynonyms = [];
|
|
77
|
-
for ( let i = 0; i < topicForms.synonymsForms.length; i++ ) {
|
|
78
|
-
const synonym = topicForms.synonymsForms[ i ];
|
|
79
|
-
resultsSynonyms[ i ] = findWordFormsInString( synonym, text, locale, matchWordCustomHelper );
|
|
80
|
-
}
|
|
81
|
-
|
|
82
|
-
// Find which synonym occurred most fully.
|
|
83
|
-
const foundSynonyms = resultsSynonyms.map( resultSynonyms => resultSynonyms.percentWordMatches );
|
|
84
|
-
const bestSynonymIndex = foundSynonyms.indexOf( Math.max( ...foundSynonyms ) );
|
|
85
|
-
|
|
86
|
-
// If the best synonym showed lower results than the keyword, return the keyword.
|
|
87
|
-
if ( result.percentWordMatches >= resultsSynonyms[ bestSynonymIndex ].percentWordMatches ) {
|
|
88
|
-
return result;
|
|
89
|
-
}
|
|
90
|
-
|
|
91
|
-
// If the best synonym showed better results than the keyword, return the synonym.
|
|
92
|
-
result = resultsSynonyms[ bestSynonymIndex ];
|
|
93
|
-
result.keyphraseOrSynonym = "synonym";
|
|
94
|
-
|
|
95
|
-
return result;
|
|
96
|
-
};
|
|
97
|
-
|
|
98
|
-
export {
|
|
99
|
-
findWordFormsInString,
|
|
100
|
-
findTopicFormsInString,
|
|
101
|
-
};
|