Add 1 files
Browse files- index.html +580 -155
index.html
CHANGED
|
@@ -15,11 +15,13 @@
|
|
| 15 |
secondary: '#10B981',
|
| 16 |
dark: '#1F2937',
|
| 17 |
light: '#F9FAFB',
|
| 18 |
-
accent: '#F59E0B'
|
|
|
|
| 19 |
},
|
| 20 |
animation: {
|
| 21 |
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
|
| 22 |
-
'bounce-slow': 'bounce 2s infinite'
|
|
|
|
| 23 |
}
|
| 24 |
}
|
| 25 |
}
|
|
@@ -119,11 +121,118 @@
|
|
| 119 |
background: conic-gradient(#10B981 0% 75%, #F59E0B 75% 90%, #EF4444 90% 100%);
|
| 120 |
color: white;
|
| 121 |
}
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 122 |
</style>
|
| 123 |
</head>
|
| 124 |
<body class="bg-gray-50 font-sans">
|
| 125 |
<!-- Navigation -->
|
| 126 |
-
<nav class="bg-white shadow-sm">
|
| 127 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 128 |
<div class="flex justify-between h-16">
|
| 129 |
<div class="flex items-center">
|
|
@@ -191,6 +300,8 @@
|
|
| 191 |
<option selected>Gemini Pro</option>
|
| 192 |
<option>GPT-4 Turbo</option>
|
| 193 |
<option>Claude 3</option>
|
|
|
|
|
|
|
| 194 |
</select>
|
| 195 |
</div>
|
| 196 |
<div>
|
|
@@ -202,6 +313,8 @@
|
|
| 202 |
<option>FAQ Section</option>
|
| 203 |
<option>How-To Guide</option>
|
| 204 |
<option>Comparison Article</option>
|
|
|
|
|
|
|
| 205 |
</select>
|
| 206 |
</div>
|
| 207 |
<div>
|
|
@@ -213,6 +326,8 @@
|
|
| 213 |
<option>Authoritative</option>
|
| 214 |
<option>Technical</option>
|
| 215 |
<option>Persuasive</option>
|
|
|
|
|
|
|
| 216 |
</select>
|
| 217 |
</div>
|
| 218 |
<div>
|
|
@@ -223,6 +338,20 @@
|
|
| 223 |
<option>Tech Savvy</option>
|
| 224 |
<option>Beginners</option>
|
| 225 |
<option>Experts</option>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 226 |
</select>
|
| 227 |
</div>
|
| 228 |
</div>
|
|
@@ -251,7 +380,7 @@
|
|
| 251 |
content automation
|
| 252 |
<button type="button"><i class="fas fa-times"></i></button>
|
| 253 |
</span>
|
| 254 |
-
<input type="text" class="flex-grow bg-transparent focus:outline-none text-sm" placeholder="Add keyword...">
|
| 255 |
</div>
|
| 256 |
</div>
|
| 257 |
<div>
|
|
@@ -280,9 +409,17 @@
|
|
| 280 |
<input id="generate-tables" name="generate-tables" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 281 |
<label for="generate-tables" class="ml-2 block text-sm text-gray-700">Data Tables</label>
|
| 282 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 283 |
</div>
|
| 284 |
<div class="pt-2">
|
| 285 |
-
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center">
|
| 286 |
<i class="fas fa-magic mr-2"></i> Optimize Content
|
| 287 |
</button>
|
| 288 |
</div>
|
|
@@ -325,6 +462,10 @@
|
|
| 325 |
<input id="add-quotes" name="add-quotes" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 326 |
<label for="add-quotes" class="ml-2 block text-sm text-gray-700">Expert Quotes</label>
|
| 327 |
</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
| 328 |
</div>
|
| 329 |
</div>
|
| 330 |
</div>
|
|
@@ -338,7 +479,7 @@
|
|
| 338 |
<button class="px-3 py-1 border border-gray-300 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-50 flex items-center">
|
| 339 |
<i class="fas fa-save mr-1"></i> Save Draft
|
| 340 |
</button>
|
| 341 |
-
<button class="px-3 py-1 bg-primary text-white rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center">
|
| 342 |
<i class="fas fa-robot mr-1"></i> Generate Content
|
| 343 |
</button>
|
| 344 |
</div>
|
|
@@ -346,82 +487,58 @@
|
|
| 346 |
|
| 347 |
<div class="mb-4">
|
| 348 |
<label class="block text-sm font-medium text-gray-700 mb-1">Title</label>
|
| 349 |
-
<input type="text" class="mt-1 focus:ring-primary focus:border-primary block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="Enter your article title" value="The Ultimate Guide to AI-Powered SEO Content Creation">
|
| 350 |
</div>
|
| 351 |
|
| 352 |
<div class="mb-4">
|
| 353 |
<label class="block text-sm font-medium text-gray-700 mb-1">Meta Description</label>
|
| 354 |
-
<textarea rows="2" class="mt-1 focus:ring-primary focus:border-primary block w-full shadow-sm sm:text-sm border-gray-300 rounded-md">Learn how AI can revolutionize your SEO content strategy with automated content generation, optimization, and performance tracking.</textarea>
|
| 355 |
</div>
|
| 356 |
|
| 357 |
<div class="flex border-b border-gray-200 mb-4">
|
| 358 |
-
<button class="tab-active py-2 px-4 text-sm font-medium">Editor</button>
|
| 359 |
-
<button class="py-2 px-4 text-sm font-medium text-gray-500 hover:text-gray-700">HTML</button>
|
| 360 |
-
<button class="py-2 px-4 text-sm font-medium text-gray-500 hover:text-gray-700">Preview</button>
|
| 361 |
</div>
|
| 362 |
|
| 363 |
-
<div class="content-editor">
|
| 364 |
-
<
|
| 365 |
-
<p>In today's digital landscape, creating high-quality, SEO-optimized content consistently is crucial for online success. However, the process can be time-consuming and resource-intensive. This is where AI-powered SEO content creation comes into play, offering a revolutionary approach to content marketing.</p>
|
| 366 |
-
|
| 367 |
-
<h2>Why AI for SEO Content?</h2>
|
| 368 |
-
<p>Artificial Intelligence has transformed how we approach content creation by:</p>
|
| 369 |
-
<ul>
|
| 370 |
-
<li>Generating human-like content at scale</li>
|
| 371 |
-
<li>Optimizing for search intent automatically</li>
|
| 372 |
-
<li>Analyzing competitor content for gaps</li>
|
| 373 |
-
<li>Suggesting relevant keywords and topics</li>
|
| 374 |
-
<li>Ensuring consistent quality and tone</li>
|
| 375 |
-
</ul>
|
| 376 |
-
|
| 377 |
-
<h2>Key Features of AI SEO Tools</h2>
|
| 378 |
-
<h3>1. Automated Content Generation</h3>
|
| 379 |
-
<p>Modern AI tools can create complete blog posts, product descriptions, and landing pages based on simple prompts. These tools analyze top-ranking content and generate similar quality material in minutes.</p>
|
| 380 |
-
|
| 381 |
-
<h3>2. SEO Optimization</h3>
|
| 382 |
-
<p>AI doesn't just create content—it optimizes it for search engines by:</p>
|
| 383 |
-
<ul>
|
| 384 |
-
<li>Automatically including primary and secondary keywords</li>
|
| 385 |
-
<li>Structuring content with proper heading hierarchy</li>
|
| 386 |
-
<li>Generating meta titles and descriptions</li>
|
| 387 |
-
<li>Creating schema markup for rich snippets</li>
|
| 388 |
-
</ul>
|
| 389 |
-
|
| 390 |
-
<h2>FAQ Section</h2>
|
| 391 |
-
<div class="bg-gray-50 p-4 rounded-lg">
|
| 392 |
-
<h3 class="font-medium mb-2">What is AI-generated SEO content?</h3>
|
| 393 |
-
<p class="mb-4">AI-generated SEO content is text created by artificial intelligence that's optimized for search engines, incorporating relevant keywords, proper structure, and search intent alignment.</p>
|
| 394 |
-
|
| 395 |
-
<h3 class="font-medium mb-2">How does AI help with SEO?</h3>
|
| 396 |
-
<p class="mb-4">AI assists with SEO by analyzing search trends, suggesting content topics, optimizing existing content, and automating technical SEO tasks like schema markup generation.</p>
|
| 397 |
-
|
| 398 |
-
<h3 class="font-medium mb-2">Is AI content good for SEO?</h3>
|
| 399 |
-
<p>When properly optimized and edited, AI-generated content can perform just as well as human-written content in search rankings, often with greater efficiency and scalability.</p>
|
| 400 |
-
</div>
|
| 401 |
</div>
|
| 402 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 403 |
<div class="mt-4 flex justify-between items-center">
|
| 404 |
<div class="flex space-x-2">
|
| 405 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 406 |
<i class="fas fa-bold"></i>
|
| 407 |
</button>
|
| 408 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 409 |
<i class="fas fa-italic"></i>
|
| 410 |
</button>
|
| 411 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 412 |
<i class="fas fa-list-ul"></i>
|
| 413 |
</button>
|
| 414 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 415 |
<i class="fas fa-list-ol"></i>
|
| 416 |
</button>
|
| 417 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 418 |
<i class="fas fa-link"></i>
|
| 419 |
</button>
|
| 420 |
-
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100">
|
| 421 |
<i class="fas fa-image"></i>
|
| 422 |
</button>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 423 |
</div>
|
| 424 |
-
<button class="px-4 py-2 bg-green-600 text-white rounded-md text-sm font-medium hover:bg-green-700 flex items-center">
|
| 425 |
<i class="fas fa-check-circle mr-2"></i> Publish Now
|
| 426 |
</button>
|
| 427 |
</div>
|
|
@@ -438,13 +555,13 @@
|
|
| 438 |
<div>
|
| 439 |
<div class="flex justify-between mb-1">
|
| 440 |
<span class="text-sm font-medium text-gray-700">SEO Score</span>
|
| 441 |
-
<span class="text-sm font-medium text-primary">87/100</span>
|
| 442 |
</div>
|
| 443 |
<div class="seo-score-meter">
|
| 444 |
-
<div class="seo-score-progress" style="width: 87%"></div>
|
| 445 |
</div>
|
| 446 |
</div>
|
| 447 |
-
<div class="readability-score">B+</div>
|
| 448 |
</div>
|
| 449 |
<div class="grid grid-cols-2 gap-4">
|
| 450 |
<div class="bg-green-50 p-3 rounded-lg">
|
|
@@ -473,7 +590,7 @@
|
|
| 473 |
</div>
|
| 474 |
</div>
|
| 475 |
<div class="pt-2">
|
| 476 |
-
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center">
|
| 477 |
<i class="fas fa-search mr-2"></i> Run Full SEO Audit
|
| 478 |
</button>
|
| 479 |
</div>
|
|
@@ -505,10 +622,12 @@
|
|
| 505 |
<div class="text-sm text-gray-600">How does AI content generation work?</div>
|
| 506 |
<div class="text-sm text-gray-600">What are the best AI writing tools?</div>
|
| 507 |
<div class="text-sm text-gray-600">Is AI-generated content good for SEO?</div>
|
|
|
|
|
|
|
| 508 |
</div>
|
| 509 |
</div>
|
| 510 |
<div class="pt-2">
|
| 511 |
-
<button class="w-full bg-gray-100 text-gray-700 py-2 px-4 rounded-md text-sm font-medium hover:bg-gray-200 flex items-center justify-center">
|
| 512 |
<i class="fas fa-sync-alt mr-2"></i> Refresh Suggestions
|
| 513 |
</button>
|
| 514 |
</div>
|
|
@@ -532,13 +651,49 @@
|
|
| 532 |
<div class="text-sm">"@type": "BreadcrumbList"</div>
|
| 533 |
</div>
|
| 534 |
<div class="pt-2">
|
| 535 |
-
<button class="w-full bg-gray-100 text-gray-700 py-2 px-4 rounded-md text-sm font-medium hover:bg-gray-200 flex items-center justify-center">
|
| 536 |
<i class="fas fa-edit mr-2"></i> Edit Schema
|
| 537 |
</button>
|
| 538 |
</div>
|
| 539 |
</div>
|
| 540 |
</div>
|
| 541 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 542 |
<!-- Publishing Options -->
|
| 543 |
<div class="bg-white p-6 rounded-lg shadow-sm">
|
| 544 |
<h3 class="text-lg font-medium text-dark mb-4">Publishing Options</h3>
|
|
@@ -560,7 +715,7 @@
|
|
| 560 |
<label for="notify-subscribers" class="ml-2 block text-sm text-gray-700">Notify email subscribers</label>
|
| 561 |
</div>
|
| 562 |
<div class="pt-2">
|
| 563 |
-
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center">
|
| 564 |
<i class="fas fa-paper-plane mr-2"></i> Publish Now
|
| 565 |
</button>
|
| 566 |
</div>
|
|
@@ -596,107 +751,69 @@
|
|
| 596 |
</footer>
|
| 597 |
|
| 598 |
<script>
|
| 599 |
-
// Simulate content generation
|
| 600 |
-
document.querySelectorAll('.bg-primary').forEach(button => {
|
| 601 |
-
button.addEventListener('click', function() {
|
| 602 |
-
if(this.textContent.includes('Generate')) {
|
| 603 |
-
const editor = document.querySelector('.content-editor');
|
| 604 |
-
editor.innerHTML = `
|
| 605 |
-
<div class="text-center py-8">
|
| 606 |
-
<div class="animate-pulse-slow text-gray-500">
|
| 607 |
-
<i class="fas fa-robot text-4xl mb-4 animate-bounce-slow"></i>
|
| 608 |
-
<p>Generating high-quality SEO content with AI...</p>
|
| 609 |
-
<p class="text-xs mt-2">Analyzing top-ranking content for "AI content generation"</p>
|
| 610 |
-
</div>
|
| 611 |
-
</div>
|
| 612 |
-
`;
|
| 613 |
-
|
| 614 |
-
setTimeout(() => {
|
| 615 |
-
editor.innerHTML = `
|
| 616 |
-
<h2>Introduction</h2>
|
| 617 |
-
<p>AI-powered SEO content creation is transforming digital marketing strategies by combining artificial intelligence with search engine optimization techniques. This innovative approach enables businesses to produce optimized content at scale while maintaining quality and relevance.</p>
|
| 618 |
-
|
| 619 |
-
<h2>Key Benefits of AI SEO Content</h2>
|
| 620 |
-
<ul>
|
| 621 |
-
<li><strong>Time Efficiency:</strong> Reduce content creation time by up to 80%</li>
|
| 622 |
-
<li><strong>Consistent Quality:</strong> Maintain uniform tone and style across all content</li>
|
| 623 |
-
<li><strong>Data-Driven Optimization:</strong> Leverage real-time SEO data for better rankings</li>
|
| 624 |
-
<li><strong>Scalability:</strong> Produce more content without proportional resource increase</li>
|
| 625 |
-
</ul>
|
| 626 |
-
|
| 627 |
-
<h2>Best Practices for AI-Generated Content</h2>
|
| 628 |
-
<h3>1. Human Editing is Essential</h3>
|
| 629 |
-
<p>While AI can produce excellent drafts, human editors should review for:</p>
|
| 630 |
-
<ul>
|
| 631 |
-
<li>Brand voice consistency</li>
|
| 632 |
-
<li>Factual accuracy</li>
|
| 633 |
-
<li>Natural flow and readability</li>
|
| 634 |
-
</ul>
|
| 635 |
-
|
| 636 |
-
<h3>2. Combine Multiple AI Models</h3>
|
| 637 |
-
<p>For best results, use specialized models for different content needs:</p>
|
| 638 |
-
<table class="min-w-full divide-y divide-gray-200 mt-2 mb-4">
|
| 639 |
-
<thead class="bg-gray-50">
|
| 640 |
-
<tr>
|
| 641 |
-
<th class="px-3 py-2 text-left text-xs font-medium text-gray-500 uppercase">Task</th>
|
| 642 |
-
<th class="px-3 py-2 text-left text-xs font-medium text-gray-500 uppercase">Recommended Model</th>
|
| 643 |
-
</tr>
|
| 644 |
-
</thead>
|
| 645 |
-
<tbody class="bg-white divide-y divide-gray-200">
|
| 646 |
-
<tr>
|
| 647 |
-
<td class="px-3 py-2 text-sm">Blog Content</td>
|
| 648 |
-
<td class="px-3 py-2 text-sm">GPT-4 Turbo</td>
|
| 649 |
-
</tr>
|
| 650 |
-
<tr>
|
| 651 |
-
<td class="px-3 py-2 text-sm">Product Descriptions</td>
|
| 652 |
-
<td class="px-3 py-2 text-sm">Claude 3</td>
|
| 653 |
-
</tr>
|
| 654 |
-
<tr>
|
| 655 |
-
<td class="px-3 py-2 text-sm">Technical SEO</td>
|
| 656 |
-
<td class="px-3 py-2 text-sm">Gemini Pro</td>
|
| 657 |
-
</tr>
|
| 658 |
-
</tbody>
|
| 659 |
-
</table>
|
| 660 |
-
|
| 661 |
-
<div class="bg-blue-50 p-4 rounded-lg mt-6">
|
| 662 |
-
<h3 class="font-medium text-blue-800 mb-2">Pro Tip</h3>
|
| 663 |
-
<p class="text-blue-700">For featured snippet optimization, structure content in clear, concise paragraphs and use numbered lists for step-by-step guides.</p>
|
| 664 |
-
</div>
|
| 665 |
-
`;
|
| 666 |
-
|
| 667 |
-
// Update SEO score
|
| 668 |
-
document.querySelector('.seo-score-progress').style.width = '92%';
|
| 669 |
-
document.querySelector('.seo-score-progress').nextElementSibling.textContent = '92/100';
|
| 670 |
-
|
| 671 |
-
// Show success notification
|
| 672 |
-
const notification = document.createElement('div');
|
| 673 |
-
notification.className = 'fixed bottom-4 right-4 bg-green-500 text-white px-4 py-2 rounded-md shadow-lg flex items-center';
|
| 674 |
-
notification.innerHTML = `
|
| 675 |
-
<i class="fas fa-check-circle mr-2"></i> Content generated successfully!
|
| 676 |
-
<button class="ml-4" onclick="this.parentElement.remove()">
|
| 677 |
-
<i class="fas fa-times"></i>
|
| 678 |
-
</button>
|
| 679 |
-
`;
|
| 680 |
-
document.body.appendChild(notification);
|
| 681 |
-
setTimeout(() => notification.remove(), 5000);
|
| 682 |
-
}, 3000);
|
| 683 |
-
}
|
| 684 |
-
});
|
| 685 |
-
});
|
| 686 |
-
|
| 687 |
// Tab switching
|
| 688 |
-
const tabs = document.querySelectorAll('
|
| 689 |
tabs.forEach(tab => {
|
| 690 |
tab.addEventListener('click', () => {
|
| 691 |
-
|
| 692 |
-
tabs.forEach(t =>
|
|
|
|
|
|
|
|
|
|
| 693 |
tab.classList.add('tab-active', 'text-dark');
|
| 694 |
tab.classList.remove('text-gray-500');
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 695 |
});
|
| 696 |
});
|
| 697 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 698 |
// Add keyword on Enter key
|
| 699 |
-
const keywordInput = document.
|
| 700 |
keywordInput.addEventListener('keydown', (e) => {
|
| 701 |
if(e.key === 'Enter' && keywordInput.value.trim()) {
|
| 702 |
const container = keywordInput.parentElement;
|
|
@@ -715,6 +832,314 @@
|
|
| 715 |
});
|
| 716 |
}
|
| 717 |
});
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 718 |
</script>
|
| 719 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - <a href="https://enzostvs-deepsite.hf.space?remix=Gughanmk/ai" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body>
|
| 720 |
</html>
|
|
|
|
| 15 |
secondary: '#10B981',
|
| 16 |
dark: '#1F2937',
|
| 17 |
light: '#F9FAFB',
|
| 18 |
+
accent: '#F59E0B',
|
| 19 |
+
danger: '#EF4444'
|
| 20 |
},
|
| 21 |
animation: {
|
| 22 |
'pulse-slow': 'pulse 3s cubic-bezier(0.4, 0, 0.6, 1) infinite',
|
| 23 |
+
'bounce-slow': 'bounce 2s infinite',
|
| 24 |
+
'spin-slow': 'spin 3s linear infinite'
|
| 25 |
}
|
| 26 |
}
|
| 27 |
}
|
|
|
|
| 121 |
background: conic-gradient(#10B981 0% 75%, #F59E0B 75% 90%, #EF4444 90% 100%);
|
| 122 |
color: white;
|
| 123 |
}
|
| 124 |
+
.content-placeholder {
|
| 125 |
+
color: #9CA3AF;
|
| 126 |
+
pointer-events: none;
|
| 127 |
+
user-select: none;
|
| 128 |
+
}
|
| 129 |
+
.editor-toolbar {
|
| 130 |
+
position: sticky;
|
| 131 |
+
top: 0;
|
| 132 |
+
background: white;
|
| 133 |
+
z-index: 10;
|
| 134 |
+
padding: 0.5rem 0;
|
| 135 |
+
border-bottom: 1px solid #E5E7EB;
|
| 136 |
+
margin-bottom: 1rem;
|
| 137 |
+
}
|
| 138 |
+
.floating-toolbar {
|
| 139 |
+
position: absolute;
|
| 140 |
+
background: white;
|
| 141 |
+
box-shadow: 0 4px 6px -1px rgba(0, 0, 0, 0.1), 0 2px 4px -1px rgba(0, 0, 0, 0.06);
|
| 142 |
+
border-radius: 0.375rem;
|
| 143 |
+
display: none;
|
| 144 |
+
z-index: 20;
|
| 145 |
+
}
|
| 146 |
+
.content-editor:focus-within .floating-toolbar {
|
| 147 |
+
display: flex;
|
| 148 |
+
}
|
| 149 |
+
.ai-suggestion {
|
| 150 |
+
background-color: #F0FDF4;
|
| 151 |
+
border-left: 3px solid #10B981;
|
| 152 |
+
padding: 0.75rem;
|
| 153 |
+
margin: 0.5rem 0;
|
| 154 |
+
border-radius: 0.25rem;
|
| 155 |
+
position: relative;
|
| 156 |
+
}
|
| 157 |
+
.ai-suggestion-actions {
|
| 158 |
+
position: absolute;
|
| 159 |
+
right: 0.5rem;
|
| 160 |
+
top: 0.5rem;
|
| 161 |
+
}
|
| 162 |
+
.content-editor h2 {
|
| 163 |
+
font-size: 1.5rem;
|
| 164 |
+
font-weight: 600;
|
| 165 |
+
margin: 1.5rem 0 1rem 0;
|
| 166 |
+
color: #1F2937;
|
| 167 |
+
}
|
| 168 |
+
.content-editor h3 {
|
| 169 |
+
font-size: 1.25rem;
|
| 170 |
+
font-weight: 600;
|
| 171 |
+
margin: 1.25rem 0 0.75rem 0;
|
| 172 |
+
color: #1F2937;
|
| 173 |
+
}
|
| 174 |
+
.content-editor p {
|
| 175 |
+
margin: 0.75rem 0;
|
| 176 |
+
line-height: 1.6;
|
| 177 |
+
}
|
| 178 |
+
.content-editor ul, .content-editor ol {
|
| 179 |
+
margin: 0.75rem 0;
|
| 180 |
+
padding-left: 1.5rem;
|
| 181 |
+
}
|
| 182 |
+
.content-editor li {
|
| 183 |
+
margin: 0.25rem 0;
|
| 184 |
+
}
|
| 185 |
+
.content-editor table {
|
| 186 |
+
width: 100%;
|
| 187 |
+
border-collapse: collapse;
|
| 188 |
+
margin: 1rem 0;
|
| 189 |
+
}
|
| 190 |
+
.content-editor th, .content-editor td {
|
| 191 |
+
border: 1px solid #E5E7EB;
|
| 192 |
+
padding: 0.5rem;
|
| 193 |
+
text-align: left;
|
| 194 |
+
}
|
| 195 |
+
.content-editor th {
|
| 196 |
+
background-color: #F3F4F6;
|
| 197 |
+
font-weight: 600;
|
| 198 |
+
}
|
| 199 |
+
.content-editor blockquote {
|
| 200 |
+
border-left: 4px solid #E5E7EB;
|
| 201 |
+
padding-left: 1rem;
|
| 202 |
+
margin: 1rem 0;
|
| 203 |
+
color: #6B7280;
|
| 204 |
+
}
|
| 205 |
+
.content-editor img {
|
| 206 |
+
max-width: 100%;
|
| 207 |
+
height: auto;
|
| 208 |
+
margin: 1rem 0;
|
| 209 |
+
border-radius: 0.375rem;
|
| 210 |
+
}
|
| 211 |
+
.content-editor a {
|
| 212 |
+
color: #4F46E5;
|
| 213 |
+
text-decoration: underline;
|
| 214 |
+
}
|
| 215 |
+
.content-editor a:hover {
|
| 216 |
+
color: #4338CA;
|
| 217 |
+
}
|
| 218 |
+
.content-editor .code-block {
|
| 219 |
+
background-color: #F3F4F6;
|
| 220 |
+
padding: 1rem;
|
| 221 |
+
border-radius: 0.375rem;
|
| 222 |
+
font-family: monospace;
|
| 223 |
+
margin: 1rem 0;
|
| 224 |
+
overflow-x: auto;
|
| 225 |
+
}
|
| 226 |
+
.content-editor .ai-highlight {
|
| 227 |
+
background-color: #EFF6FF;
|
| 228 |
+
padding: 0.25rem;
|
| 229 |
+
border-radius: 0.125rem;
|
| 230 |
+
}
|
| 231 |
</style>
|
| 232 |
</head>
|
| 233 |
<body class="bg-gray-50 font-sans">
|
| 234 |
<!-- Navigation -->
|
| 235 |
+
<nav class="bg-white shadow-sm sticky top-0 z-50">
|
| 236 |
<div class="max-w-7xl mx-auto px-4 sm:px-6 lg:px-8">
|
| 237 |
<div class="flex justify-between h-16">
|
| 238 |
<div class="flex items-center">
|
|
|
|
| 300 |
<option selected>Gemini Pro</option>
|
| 301 |
<option>GPT-4 Turbo</option>
|
| 302 |
<option>Claude 3</option>
|
| 303 |
+
<option>Llama 3</option>
|
| 304 |
+
<option>Mistral 7B</option>
|
| 305 |
</select>
|
| 306 |
</div>
|
| 307 |
<div>
|
|
|
|
| 313 |
<option>FAQ Section</option>
|
| 314 |
<option>How-To Guide</option>
|
| 315 |
<option>Comparison Article</option>
|
| 316 |
+
<option>News Article</option>
|
| 317 |
+
<option>Case Study</option>
|
| 318 |
</select>
|
| 319 |
</div>
|
| 320 |
<div>
|
|
|
|
| 326 |
<option>Authoritative</option>
|
| 327 |
<option>Technical</option>
|
| 328 |
<option>Persuasive</option>
|
| 329 |
+
<option>Humorous</option>
|
| 330 |
+
<option>Formal</option>
|
| 331 |
</select>
|
| 332 |
</div>
|
| 333 |
<div>
|
|
|
|
| 338 |
<option>Tech Savvy</option>
|
| 339 |
<option>Beginners</option>
|
| 340 |
<option>Experts</option>
|
| 341 |
+
<option>Students</option>
|
| 342 |
+
<option>Seniors</option>
|
| 343 |
+
</select>
|
| 344 |
+
</div>
|
| 345 |
+
<div>
|
| 346 |
+
<label class="block text-sm font-medium text-gray-700 mb-1">Content Language</label>
|
| 347 |
+
<select class="mt-1 block w-full pl-3 pr-10 py-2 text-base border-gray-300 focus:outline-none focus:ring-primary focus:border-primary sm:text-sm rounded-md">
|
| 348 |
+
<option selected>English</option>
|
| 349 |
+
<option>Spanish</option>
|
| 350 |
+
<option>French</option>
|
| 351 |
+
<option>German</option>
|
| 352 |
+
<option>Portuguese</option>
|
| 353 |
+
<option>Chinese</option>
|
| 354 |
+
<option>Japanese</option>
|
| 355 |
</select>
|
| 356 |
</div>
|
| 357 |
</div>
|
|
|
|
| 380 |
content automation
|
| 381 |
<button type="button"><i class="fas fa-times"></i></button>
|
| 382 |
</span>
|
| 383 |
+
<input type="text" class="flex-grow bg-transparent focus:outline-none text-sm" placeholder="Add keyword..." id="keyword-input">
|
| 384 |
</div>
|
| 385 |
</div>
|
| 386 |
<div>
|
|
|
|
| 409 |
<input id="generate-tables" name="generate-tables" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 410 |
<label for="generate-tables" class="ml-2 block text-sm text-gray-700">Data Tables</label>
|
| 411 |
</div>
|
| 412 |
+
<div class="flex items-center">
|
| 413 |
+
<input id="generate-images" name="generate-images" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded" checked>
|
| 414 |
+
<label for="generate-images" class="ml-2 block text-sm text-gray-700">Images</label>
|
| 415 |
+
</div>
|
| 416 |
+
<div class="flex items-center">
|
| 417 |
+
<input id="generate-links" name="generate-links" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 418 |
+
<label for="generate-links" class="ml-2 block text-sm text-gray-700">Internal Links</label>
|
| 419 |
+
</div>
|
| 420 |
</div>
|
| 421 |
<div class="pt-2">
|
| 422 |
+
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center" id="optimize-content">
|
| 423 |
<i class="fas fa-magic mr-2"></i> Optimize Content
|
| 424 |
</button>
|
| 425 |
</div>
|
|
|
|
| 462 |
<input id="add-quotes" name="add-quotes" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 463 |
<label for="add-quotes" class="ml-2 block text-sm text-gray-700">Expert Quotes</label>
|
| 464 |
</div>
|
| 465 |
+
<div class="flex items-center">
|
| 466 |
+
<input id="add-code" name="add-code" type="checkbox" class="h-4 w-4 text-primary focus:ring-primary border-gray-300 rounded">
|
| 467 |
+
<label for="add-code" class="ml-2 block text-sm text-gray-700">Code Examples</label>
|
| 468 |
+
</div>
|
| 469 |
</div>
|
| 470 |
</div>
|
| 471 |
</div>
|
|
|
|
| 479 |
<button class="px-3 py-1 border border-gray-300 rounded-md text-sm font-medium text-gray-700 hover:bg-gray-50 flex items-center">
|
| 480 |
<i class="fas fa-save mr-1"></i> Save Draft
|
| 481 |
</button>
|
| 482 |
+
<button class="px-3 py-1 bg-primary text-white rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center" id="generate-content">
|
| 483 |
<i class="fas fa-robot mr-1"></i> Generate Content
|
| 484 |
</button>
|
| 485 |
</div>
|
|
|
|
| 487 |
|
| 488 |
<div class="mb-4">
|
| 489 |
<label class="block text-sm font-medium text-gray-700 mb-1">Title</label>
|
| 490 |
+
<input type="text" class="mt-1 focus:ring-primary focus:border-primary block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" placeholder="Enter your article title" value="The Ultimate Guide to AI-Powered SEO Content Creation" id="content-title">
|
| 491 |
</div>
|
| 492 |
|
| 493 |
<div class="mb-4">
|
| 494 |
<label class="block text-sm font-medium text-gray-700 mb-1">Meta Description</label>
|
| 495 |
+
<textarea rows="2" class="mt-1 focus:ring-primary focus:border-primary block w-full shadow-sm sm:text-sm border-gray-300 rounded-md" id="meta-description">Learn how AI can revolutionize your SEO content strategy with automated content generation, optimization, and performance tracking.</textarea>
|
| 496 |
</div>
|
| 497 |
|
| 498 |
<div class="flex border-b border-gray-200 mb-4">
|
| 499 |
+
<button class="tab-active py-2 px-4 text-sm font-medium" data-tab="editor">Editor</button>
|
| 500 |
+
<button class="py-2 px-4 text-sm font-medium text-gray-500 hover:text-gray-700" data-tab="html">HTML</button>
|
| 501 |
+
<button class="py-2 px-4 text-sm font-medium text-gray-500 hover:text-gray-700" data-tab="preview">Preview</button>
|
| 502 |
</div>
|
| 503 |
|
| 504 |
+
<div class="content-editor" id="editor-content" contenteditable="true">
|
| 505 |
+
<div class="content-placeholder">Start typing or click "Generate Content" to begin...</div>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 506 |
</div>
|
| 507 |
|
| 508 |
+
<div class="hidden" id="html-content">
|
| 509 |
+
<textarea class="w-full h-96 font-mono text-sm p-2 border border-gray-300 rounded-md" readonly></textarea>
|
| 510 |
+
</div>
|
| 511 |
+
|
| 512 |
+
<div class="hidden p-4 border border-gray-200 rounded-md" id="preview-content"></div>
|
| 513 |
+
|
| 514 |
<div class="mt-4 flex justify-between items-center">
|
| 515 |
<div class="flex space-x-2">
|
| 516 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="bold">
|
| 517 |
<i class="fas fa-bold"></i>
|
| 518 |
</button>
|
| 519 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="italic">
|
| 520 |
<i class="fas fa-italic"></i>
|
| 521 |
</button>
|
| 522 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="insertUnorderedList">
|
| 523 |
<i class="fas fa-list-ul"></i>
|
| 524 |
</button>
|
| 525 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="insertOrderedList">
|
| 526 |
<i class="fas fa-list-ol"></i>
|
| 527 |
</button>
|
| 528 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="createLink">
|
| 529 |
<i class="fas fa-link"></i>
|
| 530 |
</button>
|
| 531 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="insertImage">
|
| 532 |
<i class="fas fa-image"></i>
|
| 533 |
</button>
|
| 534 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="formatBlock" data-value="h2">
|
| 535 |
+
<i class="fas fa-heading"></i> H2
|
| 536 |
+
</button>
|
| 537 |
+
<button class="p-2 text-gray-500 hover:text-gray-700 rounded hover:bg-gray-100" data-command="formatBlock" data-value="h3">
|
| 538 |
+
<i class="fas fa-heading"></i> H3
|
| 539 |
+
</button>
|
| 540 |
</div>
|
| 541 |
+
<button class="px-4 py-2 bg-green-600 text-white rounded-md text-sm font-medium hover:bg-green-700 flex items-center" id="publish-now">
|
| 542 |
<i class="fas fa-check-circle mr-2"></i> Publish Now
|
| 543 |
</button>
|
| 544 |
</div>
|
|
|
|
| 555 |
<div>
|
| 556 |
<div class="flex justify-between mb-1">
|
| 557 |
<span class="text-sm font-medium text-gray-700">SEO Score</span>
|
| 558 |
+
<span class="text-sm font-medium text-primary" id="seo-score">87/100</span>
|
| 559 |
</div>
|
| 560 |
<div class="seo-score-meter">
|
| 561 |
+
<div class="seo-score-progress" style="width: 87%" id="seo-progress"></div>
|
| 562 |
</div>
|
| 563 |
</div>
|
| 564 |
+
<div class="readability-score" id="readability-score">B+</div>
|
| 565 |
</div>
|
| 566 |
<div class="grid grid-cols-2 gap-4">
|
| 567 |
<div class="bg-green-50 p-3 rounded-lg">
|
|
|
|
| 590 |
</div>
|
| 591 |
</div>
|
| 592 |
<div class="pt-2">
|
| 593 |
+
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center" id="run-audit">
|
| 594 |
<i class="fas fa-search mr-2"></i> Run Full SEO Audit
|
| 595 |
</button>
|
| 596 |
</div>
|
|
|
|
| 622 |
<div class="text-sm text-gray-600">How does AI content generation work?</div>
|
| 623 |
<div class="text-sm text-gray-600">What are the best AI writing tools?</div>
|
| 624 |
<div class="text-sm text-gray-600">Is AI-generated content good for SEO?</div>
|
| 625 |
+
<div class="text-sm text-gray-600">Can AI replace human content writers?</div>
|
| 626 |
+
<div class="text-sm text-gray-600">How to optimize AI content for SEO?</div>
|
| 627 |
</div>
|
| 628 |
</div>
|
| 629 |
<div class="pt-2">
|
| 630 |
+
<button class="w-full bg-gray-100 text-gray-700 py-2 px-4 rounded-md text-sm font-medium hover:bg-gray-200 flex items-center justify-center" id="refresh-suggestions">
|
| 631 |
<i class="fas fa-sync-alt mr-2"></i> Refresh Suggestions
|
| 632 |
</button>
|
| 633 |
</div>
|
|
|
|
| 651 |
<div class="text-sm">"@type": "BreadcrumbList"</div>
|
| 652 |
</div>
|
| 653 |
<div class="pt-2">
|
| 654 |
+
<button class="w-full bg-gray-100 text-gray-700 py-2 px-4 rounded-md text-sm font-medium hover:bg-gray-200 flex items-center justify-center" id="edit-schema">
|
| 655 |
<i class="fas fa-edit mr-2"></i> Edit Schema
|
| 656 |
</button>
|
| 657 |
</div>
|
| 658 |
</div>
|
| 659 |
</div>
|
| 660 |
|
| 661 |
+
<!-- AI Suggestions -->
|
| 662 |
+
<div class="bg-white p-6 rounded-lg shadow-sm">
|
| 663 |
+
<h3 class="text-lg font-medium text-dark mb-4">AI Suggestions</h3>
|
| 664 |
+
<div class="space-y-3">
|
| 665 |
+
<div class="ai-suggestion">
|
| 666 |
+
<div class="ai-suggestion-actions">
|
| 667 |
+
<button class="text-green-600 hover:text-green-800 mr-1"><i class="fas fa-check"></i></button>
|
| 668 |
+
<button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times"></i></button>
|
| 669 |
+
</div>
|
| 670 |
+
<div class="text-sm font-medium mb-1">Consider adding:</div>
|
| 671 |
+
<div class="text-sm">"AI content generation statistics from 2024 show a 45% adoption rate among marketers."</div>
|
| 672 |
+
</div>
|
| 673 |
+
<div class="ai-suggestion">
|
| 674 |
+
<div class="ai-suggestion-actions">
|
| 675 |
+
<button class="text-green-600 hover:text-green-800 mr-1"><i class="fas fa-check"></i></button>
|
| 676 |
+
<button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times"></i></button>
|
| 677 |
+
</div>
|
| 678 |
+
<div class="text-sm font-medium mb-1">Improve readability:</div>
|
| 679 |
+
<div class="text-sm">"Break this paragraph into two for better readability and add a transition sentence."</div>
|
| 680 |
+
</div>
|
| 681 |
+
<div class="ai-suggestion">
|
| 682 |
+
<div class="ai-suggestion-actions">
|
| 683 |
+
<button class="text-green-600 hover:text-green-800 mr-1"><i class="fas fa-check"></i></button>
|
| 684 |
+
<button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times"></i></button>
|
| 685 |
+
</div>
|
| 686 |
+
<div class="text-sm font-medium mb-1">Keyword opportunity:</div>
|
| 687 |
+
<div class="text-sm">"You could naturally include 'content automation tools' in this section."</div>
|
| 688 |
+
</div>
|
| 689 |
+
<div class="pt-2">
|
| 690 |
+
<button class="w-full bg-gray-100 text-gray-700 py-2 px-4 rounded-md text-sm font-medium hover:bg-gray-200 flex items-center justify-center" id="get-suggestions">
|
| 691 |
+
<i class="fas fa-lightbulb mr-2"></i> Get More Suggestions
|
| 692 |
+
</button>
|
| 693 |
+
</div>
|
| 694 |
+
</div>
|
| 695 |
+
</div>
|
| 696 |
+
|
| 697 |
<!-- Publishing Options -->
|
| 698 |
<div class="bg-white p-6 rounded-lg shadow-sm">
|
| 699 |
<h3 class="text-lg font-medium text-dark mb-4">Publishing Options</h3>
|
|
|
|
| 715 |
<label for="notify-subscribers" class="ml-2 block text-sm text-gray-700">Notify email subscribers</label>
|
| 716 |
</div>
|
| 717 |
<div class="pt-2">
|
| 718 |
+
<button class="w-full bg-primary text-white py-2 px-4 rounded-md text-sm font-medium hover:bg-indigo-700 flex items-center justify-center" id="publish-content">
|
| 719 |
<i class="fas fa-paper-plane mr-2"></i> Publish Now
|
| 720 |
</button>
|
| 721 |
</div>
|
|
|
|
| 751 |
</footer>
|
| 752 |
|
| 753 |
<script>
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
| 754 |
// Tab switching
|
| 755 |
+
const tabs = document.querySelectorAll('[data-tab]');
|
| 756 |
tabs.forEach(tab => {
|
| 757 |
tab.addEventListener('click', () => {
|
| 758 |
+
// Update tab UI
|
| 759 |
+
tabs.forEach(t => {
|
| 760 |
+
t.classList.remove('tab-active', 'text-dark');
|
| 761 |
+
t.classList.add('text-gray-500');
|
| 762 |
+
});
|
| 763 |
tab.classList.add('tab-active', 'text-dark');
|
| 764 |
tab.classList.remove('text-gray-500');
|
| 765 |
+
|
| 766 |
+
// Show corresponding content
|
| 767 |
+
const tabName = tab.getAttribute('data-tab');
|
| 768 |
+
document.getElementById('editor-content').classList.add('hidden');
|
| 769 |
+
document.getElementById('html-content').classList.add('hidden');
|
| 770 |
+
document.getElementById('preview-content').classList.add('hidden');
|
| 771 |
+
document.getElementById(`${tabName}-content`).classList.remove('hidden');
|
| 772 |
+
|
| 773 |
+
// Update content for HTML and Preview tabs
|
| 774 |
+
if(tabName === 'html') {
|
| 775 |
+
document.getElementById('html-content').querySelector('textarea').value = document.getElementById('editor-content').innerHTML;
|
| 776 |
+
} else if(tabName === 'preview') {
|
| 777 |
+
document.getElementById('preview-content').innerHTML = document.getElementById('editor-content').innerHTML;
|
| 778 |
+
}
|
| 779 |
});
|
| 780 |
});
|
| 781 |
|
| 782 |
+
// Editor functionality
|
| 783 |
+
const editor = document.getElementById('editor-content');
|
| 784 |
+
const editorButtons = document.querySelectorAll('[data-command]');
|
| 785 |
+
|
| 786 |
+
editorButtons.forEach(button => {
|
| 787 |
+
button.addEventListener('click', () => {
|
| 788 |
+
const command = button.getAttribute('data-command');
|
| 789 |
+
const value = button.getAttribute('data-value');
|
| 790 |
+
|
| 791 |
+
if(command === 'createLink') {
|
| 792 |
+
const url = prompt('Enter the URL:');
|
| 793 |
+
if(url) document.execCommand(command, false, url);
|
| 794 |
+
} else if(command === 'insertImage') {
|
| 795 |
+
const url = prompt('Enter the image URL:');
|
| 796 |
+
if(url) {
|
| 797 |
+
const alt = prompt('Enter alt text:');
|
| 798 |
+
document.execCommand('insertHTML', false, `<img src="${url}" alt="${alt || ''}" style="max-width:100%;height:auto;">`);
|
| 799 |
+
}
|
| 800 |
+
} else {
|
| 801 |
+
document.execCommand(command, false, value);
|
| 802 |
+
}
|
| 803 |
+
|
| 804 |
+
editor.focus();
|
| 805 |
+
});
|
| 806 |
+
});
|
| 807 |
+
|
| 808 |
+
// Remove placeholder when editor is focused
|
| 809 |
+
editor.addEventListener('focus', () => {
|
| 810 |
+
if(editor.querySelector('.content-placeholder')) {
|
| 811 |
+
editor.innerHTML = '';
|
| 812 |
+
}
|
| 813 |
+
});
|
| 814 |
+
|
| 815 |
// Add keyword on Enter key
|
| 816 |
+
const keywordInput = document.getElementById('keyword-input');
|
| 817 |
keywordInput.addEventListener('keydown', (e) => {
|
| 818 |
if(e.key === 'Enter' && keywordInput.value.trim()) {
|
| 819 |
const container = keywordInput.parentElement;
|
|
|
|
| 832 |
});
|
| 833 |
}
|
| 834 |
});
|
| 835 |
+
|
| 836 |
+
// Generate content button
|
| 837 |
+
document.getElementById('generate-content').addEventListener('click', function() {
|
| 838 |
+
const editor = document.getElementById('editor-content');
|
| 839 |
+
editor.innerHTML = `
|
| 840 |
+
<div class="text-center py-8">
|
| 841 |
+
<div class="animate-pulse-slow text-gray-500">
|
| 842 |
+
<i class="fas fa-robot text-4xl mb-4 animate-spin-slow"></i>
|
| 843 |
+
<p>Generating high-quality SEO content with AI...</p>
|
| 844 |
+
<p class="text-xs mt-2">Analyzing top-ranking content for "AI content generation"</p>
|
| 845 |
+
</div>
|
| 846 |
+
</div>
|
| 847 |
+
`;
|
| 848 |
+
|
| 849 |
+
setTimeout(() => {
|
| 850 |
+
editor.innerHTML = `
|
| 851 |
+
<h2>Introduction</h2>
|
| 852 |
+
<p>AI-powered SEO content creation is transforming digital marketing strategies by combining artificial intelligence with search engine optimization techniques. This innovative approach enables businesses to produce optimized content at scale while maintaining quality and relevance.</p>
|
| 853 |
+
|
| 854 |
+
<h2>Key Benefits of AI SEO Content</h2>
|
| 855 |
+
<ul>
|
| 856 |
+
<li><strong>Time Efficiency:</strong> Reduce content creation time by up to 80%</li>
|
| 857 |
+
<li><strong>Consistent Quality:</strong> Maintain uniform tone and style across all content</li>
|
| 858 |
+
<li><strong>Data-Driven Optimization:</strong> Leverage real-time SEO data for better rankings</li>
|
| 859 |
+
<li><strong>Scalability:</strong> Produce more content without proportional resource increase</li>
|
| 860 |
+
</ul>
|
| 861 |
+
|
| 862 |
+
<h2>Best Practices for AI-Generated Content</h2>
|
| 863 |
+
<h3>1. Human Editing is Essential</h3>
|
| 864 |
+
<p>While AI can produce excellent drafts, human editors should review for:</p>
|
| 865 |
+
<ul>
|
| 866 |
+
<li>Brand voice consistency</li>
|
| 867 |
+
<li>Factual accuracy</li>
|
| 868 |
+
<li>Natural flow and readability</li>
|
| 869 |
+
</ul>
|
| 870 |
+
|
| 871 |
+
<h3>2. Combine Multiple AI Models</h3>
|
| 872 |
+
<p>For best results, use specialized models for different content needs:</p>
|
| 873 |
+
<table class="min-w-full divide-y divide-gray-200 mt-2 mb-4">
|
| 874 |
+
<thead class="bg-gray-50">
|
| 875 |
+
<tr>
|
| 876 |
+
<th class="px-3 py-2 text-left text-xs font-medium text-gray-500 uppercase">Task</th>
|
| 877 |
+
<th class="px-3 py-2 text-left text-xs font-medium text-gray-500 uppercase">Recommended Model</th>
|
| 878 |
+
</tr>
|
| 879 |
+
</thead>
|
| 880 |
+
<tbody class="bg-white divide-y divide-gray-200">
|
| 881 |
+
<tr>
|
| 882 |
+
<td class="px-3 py-2 text-sm">Blog Content</td>
|
| 883 |
+
<td class="px-3 py-2 text-sm">GPT-4 Turbo</td>
|
| 884 |
+
</tr>
|
| 885 |
+
<tr>
|
| 886 |
+
<td class="px-3 py-2 text-sm">Product Descriptions</td>
|
| 887 |
+
<td class="px-3 py-2 text-sm">Claude 3</td>
|
| 888 |
+
</tr>
|
| 889 |
+
<tr>
|
| 890 |
+
<td class="px-3 py-2 text-sm">Technical SEO</td>
|
| 891 |
+
<td class="px-3 py-2 text-sm">Gemini Pro</td>
|
| 892 |
+
</tr>
|
| 893 |
+
</tbody>
|
| 894 |
+
</table>
|
| 895 |
+
|
| 896 |
+
<div class="bg-blue-50 p-4 rounded-lg mt-6">
|
| 897 |
+
<h3 class="font-medium text-blue-800 mb-2">Pro Tip</h3>
|
| 898 |
+
<p class="text-blue-700">For featured snippet optimization, structure content in clear, concise paragraphs and use numbered lists for step-by-step guides.</p>
|
| 899 |
+
</div>
|
| 900 |
+
`;
|
| 901 |
+
|
| 902 |
+
// Update SEO score
|
| 903 |
+
document.getElementById('seo-progress').style.width = '92%';
|
| 904 |
+
document.getElementById('seo-score').textContent = '92/100';
|
| 905 |
+
|
| 906 |
+
// Show success notification
|
| 907 |
+
showNotification('Content generated successfully!', 'success');
|
| 908 |
+
}, 3000);
|
| 909 |
+
});
|
| 910 |
+
|
| 911 |
+
// Optimize content button
|
| 912 |
+
document.getElementById('optimize-content').addEventListener('click', function() {
|
| 913 |
+
const editor = document.getElementById('editor-content');
|
| 914 |
+
if(editor.textContent.trim() === '' || editor.querySelector('.content-placeholder')) {
|
| 915 |
+
showNotification('Please generate or enter content first', 'error');
|
| 916 |
+
return;
|
| 917 |
+
}
|
| 918 |
+
|
| 919 |
+
showNotification('Optimizing content for SEO...', 'info');
|
| 920 |
+
|
| 921 |
+
setTimeout(() => {
|
| 922 |
+
// Highlight keywords
|
| 923 |
+
const keywords = ['AI content generation', 'SEO', 'content automation'];
|
| 924 |
+
let content = editor.innerHTML;
|
| 925 |
+
|
| 926 |
+
keywords.forEach(keyword => {
|
| 927 |
+
const regex = new RegExp(keyword, 'gi');
|
| 928 |
+
content = content.replace(regex, match =>
|
| 929 |
+
`<span class="ai-highlight">${match}</span>`
|
| 930 |
+
);
|
| 931 |
+
});
|
| 932 |
+
|
| 933 |
+
editor.innerHTML = content;
|
| 934 |
+
|
| 935 |
+
// Update SEO score
|
| 936 |
+
document.getElementById('seo-progress').style.width = '95%';
|
| 937 |
+
document.getElementById('seo-score').textContent = '95/100';
|
| 938 |
+
|
| 939 |
+
showNotification('Content optimized successfully!', 'success');
|
| 940 |
+
}, 2000);
|
| 941 |
+
});
|
| 942 |
+
|
| 943 |
+
// Run SEO audit button
|
| 944 |
+
document.getElementById('run-audit').addEventListener('click', function() {
|
| 945 |
+
showNotification('Running full SEO audit...', 'info');
|
| 946 |
+
|
| 947 |
+
setTimeout(() => {
|
| 948 |
+
// Simulate finding issues
|
| 949 |
+
const issues = [
|
| 950 |
+
'Add more internal links',
|
| 951 |
+
'Include at least one external authoritative link',
|
| 952 |
+
'Optimize images with better alt text'
|
| 953 |
+
];
|
| 954 |
+
|
| 955 |
+
let message = 'SEO audit completed. ';
|
| 956 |
+
if(issues.length > 0) {
|
| 957 |
+
message += `Found ${issues.length} areas for improvement.`;
|
| 958 |
+
showNotification(message, 'warning');
|
| 959 |
+
|
| 960 |
+
// Add suggestions to AI Suggestions panel
|
| 961 |
+
const suggestionsPanel = document.querySelector('.ai-suggestion');
|
| 962 |
+
if(suggestionsPanel) {
|
| 963 |
+
issues.forEach(issue => {
|
| 964 |
+
const newSuggestion = document.createElement('div');
|
| 965 |
+
newSuggestion.className = 'ai-suggestion mt-2';
|
| 966 |
+
newSuggestion.innerHTML = `
|
| 967 |
+
<div class="ai-suggestion-actions">
|
| 968 |
+
<button class="text-green-600 hover:text-green-800 mr-1"><i class="fas fa-check"></i></button>
|
| 969 |
+
<button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times"></i></button>
|
| 970 |
+
</div>
|
| 971 |
+
<div class="text-sm font-medium mb-1">SEO Recommendation:</div>
|
| 972 |
+
<div class="text-sm">${issue}</div>
|
| 973 |
+
`;
|
| 974 |
+
suggestionsPanel.parentNode.insertBefore(newSuggestion, suggestionsPanel.nextSibling);
|
| 975 |
+
});
|
| 976 |
+
}
|
| 977 |
+
} else {
|
| 978 |
+
message += 'No issues found!';
|
| 979 |
+
showNotification(message, 'success');
|
| 980 |
+
}
|
| 981 |
+
}, 2500);
|
| 982 |
+
});
|
| 983 |
+
|
| 984 |
+
// Publish buttons
|
| 985 |
+
document.getElementById('publish-now').addEventListener('click', function() {
|
| 986 |
+
showNotification('Publishing content...', 'info');
|
| 987 |
+
|
| 988 |
+
setTimeout(() => {
|
| 989 |
+
showNotification('Content published successfully!', 'success');
|
| 990 |
+
}, 1500);
|
| 991 |
+
});
|
| 992 |
+
|
| 993 |
+
document.getElementById('publish-content').addEventListener('click', function() {
|
| 994 |
+
showNotification('Publishing content with selected options...', 'info');
|
| 995 |
+
|
| 996 |
+
setTimeout(() => {
|
| 997 |
+
showNotification('Content published successfully!', 'success');
|
| 998 |
+
}, 1500);
|
| 999 |
+
});
|
| 1000 |
+
|
| 1001 |
+
// Get more suggestions button
|
| 1002 |
+
document.getElementById('get-suggestions').addEventListener('click', function() {
|
| 1003 |
+
showNotification('Generating AI suggestions...', 'info');
|
| 1004 |
+
|
| 1005 |
+
setTimeout(() => {
|
| 1006 |
+
const suggestions = [
|
| 1007 |
+
{
|
| 1008 |
+
title: "Add statistic:",
|
| 1009 |
+
content: "According to recent studies, 67% of marketers now use AI for content creation."
|
| 1010 |
+
},
|
| 1011 |
+
{
|
| 1012 |
+
title: "Improve transition:",
|
| 1013 |
+
content: "Add a sentence connecting the benefits to the best practices section."
|
| 1014 |
+
},
|
| 1015 |
+
{
|
| 1016 |
+
title: "Include example:",
|
| 1017 |
+
content: "Consider adding a real-world example of a company that improved SEO with AI content."
|
| 1018 |
+
}
|
| 1019 |
+
];
|
| 1020 |
+
|
| 1021 |
+
const suggestionsPanel = document.querySelector('.ai-suggestion');
|
| 1022 |
+
if(suggestionsPanel) {
|
| 1023 |
+
suggestions.forEach(suggestion => {
|
| 1024 |
+
const newSuggestion = document.createElement('div');
|
| 1025 |
+
newSuggestion.className = 'ai-suggestion mt-2';
|
| 1026 |
+
newSuggestion.innerHTML = `
|
| 1027 |
+
<div class="ai-suggestion-actions">
|
| 1028 |
+
<button class="text-green-600 hover:text-green-800 mr-1"><i class="fas fa-check"></i></button>
|
| 1029 |
+
<button class="text-gray-500 hover:text-gray-700"><i class="fas fa-times"></i></button>
|
| 1030 |
+
</div>
|
| 1031 |
+
<div class="text-sm font-medium mb-1">${suggestion.title}</div>
|
| 1032 |
+
<div class="text-sm">${suggestion.content}</div>
|
| 1033 |
+
`;
|
| 1034 |
+
suggestionsPanel.parentNode.insertBefore(newSuggestion, suggestionsPanel.nextSibling);
|
| 1035 |
+
});
|
| 1036 |
+
}
|
| 1037 |
+
|
| 1038 |
+
showNotification('New suggestions generated!', 'success');
|
| 1039 |
+
}, 2000);
|
| 1040 |
+
});
|
| 1041 |
+
|
| 1042 |
+
// Edit schema button
|
| 1043 |
+
document.getElementById('edit-schema').addEventListener('click', function() {
|
| 1044 |
+
showNotification('Opening schema markup editor...', 'info');
|
| 1045 |
+
|
| 1046 |
+
setTimeout(() => {
|
| 1047 |
+
// Simulate schema editing
|
| 1048 |
+
const schemaTags = document.querySelectorAll('.schema-tag');
|
| 1049 |
+
schemaTags.forEach(tag => {
|
| 1050 |
+
const currentText = tag.querySelector('.text-sm').textContent;
|
| 1051 |
+
tag.querySelector('.text-sm').innerHTML = `
|
| 1052 |
+
<input type="text" class="w-full text-sm border border-gray-300 rounded px-2 py-1" value="${currentText}">
|
| 1053 |
+
`;
|
| 1054 |
+
});
|
| 1055 |
+
|
| 1056 |
+
this.innerHTML = '<i class="fas fa-save mr-2"></i> Save Schema';
|
| 1057 |
+
this.removeEventListener('click', arguments.callee);
|
| 1058 |
+
this.addEventListener('click', function() {
|
| 1059 |
+
showNotification('Schema markup saved!', 'success');
|
| 1060 |
+
setTimeout(() => {
|
| 1061 |
+
schemaTags.forEach(tag => {
|
| 1062 |
+
const input = tag.querySelector('input');
|
| 1063 |
+
tag.querySelector('.text-sm').textContent = input.value;
|
| 1064 |
+
});
|
| 1065 |
+
this.innerHTML = '<i class="fas fa-edit mr-2"></i> Edit Schema';
|
| 1066 |
+
this.addEventListener('click', arguments.callee);
|
| 1067 |
+
}, 500);
|
| 1068 |
+
});
|
| 1069 |
+
}, 500);
|
| 1070 |
+
});
|
| 1071 |
+
|
| 1072 |
+
// Refresh suggestions button
|
| 1073 |
+
document.getElementById('refresh-suggestions').addEventListener('click', function() {
|
| 1074 |
+
showNotification('Refreshing keyword suggestions...', 'info');
|
| 1075 |
+
|
| 1076 |
+
setTimeout(() => {
|
| 1077 |
+
const lsiKeywords = [
|
| 1078 |
+
'AI writing assistant',
|
| 1079 |
+
'automated content creation',
|
| 1080 |
+
'machine learning SEO',
|
| 1081 |
+
'natural language generation',
|
| 1082 |
+
'content optimization tools'
|
| 1083 |
+
];
|
| 1084 |
+
|
| 1085 |
+
const relatedQuestions = [
|
| 1086 |
+
'How accurate is AI-generated content?',
|
| 1087 |
+
'What are the limitations of AI content tools?',
|
| 1088 |
+
'How to make AI content sound more human?'
|
| 1089 |
+
];
|
| 1090 |
+
|
| 1091 |
+
// Update LSI keywords
|
| 1092 |
+
const lsiContainer = document.querySelector('.flex.flex-wrap.gap-1');
|
| 1093 |
+
if(lsiContainer) {
|
| 1094 |
+
lsiContainer.innerHTML = '';
|
| 1095 |
+
lsiKeywords.forEach(keyword => {
|
| 1096 |
+
const span = document.createElement('span');
|
| 1097 |
+
span.className = 'text-xs bg-gray-100 text-gray-800 px-2 py-1 rounded-full';
|
| 1098 |
+
span.textContent = keyword;
|
| 1099 |
+
lsiContainer.appendChild(span);
|
| 1100 |
+
});
|
| 1101 |
+
}
|
| 1102 |
+
|
| 1103 |
+
// Update related questions
|
| 1104 |
+
const questionsContainer = document.querySelector('.space-y-2');
|
| 1105 |
+
if(questionsContainer) {
|
| 1106 |
+
questionsContainer.innerHTML = '';
|
| 1107 |
+
relatedQuestions.forEach(question => {
|
| 1108 |
+
const div = document.createElement('div');
|
| 1109 |
+
div.className = 'text-sm text-gray-600';
|
| 1110 |
+
div.textContent = question;
|
| 1111 |
+
questionsContainer.appendChild(div);
|
| 1112 |
+
});
|
| 1113 |
+
}
|
| 1114 |
+
|
| 1115 |
+
showNotification('Keyword suggestions refreshed!', 'success');
|
| 1116 |
+
}, 1500);
|
| 1117 |
+
});
|
| 1118 |
+
|
| 1119 |
+
// Helper function to show notifications
|
| 1120 |
+
function showNotification(message, type) {
|
| 1121 |
+
const colors = {
|
| 1122 |
+
success: 'bg-green-500',
|
| 1123 |
+
error: 'bg-red-500',
|
| 1124 |
+
info: 'bg-blue-500',
|
| 1125 |
+
warning: 'bg-yellow-500'
|
| 1126 |
+
};
|
| 1127 |
+
|
| 1128 |
+
const notification = document.createElement('div');
|
| 1129 |
+
notification.className = `fixed bottom-4 right-4 ${colors[type]} text-white px-4 py-2 rounded-md shadow-lg flex items-center animate-bounce-slow`;
|
| 1130 |
+
notification.innerHTML = `
|
| 1131 |
+
<i class="fas ${type === 'success' ? 'fa-check-circle' : type === 'error' ? 'fa-exclamation-circle' : type === 'warning' ? 'fa-exclamation-triangle' : 'fa-info-circle'} mr-2"></i>
|
| 1132 |
+
${message}
|
| 1133 |
+
<button class="ml-4" onclick="this.parentElement.remove()">
|
| 1134 |
+
<i class="fas fa-times"></i>
|
| 1135 |
+
</button>
|
| 1136 |
+
`;
|
| 1137 |
+
document.body.appendChild(notification);
|
| 1138 |
+
setTimeout(() => notification.remove(), 5000);
|
| 1139 |
+
}
|
| 1140 |
+
|
| 1141 |
+
// Initialize with editor tab active
|
| 1142 |
+
document.querySelector('[data-tab="editor"]').click();
|
| 1143 |
</script>
|
| 1144 |
<p style="border-radius: 8px; text-align: center; font-size: 12px; color: #fff; margin-top: 16px;position: fixed; left: 8px; bottom: 8px; z-index: 10; background: rgba(0, 0, 0, 0.8); padding: 4px 8px;">Made with <img src="https://enzostvs-deepsite.hf.space/logo.svg" alt="DeepSite Logo" style="width: 16px; height: 16px; vertical-align: middle;display:inline-block;margin-right:3px;filter:brightness(0) invert(1);"><a href="https://enzostvs-deepsite.hf.space" style="color: #fff;text-decoration: underline;" target="_blank" >DeepSite</a> - <a href="https://enzostvs-deepsite.hf.space?remix=Gughanmk/ai" style="color: #fff;text-decoration: underline;" target="_blank" >🧬 Remix</a></p></body>
|
| 1145 |
</html>
|