@edtools/cli 0.5.0 → 0.6.0

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.
@@ -33,8 +33,10 @@ export class ContentGenerator {
33
33
  posts: [],
34
34
  warnings: [],
35
35
  errors: [],
36
+ dryRun: config.dryRun,
36
37
  };
37
38
  const allPostsContent = [];
39
+ const { calculateAvgReadTime } = await import('../utils/content-helpers.js');
38
40
  try {
39
41
  const adapter = await this.adapters.detectAdapter(config.projectPath);
40
42
  if (!adapter) {
@@ -50,7 +52,9 @@ export class ContentGenerator {
50
52
  const slug = content.metadata.slug;
51
53
  const fileName = adapter.transformPath?.(slug) || `${slug}/index${adapter.getFileExtension()}`;
52
54
  const outputPath = path.join(config.outputDir, fileName);
53
- await adapter.write(output, outputPath);
55
+ if (!config.dryRun) {
56
+ await adapter.write(output, outputPath);
57
+ }
54
58
  allPostsContent.push(content);
55
59
  results.posts.push({
56
60
  id: content.metadata.id,
@@ -61,8 +65,17 @@ export class ContentGenerator {
61
65
  seoScore: content.seo.score,
62
66
  readTime: content.metadata.readTime,
63
67
  wordCount: content.metadata.wordCount,
68
+ tags: content.metadata.tags,
69
+ keywords: content.metadata.keywords,
70
+ datePublished: content.metadata.datePublished,
71
+ seoIssues: content.seo.suggestions,
64
72
  });
65
- console.log(`✓ Generated: ${outputPath}`);
73
+ if (!config.dryRun) {
74
+ console.log(`✓ Generated: ${outputPath}`);
75
+ }
76
+ else {
77
+ console.log(`✓ Would generate: ${outputPath}`);
78
+ }
66
79
  console.log(` SEO Score: ${content.seo.score}/100`);
67
80
  }
68
81
  catch (error) {
@@ -71,9 +84,22 @@ export class ContentGenerator {
71
84
  }
72
85
  }
73
86
  if (results.posts.length > 0 && allPostsContent.length > 0) {
74
- await this.generateManifest(config.outputDir, config.productInfo, allPostsContent);
75
- await this.generateBlogIndex(config.outputDir, config.productInfo);
76
- await this.updateSitemap(config.projectPath, config.outputDir, allPostsContent);
87
+ results.manifestPath = path.join(config.outputDir, 'index.json');
88
+ results.sitemapPath = path.join(config.outputDir, 'sitemap.xml');
89
+ if (!config.dryRun) {
90
+ await this.generateManifest(config.outputDir, config.productInfo, allPostsContent);
91
+ await this.generateBlogIndex(config.outputDir, config.productInfo);
92
+ await this.updateSitemap(config.projectPath, config.outputDir, allPostsContent);
93
+ }
94
+ const totalWords = allPostsContent.reduce((sum, post) => sum + post.metadata.wordCount, 0);
95
+ const avgSeoScore = results.posts.reduce((sum, p) => sum + p.seoScore, 0) / results.posts.length;
96
+ const wordCounts = allPostsContent.map(post => post.metadata.wordCount);
97
+ const avgReadTime = calculateAvgReadTime(wordCounts);
98
+ results.stats = {
99
+ avgSeoScore: Math.round(avgSeoScore * 10) / 10,
100
+ totalWords,
101
+ avgReadTime,
102
+ };
77
103
  }
78
104
  }
79
105
  catch (error) {
@@ -1 +1 @@
1
- {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"generator.js","sourceRoot":"","sources":["../../src/core/generator.ts"],"names":[],"mappings":"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"}
package/dist/index.d.ts CHANGED
@@ -114,6 +114,7 @@ interface GenerateConfig {
114
114
  similarityThreshold?: number;
115
115
  provider?: AIProvider;
116
116
  apiKey?: string;
117
+ dryRun?: boolean;
117
118
  }
118
119
  interface GenerateResult {
119
120
  success: boolean;
@@ -126,9 +127,21 @@ interface GenerateResult {
126
127
  seoScore: number;
127
128
  readTime: string;
128
129
  wordCount: number;
130
+ tags: string[];
131
+ keywords: string[];
132
+ datePublished: string;
133
+ seoIssues?: string[];
129
134
  }>;
135
+ manifestPath?: string;
136
+ sitemapPath?: string;
137
+ stats?: {
138
+ avgSeoScore: number;
139
+ totalWords: number;
140
+ avgReadTime: string;
141
+ };
130
142
  warnings?: string[];
131
143
  errors?: string[];
144
+ dryRun?: boolean;
132
145
  }
133
146
  interface BlogManifest {
134
147
  version: string;
@@ -164,6 +177,37 @@ interface BlogManifestPost {
164
177
  seoScore: number;
165
178
  };
166
179
  }
180
+ interface GenerateReport {
181
+ success: boolean;
182
+ generated: number;
183
+ timestamp: string;
184
+ files: Array<{
185
+ path: string;
186
+ slug: string;
187
+ title: string;
188
+ url: string;
189
+ wordCount: number;
190
+ readTime: string;
191
+ seoScore: number;
192
+ issues: string[];
193
+ metadata: {
194
+ id: string;
195
+ tags: string[];
196
+ keywords: string[];
197
+ datePublished: string;
198
+ };
199
+ }>;
200
+ manifestPath?: string;
201
+ sitemapPath?: string;
202
+ stats: {
203
+ avgSeoScore: number;
204
+ totalWords: number;
205
+ avgReadTime: string;
206
+ };
207
+ warnings: string[];
208
+ errors: string[];
209
+ dryRun?: boolean;
210
+ }
167
211
 
168
212
  interface Adapter {
169
213
  name: string;
@@ -257,4 +301,4 @@ declare class HTMLAdapter implements Adapter {
257
301
  private escapeHtml;
258
302
  }
259
303
 
260
- export { type AIProvider, type Adapter, type AdapterConfig, AdapterRegistry, type BlogManifest, type BlogManifestPost, type BlogPostContent, type BlogPostMetadata, type CTAData, type CodeData, type ComparisonData, ContentGenerator, type ContentOpportunity, type ContentSection, type GSCAnalysisResult, type GSCKeywordData, type GenerateConfig, type GenerateResult, HTMLAdapter, type ListData, type OpportunityConfig, type ProductInfo, type RelatedPost, type SEOData, type SchemaOrgData };
304
+ export { type AIProvider, type Adapter, type AdapterConfig, AdapterRegistry, type BlogManifest, type BlogManifestPost, type BlogPostContent, type BlogPostMetadata, type CTAData, type CodeData, type ComparisonData, ContentGenerator, type ContentOpportunity, type ContentSection, type GSCAnalysisResult, type GSCKeywordData, type GenerateConfig, type GenerateReport, type GenerateResult, HTMLAdapter, type ListData, type OpportunityConfig, type ProductInfo, type RelatedPost, type SEOData, type SchemaOrgData };
package/dist/index.js CHANGED
@@ -2,7 +2,7 @@ import {
2
2
  AdapterRegistry,
3
3
  ContentGenerator,
4
4
  HTMLAdapter
5
- } from "./chunk-AJSCN4WK.js";
5
+ } from "./chunk-JCUQ7D56.js";
6
6
  import "./chunk-INVECVSW.js";
7
7
  export {
8
8
  AdapterRegistry,
@@ -114,6 +114,7 @@ export interface GenerateConfig {
114
114
  similarityThreshold?: number;
115
115
  provider?: AIProvider;
116
116
  apiKey?: string;
117
+ dryRun?: boolean;
117
118
  }
118
119
  export interface GenerateResult {
119
120
  success: boolean;
@@ -126,9 +127,21 @@ export interface GenerateResult {
126
127
  seoScore: number;
127
128
  readTime: string;
128
129
  wordCount: number;
130
+ tags: string[];
131
+ keywords: string[];
132
+ datePublished: string;
133
+ seoIssues?: string[];
129
134
  }>;
135
+ manifestPath?: string;
136
+ sitemapPath?: string;
137
+ stats?: {
138
+ avgSeoScore: number;
139
+ totalWords: number;
140
+ avgReadTime: string;
141
+ };
130
142
  warnings?: string[];
131
143
  errors?: string[];
144
+ dryRun?: boolean;
132
145
  }
133
146
  export interface BlogManifest {
134
147
  version: string;
@@ -164,4 +177,35 @@ export interface BlogManifestPost {
164
177
  seoScore: number;
165
178
  };
166
179
  }
180
+ export interface GenerateReport {
181
+ success: boolean;
182
+ generated: number;
183
+ timestamp: string;
184
+ files: Array<{
185
+ path: string;
186
+ slug: string;
187
+ title: string;
188
+ url: string;
189
+ wordCount: number;
190
+ readTime: string;
191
+ seoScore: number;
192
+ issues: string[];
193
+ metadata: {
194
+ id: string;
195
+ tags: string[];
196
+ keywords: string[];
197
+ datePublished: string;
198
+ };
199
+ }>;
200
+ manifestPath?: string;
201
+ sitemapPath?: string;
202
+ stats: {
203
+ avgSeoScore: number;
204
+ totalWords: number;
205
+ avgReadTime: string;
206
+ };
207
+ warnings: string[];
208
+ errors: string[];
209
+ dryRun?: boolean;
210
+ }
167
211
  //# sourceMappingURL=content.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"content.d.ts","sourceRoot":"","sources":["../../src/types/content.ts"],"names":[],"mappings":"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"}
@@ -1 +1 @@
1
- {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,MAAM,CAsBvC;AAKD,wBAAgB,WAAW,IAAI,IAAI,CAYlC;AAiBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD;AAKD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhD;AAKD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9D;AAKD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD"}
1
+ {"version":3,"file":"banner.d.ts","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAQA,wBAAgB,cAAc,IAAI,MAAM,CAsBvC;AAKD,wBAAgB,WAAW,IAAI,IAAI,CAoBlC;AAiBD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD;AAKD,wBAAgB,QAAQ,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOhD;AAKD,wBAAgB,OAAO,CAAC,KAAK,EAAE,MAAM,EAAE,OAAO,EAAE,MAAM,GAAG,MAAM,CAO9D;AAKD,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAOlD"}
package/dist/ui/banner.js CHANGED
@@ -28,14 +28,22 @@ export function showWelcome() {
28
28
  console.log('');
29
29
  console.log(` ${chalk.cyan('edtools init')} ${chalk.gray('Initialize your project')}`);
30
30
  console.log(` ${chalk.cyan('edtools generate')} ${chalk.gray('Generate SEO-optimized posts')}`);
31
+ console.log(` ${chalk.cyan('edtools validate')} ${chalk.gray('Validate post quality')}`);
31
32
  console.log(` ${chalk.cyan('edtools analyze')} ${chalk.gray('Analyze Google Search Console CSV')}`);
32
33
  console.log('');
34
+ console.log(chalk.bold.cyan(' Advanced Usage:'));
35
+ console.log(chalk.gray(' ───────────────'));
36
+ console.log('');
37
+ console.log(` ${chalk.cyan('edtools generate --dry-run')} ${chalk.gray('Preview generation')}`);
38
+ console.log(` ${chalk.cyan('edtools generate --report json')} ${chalk.gray('JSON output')}`);
39
+ console.log(` ${chalk.cyan('edtools validate --threshold 85')} ${chalk.gray('Show posts < 85')}`);
40
+ console.log('');
33
41
  console.log(chalk.gray(' Run ') + chalk.cyan('edtools --help') + chalk.gray(' for all commands'));
34
42
  console.log('');
35
43
  }
36
44
  function getVersion() {
37
45
  try {
38
- return '0.5.0';
46
+ return '0.6.0';
39
47
  }
40
48
  catch {
41
49
  return 'dev';
@@ -1 +1 @@
1
- {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"AAAA,OAAO,MAAM,MAAM,QAAQ,CAAC;AAC5B,OAAO,QAAQ,MAAM,iBAAiB,CAAC;AACvC,OAAO,KAAK,MAAM,OAAO,CAAC;AAC1B,OAAO,KAAK,MAAM,OAAO,CAAC;AAK1B,MAAM,UAAU,cAAc;IAC5B,MAAM,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC,SAAS,EAAE;QAC1C,IAAI,EAAE,aAAa;QACnB,gBAAgB,EAAE,SAAS;QAC3B,cAAc,EAAE,SAAS;KAC1B,CAAC,CAAC;IAGH,MAAM,YAAY,GAAG,QAAQ,CAAC,CAAC,SAAS,EAAE,SAAS,CAAC,CAAC,CAAC,QAAQ,CAAC,CAAC;IAEhE,MAAM,OAAO,GAAG,KAAK,CAAC,IAAI,CAAC,kCAAkC,CAAC,CAAC;IAC/D,MAAM,OAAO,GAAG,KAAK,CAAC,GAAG,CAAC,IAAI,UAAU,EAAE,EAAE,CAAC,CAAC;IAE9C,MAAM,OAAO,GAAG,GAAG,YAAY,OAAO,OAAO,KAAK,OAAO,EAAE,CAAC;IAE5D,OAAO,KAAK,CAAC,OAAO,EAAE;QACpB,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,MAAM;QACnB,SAAS,EAAE,KAAK;KACjB,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,WAAW;IACzB,OAAO,CAAC,GAAG,CAAC,cAAc,EAAE,CAAC,CAAC;IAC9B,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC/C,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,CAAC,CAAC;IAC1C,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,cAAc,CAAC,aAAa,KAAK,CAAC,IAAI,CAAC,yBAAyB,CAAC,EAAE,CAAC,CAAC;IACjG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,kBAAkB,CAAC,SAAS,KAAK,CAAC,IAAI,CAAC,8BAA8B,CAAC,EAAE,CAAC,CAAC;IACtG,OAAO,CAAC,GAAG,CAAC,KAAK,KAAK,CAAC,IAAI,CAAC,iBAAiB,CAAC,UAAU,KAAK,CAAC,IAAI,CAAC,mCAAmC,CAAC,EAAE,CAAC,CAAC;IAC3G,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;IAChB,OAAO,CAAC,GAAG,CAAC,KAAK,CAAC,IAAI,CAAC,QAAQ,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,gBAAgB,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,mBAAmB,CAAC,CAAC,CAAC;IACnG,OAAO,CAAC,GAAG,CAAC,EAAE,CAAC,CAAC;AAClB,CAAC;AAKD,SAAS,UAAU;IACjB,IAAI,CAAC;QAEH,OAAO,OAAO,CAAC;IACjB,CAAC;IAAC,MAAM,CAAC;QACP,OAAO,KAAK,CAAC;IACf,CAAC;AACH,CAAC;AAKD,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,KAAK,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE;QACxC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,OAAO;KACrB,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,QAAQ,CAAC,OAAe;IACtC,OAAO,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE;QACtC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,KAAK;KACnB,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,OAAO,CAAC,KAAa,EAAE,OAAe;IACpD,OAAO,KAAK,CAAC,GAAG,KAAK,CAAC,IAAI,CAAC,IAAI,CAAC,KAAK,CAAC,OAAO,OAAO,EAAE,EAAE;QACtD,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,MAAM;KACpB,CAAC,CAAC;AACL,CAAC;AAKD,MAAM,UAAU,UAAU,CAAC,OAAe;IACxC,OAAO,KAAK,CAAC,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,GAAG,OAAO,EAAE;QACzC,OAAO,EAAE,CAAC;QACV,MAAM,EAAE,CAAC;QACT,WAAW,EAAE,OAAO;QACpB,WAAW,EAAE,QAAQ;KACtB,CAAC,CAAC;AACL,CAAC"}
1
+ {"version":3,"file":"banner.js","sourceRoot":"","sources":["../../src/ui/banner.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,35 @@
1
+ export interface ValidationIssue {
2
+ severity: 'error' | 'warning' | 'info';
3
+ category: 'metadata' | 'headings' | 'content' | 'images' | 'links' | 'structure';
4
+ message: string;
5
+ suggestion?: string;
6
+ }
7
+ export interface ValidationResult {
8
+ path: string;
9
+ title: string;
10
+ seoScore: number;
11
+ issues: ValidationIssue[];
12
+ passed: string[];
13
+ metadata?: {
14
+ titleLength?: number;
15
+ descriptionLength?: number;
16
+ h1Count?: number;
17
+ h2Count?: number;
18
+ imageCount?: number;
19
+ wordCount?: number;
20
+ };
21
+ }
22
+ export declare function validatePost(htmlPath: string): Promise<ValidationResult>;
23
+ export declare function calculateValidationStats(results: ValidationResult[]): {
24
+ totalPosts: number;
25
+ avgSeoScore: number;
26
+ totalIssues: number;
27
+ postsWithIssues: number;
28
+ issuesBySeverity: {
29
+ error: number;
30
+ warning: number;
31
+ info: number;
32
+ };
33
+ issuesByCategory: Record<string, number>;
34
+ };
35
+ //# sourceMappingURL=seo-validator.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"seo-validator.d.ts","sourceRoot":"","sources":["../../src/utils/seo-validator.ts"],"names":[],"mappings":"AAOA,MAAM,WAAW,eAAe;IAC9B,QAAQ,EAAE,OAAO,GAAG,SAAS,GAAG,MAAM,CAAC;IACvC,QAAQ,EAAE,UAAU,GAAG,UAAU,GAAG,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,WAAW,CAAC;IACjF,OAAO,EAAE,MAAM,CAAC;IAChB,UAAU,CAAC,EAAE,MAAM,CAAC;CACrB;AAED,MAAM,WAAW,gBAAgB;IAC/B,IAAI,EAAE,MAAM,CAAC;IACb,KAAK,EAAE,MAAM,CAAC;IACd,QAAQ,EAAE,MAAM,CAAC;IACjB,MAAM,EAAE,eAAe,EAAE,CAAC;IAC1B,MAAM,EAAE,MAAM,EAAE,CAAC;IACjB,QAAQ,CAAC,EAAE;QACT,WAAW,CAAC,EAAE,MAAM,CAAC;QACrB,iBAAiB,CAAC,EAAE,MAAM,CAAC;QAC3B,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,UAAU,CAAC,EAAE,MAAM,CAAC;QACpB,SAAS,CAAC,EAAE,MAAM,CAAC;KACpB,CAAC;CACH;AAKD,wBAAsB,YAAY,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO,CAAC,gBAAgB,CAAC,CA2O9E;AAKD,wBAAgB,wBAAwB,CAAC,OAAO,EAAE,gBAAgB,EAAE;;;;;;;;;;;EA2BnE"}
@@ -0,0 +1,244 @@
1
+ import * as cheerio from 'cheerio';
2
+ import fs from 'fs-extra';
3
+ export async function validatePost(htmlPath) {
4
+ const html = await fs.readFile(htmlPath, 'utf-8');
5
+ const $ = cheerio.load(html);
6
+ const issues = [];
7
+ const passed = [];
8
+ const metadata = {};
9
+ const title = $('title').text().trim();
10
+ metadata.titleLength = title.length;
11
+ if (!title) {
12
+ issues.push({
13
+ severity: 'error',
14
+ category: 'metadata',
15
+ message: 'Missing <title> tag',
16
+ suggestion: 'Add a descriptive title (50-60 characters)'
17
+ });
18
+ }
19
+ else if (title.length < 30) {
20
+ issues.push({
21
+ severity: 'warning',
22
+ category: 'metadata',
23
+ message: `Title too short (${title.length} chars)`,
24
+ suggestion: 'Optimal length is 50-60 characters for better CTR'
25
+ });
26
+ }
27
+ else if (title.length > 60) {
28
+ issues.push({
29
+ severity: 'warning',
30
+ category: 'metadata',
31
+ message: `Title too long (${title.length} chars)`,
32
+ suggestion: 'Shorten to 50-60 characters to avoid truncation in SERPs'
33
+ });
34
+ }
35
+ else {
36
+ passed.push(`Title length optimal (${title.length} chars)`);
37
+ }
38
+ const metaDesc = $('meta[name="description"]').attr('content')?.trim() || '';
39
+ metadata.descriptionLength = metaDesc.length;
40
+ if (!metaDesc) {
41
+ issues.push({
42
+ severity: 'error',
43
+ category: 'metadata',
44
+ message: 'Missing meta description',
45
+ suggestion: 'Add a compelling description (150-160 characters)'
46
+ });
47
+ }
48
+ else if (metaDesc.length < 120) {
49
+ issues.push({
50
+ severity: 'warning',
51
+ category: 'metadata',
52
+ message: `Meta description too short (${metaDesc.length}/160 chars)`,
53
+ suggestion: `Add ${160 - metaDesc.length} more characters to optimize CTR`
54
+ });
55
+ }
56
+ else if (metaDesc.length > 160) {
57
+ issues.push({
58
+ severity: 'warning',
59
+ category: 'metadata',
60
+ message: `Meta description too long (${metaDesc.length}/160 chars)`,
61
+ suggestion: `Remove ${metaDesc.length - 160} characters to avoid truncation`
62
+ });
63
+ }
64
+ else {
65
+ passed.push(`Meta description optimal (${metaDesc.length} chars)`);
66
+ }
67
+ const h1Elements = $('h1');
68
+ const h1Count = h1Elements.length;
69
+ metadata.h1Count = h1Count;
70
+ if (h1Count === 0) {
71
+ issues.push({
72
+ severity: 'error',
73
+ category: 'headings',
74
+ message: 'Missing H1 heading',
75
+ suggestion: 'Add a single H1 with primary keyword'
76
+ });
77
+ }
78
+ else if (h1Count > 1) {
79
+ issues.push({
80
+ severity: 'warning',
81
+ category: 'headings',
82
+ message: `Multiple H1 tags found (${h1Count})`,
83
+ suggestion: 'Use only one H1 per page for proper structure'
84
+ });
85
+ }
86
+ else {
87
+ passed.push('Single H1 heading');
88
+ }
89
+ const h2Count = $('h2').length;
90
+ metadata.h2Count = h2Count;
91
+ if (h2Count < 2) {
92
+ issues.push({
93
+ severity: 'warning',
94
+ category: 'headings',
95
+ message: `Few H2 headings for readability (${h2Count} found)`,
96
+ suggestion: 'Add 3-5 H2 headings for better structure and scannability'
97
+ });
98
+ }
99
+ else if (h2Count > 10) {
100
+ issues.push({
101
+ severity: 'info',
102
+ category: 'headings',
103
+ message: `Many H2 headings (${h2Count})`,
104
+ suggestion: 'Consider if all sections need H2 or some should be H3'
105
+ });
106
+ }
107
+ else {
108
+ passed.push(`Good heading structure (${h2Count} H2s)`);
109
+ }
110
+ const images = $('img');
111
+ metadata.imageCount = images.length;
112
+ const imagesWithoutAlt = images.filter((i, el) => !$(el).attr('alt')).length;
113
+ if (imagesWithoutAlt > 0) {
114
+ issues.push({
115
+ severity: 'warning',
116
+ category: 'images',
117
+ message: `${imagesWithoutAlt} image${imagesWithoutAlt > 1 ? 's' : ''} missing alt text`,
118
+ suggestion: 'Add descriptive alt text to all images for accessibility and SEO'
119
+ });
120
+ }
121
+ else if (images.length > 0) {
122
+ passed.push(`All images have alt text (${images.length} images)`);
123
+ }
124
+ const schemaScript = $('script[type="application/ld+json"]');
125
+ if (schemaScript.length === 0) {
126
+ issues.push({
127
+ severity: 'info',
128
+ category: 'structure',
129
+ message: 'Missing Schema.org markup',
130
+ suggestion: 'Add structured data for rich snippets in search results'
131
+ });
132
+ }
133
+ else {
134
+ passed.push('Has Schema.org markup');
135
+ }
136
+ const metaKeywords = $('meta[name="keywords"]');
137
+ if (metaKeywords.length > 0) {
138
+ issues.push({
139
+ severity: 'info',
140
+ category: 'metadata',
141
+ message: 'Using deprecated meta keywords tag',
142
+ suggestion: 'Remove meta keywords tag (not used by modern search engines)'
143
+ });
144
+ }
145
+ const ogTitle = $('meta[property="og:title"]').attr('content');
146
+ const ogDescription = $('meta[property="og:description"]').attr('content');
147
+ const ogImage = $('meta[property="og:image"]').attr('content');
148
+ if (!ogTitle || !ogDescription) {
149
+ issues.push({
150
+ severity: 'info',
151
+ category: 'metadata',
152
+ message: 'Missing Open Graph tags',
153
+ suggestion: 'Add og:title, og:description, og:image for better social sharing'
154
+ });
155
+ }
156
+ else {
157
+ passed.push('Has Open Graph tags');
158
+ }
159
+ const bodyText = $('article, main, body').text();
160
+ const wordCount = bodyText
161
+ .replace(/\s+/g, ' ')
162
+ .trim()
163
+ .split(/\s+/)
164
+ .filter(word => word.length > 0).length;
165
+ metadata.wordCount = wordCount;
166
+ if (wordCount < 300) {
167
+ issues.push({
168
+ severity: 'warning',
169
+ category: 'content',
170
+ message: `Content too short (${wordCount} words)`,
171
+ suggestion: 'Aim for at least 1000 words for better SEO performance'
172
+ });
173
+ }
174
+ else if (wordCount < 1000) {
175
+ issues.push({
176
+ severity: 'info',
177
+ category: 'content',
178
+ message: `Content could be longer (${wordCount} words)`,
179
+ suggestion: 'Consider expanding to 1500+ words for comprehensive coverage'
180
+ });
181
+ }
182
+ else {
183
+ passed.push(`Good content length (${wordCount} words)`);
184
+ }
185
+ const links = $('a[href]');
186
+ const internalLinks = links.filter((i, el) => {
187
+ const href = $(el).attr('href') || '';
188
+ return href.startsWith('/') || href.startsWith('#');
189
+ }).length;
190
+ const externalLinks = links.length - internalLinks;
191
+ if (internalLinks === 0 && links.length > 0) {
192
+ issues.push({
193
+ severity: 'info',
194
+ category: 'links',
195
+ message: 'No internal links found',
196
+ suggestion: 'Add 2-3 internal links to related content'
197
+ });
198
+ }
199
+ else if (internalLinks > 0) {
200
+ passed.push(`Has internal links (${internalLinks} links)`);
201
+ }
202
+ const errorCount = issues.filter(i => i.severity === 'error').length;
203
+ const warningCount = issues.filter(i => i.severity === 'warning').length;
204
+ const infoCount = issues.filter(i => i.severity === 'info').length;
205
+ let score = 100;
206
+ score -= errorCount * 20;
207
+ score -= warningCount * 7;
208
+ score -= infoCount * 2;
209
+ score = Math.max(0, Math.min(100, score));
210
+ return {
211
+ path: htmlPath,
212
+ title: title || 'Untitled',
213
+ seoScore: score,
214
+ issues,
215
+ passed,
216
+ metadata
217
+ };
218
+ }
219
+ export function calculateValidationStats(results) {
220
+ const totalPosts = results.length;
221
+ const avgSeoScore = results.reduce((sum, r) => sum + r.seoScore, 0) / totalPosts;
222
+ const totalIssues = results.reduce((sum, r) => sum + r.issues.length, 0);
223
+ const postsWithIssues = results.filter(r => r.issues.length > 0).length;
224
+ const issuesBySeverity = {
225
+ error: results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'error').length, 0),
226
+ warning: results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'warning').length, 0),
227
+ info: results.reduce((sum, r) => sum + r.issues.filter(i => i.severity === 'info').length, 0),
228
+ };
229
+ const issuesByCategory = results.reduce((acc, r) => {
230
+ r.issues.forEach(issue => {
231
+ acc[issue.category] = (acc[issue.category] || 0) + 1;
232
+ });
233
+ return acc;
234
+ }, {});
235
+ return {
236
+ totalPosts,
237
+ avgSeoScore: Math.round(avgSeoScore * 10) / 10,
238
+ totalIssues,
239
+ postsWithIssues,
240
+ issuesBySeverity,
241
+ issuesByCategory
242
+ };
243
+ }
244
+ //# sourceMappingURL=seo-validator.js.map