axyseo 2.0.0-alpha.0.0.33 → 2.0.0-alpha.0.0.34
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.
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"KeywordDensityAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_assessment","_AssessmentResult","_helpers","_keyphraseLengthFactor","e","__esModule","default","KeyphraseDensityAssessment","Assessment","constructor","config","defaultConfig","id","fixPosition","docUrl","ctaType","priority","title","content","good","bad","improve","identifier","_config","merge","getResult","paper","researcher","i18n","_keyphraseCount","getResearch","keyphraseLength","_keyphraseDensity","keyphraseLengthFactor","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","setTitle","density","roundedDensity","parseFloat","toFixed","getScore","createElement","Text","as","href","target","rel","translate","isApplicable","hasText","hasKeyword","_default","exports"],"sources":["../../../../src/scoring/assessments/seo/KeywordDensityAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\n\nimport {calculateKeywordDensity} from '../../../helpers';\nimport keyphraseLengthFactor from '../../../scoring/helpers/assessments/keyphraseLengthFactor';\n\n/**\n * Represents the assessment that will look if the keyphrase density is within the recommended range.\n */\nclass KeyphraseDensityAssessment extends Assessment {\n /**\n *\n * @param config\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'keyphraseDensity',\n fixPosition: 'highlightKeyword',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#main-keyword-density',\n ctaType: 'fix',\n priority: 'high',\n title: 'Main keyword density',\n content: {\n good: 'Keyword density is optimized, between 1 - 1.5%.',\n bad: 'Keep keyword density from 1% - 1.5%.',\n improve: ''\n }\n };\n\n this.identifier = 'keyphraseDensity';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the keyphrase density module, based on this returns an assessment\n * result with score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n *\n * @param i18n\n * @returns {AssessmentResult} The result of the assessment.\n */\n getResult({paper, researcher, i18n}) {\n this._keyphraseCount = researcher.getResearch('getKeyphraseCount');\n const keyphraseLength = this._keyphraseCount.keyphraseLength;\n\n this._keyphraseDensity = researcher.getResearch('getKeyphraseDensity');\n this._keyphraseDensity = this._keyphraseDensity * keyphraseLengthFactor(keyphraseLength);\n\n const assessmentResult = new AssessmentResult({config: this._config});\n\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n assessmentResult.setTitle(calculatedResult.title);\n return assessmentResult;\n }\n\n /**\n * Returns the score for the keyphrase density.\n *\n * @returns {Object} The object with calculated score and resultText.\n */\n calculateResult(paper, i18n) {\n const density = this._keyphraseDensity;\n const roundedDensity = parseFloat(density.toFixed(2));\n\n let status = '';\n if (roundedDensity >= 1 && roundedDensity <= 1.5) {\n status = 'good';\n } else {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n title: (this._config.title || 'Main keyword density') + ': ' + roundedDensity + '%',\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n {i18n ? i18n.translate(`Axyseo.Button.learnMore`) : 'Learn more'}\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Checks whether the paper has a text of the minimum required length and a keyphrase is set. Language-specific length requirements and methods\n * of counting text length may apply (e.g. for Japanese, the text should be counted in characters instead of words, which also makes the minimum\n * required length higher).\n *\n * @param {Paper} \t\tpaper \t\tThe paper to use for the assessment.\n * @param {Researcher} researcher The paper to use for the assessment.\n *\n * @returns {boolean} True if applicable.\n */\n isApplicable(paper, researcher) {\n return paper.hasText() && paper.hasKeyword();\n }\n}\n\nexport default KeyphraseDensityAssessment;\n"],"mappings":";;;;;;AAAA,IAAAA,OAAA,GAAAC,OAAA;AACA,IAAAC,MAAA,GAAAC,sBAAA,CAAAF,OAAA;AACA,IAAAG,QAAA,GAAAH,OAAA;AAEA,IAAAI,WAAA,GAAAF,sBAAA,CAAAF,OAAA;AACA,IAAAK,iBAAA,GAAAH,sBAAA,CAAAF,OAAA;AAEA,IAAAM,QAAA,GAAAN,OAAA;AACA,IAAAO,sBAAA,GAAAL,sBAAA,CAAAF,OAAA;AAA+F,SAAAE,uBAAAM,CAAA,WAAAA,CAAA,IAAAA,CAAA,CAAAC,UAAA,GAAAD,CAAA,KAAAE,OAAA,EAAAF,CAAA;AAE/F;AACA;AACA;AACA,MAAMG,0BAA0B,SAASC,mBAAU,CAAC;EAClD;AACF;AACA;AACA;EACEC,WAAWA,CAACC,MAAM,GAAG,CAAC,CAAC,EAAE;IACvB,KAAK,CAAC,CAAC;IAEP,MAAMC,aAAa,GAAG;MACpBC,EAAE,EAAE,kBAAkB;MACtBC,WAAW,EAAE,kBAAkB;MAC/BC,MAAM,EACJ,kGAAkG;MACpGC,OAAO,EAAE,KAAK;MACdC,QAAQ,EAAE,MAAM;MAChBC,KAAK,EAAE,sBAAsB;MAC7BC,OAAO,EAAE;QACPC,IAAI,EAAE,iDAAiD;QACvDC,GAAG,EAAE,sCAAsC;QAC3CC,OAAO,EAAE;MACX;IACF,CAAC;IAED,IAAI,CAACC,UAAU,GAAG,kBAAkB;IACpC,IAAI,CAACC,OAAO,GAAG,IAAAC,aAAK,EAACb,aAAa,EAAED,MAAM,CAAC;EAC7C;;EAEA;AACF;AACA;AACA;AACA;AACA;AACA;AACA;AACA;AACA;EACEe,SAASA,CAAC;IAACC,KAAK;IAAEC,UAAU;IAAEC;EAAI,CAAC,EAAE;IACnC,IAAI,CAACC,eAAe,GAAGF,UAAU,CAACG,WAAW,CAAC,mBAAmB,CAAC;IAClE,MAAMC,eAAe,GAAG,IAAI,CAACF,eAAe,CAACE,eAAe;IAE5D,IAAI,CAACC,iBAAiB,GAAGL,UAAU,CAACG,WAAW,CAAC,qBAAqB,CAAC;
|
|
1
|
+
{"version":3,"file":"KeywordDensityAssessment.js","names":["_lodash","require","_react","_interopRequireDefault","_polaris","_assessment","_AssessmentResult","_helpers","_keyphraseLengthFactor","e","__esModule","default","KeyphraseDensityAssessment","Assessment","constructor","config","defaultConfig","id","fixPosition","docUrl","ctaType","priority","title","content","good","bad","improve","identifier","_config","merge","getResult","paper","researcher","i18n","_keyphraseCount","getResearch","keyphraseLength","_keyphraseDensity","keyphraseLengthFactor","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","setTitle","density","roundedDensity","parseFloat","toFixed","getScore","createElement","Text","as","href","target","rel","translate","isApplicable","hasText","hasKeyword","_default","exports"],"sources":["../../../../src/scoring/assessments/seo/KeywordDensityAssessment.js"],"sourcesContent":["import {merge} from 'lodash';\nimport React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\n\nimport {calculateKeywordDensity} from '../../../helpers';\nimport keyphraseLengthFactor from '../../../scoring/helpers/assessments/keyphraseLengthFactor';\n\n/**\n * Represents the assessment that will look if the keyphrase density is within the recommended range.\n */\nclass KeyphraseDensityAssessment extends Assessment {\n /**\n *\n * @param config\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'keyphraseDensity',\n fixPosition: 'highlightKeyword',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#main-keyword-density',\n ctaType: 'fix',\n priority: 'high',\n title: 'Main keyword density',\n content: {\n good: 'Keyword density is optimized, between 1 - 1.5%.',\n bad: 'Keep keyword density from 1% - 1.5%.',\n improve: ''\n }\n };\n\n this.identifier = 'keyphraseDensity';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the keyphrase density module, based on this returns an assessment\n * result with score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n *\n * @param i18n\n * @returns {AssessmentResult} The result of the assessment.\n */\n getResult({paper, researcher, i18n}) {\n this._keyphraseCount = researcher.getResearch('getKeyphraseCount');\n const keyphraseLength = this._keyphraseCount.keyphraseLength;\n\n this._keyphraseDensity = researcher.getResearch('getKeyphraseDensity');\n\n this._keyphraseDensity = this._keyphraseDensity * keyphraseLengthFactor(keyphraseLength);\n\n const assessmentResult = new AssessmentResult({config: this._config});\n\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n assessmentResult.setTitle(calculatedResult.title);\n return assessmentResult;\n }\n\n /**\n * Returns the score for the keyphrase density.\n *\n * @returns {Object} The object with calculated score and resultText.\n */\n calculateResult(paper, i18n) {\n const density = this._keyphraseDensity;\n const roundedDensity = parseFloat(density.toFixed(2));\n\n let status = '';\n if (roundedDensity >= 1 && roundedDensity <= 1.5) {\n status = 'good';\n } else {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n title: (this._config.title || 'Main keyword density') + ': ' + roundedDensity + '%',\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n {i18n ? i18n.translate(`Axyseo.Button.learnMore`) : 'Learn more'}\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Checks whether the paper has a text of the minimum required length and a keyphrase is set. Language-specific length requirements and methods\n * of counting text length may apply (e.g. for Japanese, the text should be counted in characters instead of words, which also makes the minimum\n * required length higher).\n *\n * @param {Paper} \t\tpaper \t\tThe paper to use for the assessment.\n * @param {Researcher} researcher The paper to use for the assessment.\n *\n * @returns {boolean} True if applicable.\n */\n isApplicable(paper, researcher) {\n return paper.hasText() && paper.hasKeyword();\n }\n}\n\nexport default KeyphraseDensityAssessment;\n"],"mappings":"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","ignoreList":[]}
|
|
@@ -54,7 +54,6 @@ class SubHeadingsKeywordAssessment extends _assessment.default {
|
|
|
54
54
|
i18n
|
|
55
55
|
}) {
|
|
56
56
|
this._subHeadings = researcher.getResearch('matchKeywordInSubheadings');
|
|
57
|
-
console.log(this._subHeadings);
|
|
58
57
|
const assessmentResult = new _AssessmentResult.default({
|
|
59
58
|
config: this._config
|
|
60
59
|
});
|
|
@@ -73,7 +72,7 @@ class SubHeadingsKeywordAssessment extends _assessment.default {
|
|
|
73
72
|
*/
|
|
74
73
|
calculateResult(paper, i18n) {
|
|
75
74
|
let status = '';
|
|
76
|
-
if (this._subHeadings.
|
|
75
|
+
if (this._subHeadings.matches > 0) {
|
|
77
76
|
status = 'good';
|
|
78
77
|
} else {
|
|
79
78
|
status = 'bad';
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"SubHeadingsKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","e","__esModule","default","SubHeadingsKeywordAssessment","Assessment","constructor","config","defaultConfig","id","ctaType","docUrl","priority","fixPosition","title","content","good","bad","improve","identifier","_config","merge","getResult","paper","researcher","i18n","_subHeadings","getResearch","
|
|
1
|
+
{"version":3,"file":"SubHeadingsKeywordAssessment.js","names":["_react","_interopRequireDefault","require","_polaris","_lodash","_assessment","_AssessmentResult","e","__esModule","default","SubHeadingsKeywordAssessment","Assessment","constructor","config","defaultConfig","id","ctaType","docUrl","priority","fixPosition","title","content","good","bad","improve","identifier","_config","merge","getResult","paper","researcher","i18n","_subHeadings","getResearch","assessmentResult","AssessmentResult","calculatedResult","calculateResult","setScore","score","setStatus","status","setBody","body","matches","getScore","createElement","Text","as","href","target","rel","translate","isApplicable","hasKeyword","exports"],"sources":["../../../../src/scoring/assessments/seo/SubHeadingsKeywordAssessment.js"],"sourcesContent":["import React from 'react';\nimport {Text} from '@shopify/polaris';\n\nimport {merge} from 'lodash';\nimport Assessment from '../assessment';\nimport AssessmentResult from '../../../values/AssessmentResult';\n\n/**\n * Represents the assessment that checks if the keyword is present in one of the subheadings.\n */\nexport default class SubHeadingsKeywordAssessment extends Assessment {\n /**\n * Sets the identifier and the config.\n *\n * @param {object} config The configuration to use.\n *\n * @returns {void}\n */\n constructor(config = {}) {\n super();\n\n const defaultConfig = {\n id: 'subheadingsKeyword',\n ctaType: 'fix',\n docUrl:\n 'https://docs.avada.io/seo-suite-help-center/seo-audit/on-page-seo/checklist#keyword-in-subheading',\n priority: 'medium',\n fixPosition: 'subheading',\n title: 'Keyword in Subheading',\n content: {\n good: 'Keywords are included in subheadings.',\n bad:\n 'Keyword not found in any subheadings. Include it in at least one subheading (H2, H3, etc.).',\n improve: ''\n }\n };\n\n this.identifier = 'subheadingsKeyword';\n this._config = merge(defaultConfig, config);\n }\n\n /**\n * Runs the h1 research and based on this returns an assessment result with a score.\n *\n * @param {Paper} paper The paper to use for the assessment.\n * @param {Researcher} researcher The researcher used for calling the research.\n * @param i18n\n * @returns {AssessmentResult} The assessment result.\n */\n getResult({paper, researcher, i18n}) {\n this._subHeadings = researcher.getResearch('matchKeywordInSubheadings');\n\n const assessmentResult = new AssessmentResult({config: this._config});\n\n const calculatedResult = this.calculateResult(paper, i18n);\n\n assessmentResult.setScore(calculatedResult.score);\n assessmentResult.setStatus(calculatedResult.status);\n assessmentResult.setBody(calculatedResult.body);\n\n return assessmentResult;\n }\n\n /**\n *\n * @param paper\n * @param i18n\n * @returns {{score: number, body: React.JSX.Element, status: string}}\n */\n calculateResult(paper, i18n) {\n let status = '';\n if (this._subHeadings.matches > 0) {\n status = 'good';\n } else {\n status = 'bad';\n }\n\n const score = this.getScore(this._config.priority, status);\n\n return {\n score,\n status,\n body: (\n <Text as={'span'}>\n {this._config.content[status]}{' '}\n {this._config.docUrl && (\n <a href={this._config.docUrl} target=\"_blank\" rel=\"noreferrer\">\n {i18n ? i18n.translate(`Axyseo.Button.learnMore`) : 'Learn more'}\n </a>\n )}\n </Text>\n )\n };\n }\n\n /**\n * Checks whether the paper has a text.\n *\n * @param {Paper} paper The paper to use for the assessment.\n *\n * @returns {boolean} True when there is text.\n */\n isApplicable(paper) {\n return paper.hasKeyword();\n }\n}\n"],"mappings":"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","ignoreList":[]}
|