/**
* SEO Keyword Creation Tool - Embed as a Shortcode
* This tool generates a list of SEO keywords based on user input.
*/
class SeoKeywordTool {
constructor(containerId) {
this.containerId = containerId;
}
render() {
const container = document.getElementById(this.containerId);
if (!container) {
console.error('Container not found');
return;
}
container.innerHTML = `
`;
document.getElementById('generateKeywords').addEventListener('click', () => this.generateKeywords());
}
generateKeywords() {
const seedKeyword = document.getElementById('seedKeyword').value.trim();
const relatedKeywords = document.getElementById('relatedKeywords').value.split(',').map(k => k.trim());
if (!seedKeyword) {
alert('Please enter a seed keyword!');
return;
}
const keywordList = this.createKeywords(seedKeyword, relatedKeywords);
const keywordListElement = document.getElementById('keywordList');
keywordListElement.innerHTML = keywordList.map(k => `
${k}`).join('');
}
createKeywords(seedKeyword, relatedKeywords) {
const variations = [
"best",
"cheap",
"how to use",
"advantages of",
"cost of",
"benefits of",
"reviews of",
"where to buy",
"installation of",
];
let keywords = [];
// Add basic variations of the seed keyword
variations.forEach(variation => {
keywords.push(`${variation} ${seedKeyword}`);
});
// Add related keywords with seed keyword
relatedKeywords.forEach(related => {
if (related) {
variations.forEach(variation => {
keywords.push(`${variation} ${related}`);
});
}
});
// Add combinations of seed and related keywords
relatedKeywords.forEach(related => {
if (related) {
keywords.push(`${seedKeyword} ${related}`);
keywords.push(`${related} ${seedKeyword}`);
}
});
return keywords;
}
}
// Example: Initialize the tool and render it in a container with ID "seoTool"
document.addEventListener('DOMContentLoaded', () => {
const seoTool = new SeoKeywordTool('seoTool');
seoTool.render();
});