@theglitchking/hit-em-with-the-docs 2.0.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.
- package/.claude-plugin/marketplace.json +46 -0
- package/.claude-plugin/plugin.json +114 -0
- package/LICENSE +21 -0
- package/MIGRATION.md +255 -0
- package/README.backup.md +714 -0
- package/README.md +869 -0
- package/action.yml +56 -0
- package/dist/action/action/index.d.ts +2 -0
- package/dist/action/action/index.d.ts.map +1 -0
- package/dist/action/cli/index.d.ts +3 -0
- package/dist/action/cli/index.d.ts.map +1 -0
- package/dist/action/core/audit/auditor.d.ts +43 -0
- package/dist/action/core/audit/auditor.d.ts.map +1 -0
- package/dist/action/core/audit/rules.d.ts +37 -0
- package/dist/action/core/audit/rules.d.ts.map +1 -0
- package/dist/action/core/discover/antipatterns.d.ts +24 -0
- package/dist/action/core/discover/antipatterns.d.ts.map +1 -0
- package/dist/action/core/discover/dependencies.d.ts +57 -0
- package/dist/action/core/discover/dependencies.d.ts.map +1 -0
- package/dist/action/core/discover/patterns.d.ts +38 -0
- package/dist/action/core/discover/patterns.d.ts.map +1 -0
- package/dist/action/core/discover/standards.d.ts +58 -0
- package/dist/action/core/discover/standards.d.ts.map +1 -0
- package/dist/action/core/domains/classifier.d.ts +41 -0
- package/dist/action/core/domains/classifier.d.ts.map +1 -0
- package/dist/action/core/domains/constants.d.ts +40 -0
- package/dist/action/core/domains/constants.d.ts.map +1 -0
- package/dist/action/core/domains/detector.d.ts +35 -0
- package/dist/action/core/domains/detector.d.ts.map +1 -0
- package/dist/action/core/integrate/integrator.d.ts +35 -0
- package/dist/action/core/integrate/integrator.d.ts.map +1 -0
- package/dist/action/core/links/checker.d.ts +64 -0
- package/dist/action/core/links/checker.d.ts.map +1 -0
- package/dist/action/core/links/tracker.d.ts +69 -0
- package/dist/action/core/links/tracker.d.ts.map +1 -0
- package/dist/action/core/maintain/orchestrator.d.ts +39 -0
- package/dist/action/core/maintain/orchestrator.d.ts.map +1 -0
- package/dist/action/core/metadata/generator.d.ts +26 -0
- package/dist/action/core/metadata/generator.d.ts.map +1 -0
- package/dist/action/core/metadata/schema.d.ts +201 -0
- package/dist/action/core/metadata/schema.d.ts.map +1 -0
- package/dist/action/core/metadata/sync.d.ts +36 -0
- package/dist/action/core/metadata/sync.d.ts.map +1 -0
- package/dist/action/generators/index-generator.d.ts +19 -0
- package/dist/action/generators/index-generator.d.ts.map +1 -0
- package/dist/action/generators/registry-generator.d.ts +11 -0
- package/dist/action/generators/registry-generator.d.ts.map +1 -0
- package/dist/action/generators/scaffold.d.ts +30 -0
- package/dist/action/generators/scaffold.d.ts.map +1 -0
- package/dist/action/generators/templates/document.d.ts +14 -0
- package/dist/action/generators/templates/document.d.ts.map +1 -0
- package/dist/action/generators/templates/domain-index.d.ts +6 -0
- package/dist/action/generators/templates/domain-index.d.ts.map +1 -0
- package/dist/action/generators/templates/domain-registry.d.ts +6 -0
- package/dist/action/generators/templates/domain-registry.d.ts.map +1 -0
- package/dist/action/index.d.ts +31 -0
- package/dist/action/index.d.ts.map +1 -0
- package/dist/action/index.js +17 -0
- package/dist/action/index.js.map +1 -0
- package/dist/action/package.json +3 -0
- package/dist/action/reports/audit-report.d.ts +15 -0
- package/dist/action/reports/audit-report.d.ts.map +1 -0
- package/dist/action/reports/health-report.d.ts +15 -0
- package/dist/action/reports/health-report.d.ts.map +1 -0
- package/dist/action/reports/link-report.d.ts +15 -0
- package/dist/action/reports/link-report.d.ts.map +1 -0
- package/dist/action/utils/frontmatter.d.ts +50 -0
- package/dist/action/utils/frontmatter.d.ts.map +1 -0
- package/dist/action/utils/glob.d.ts +63 -0
- package/dist/action/utils/glob.d.ts.map +1 -0
- package/dist/action/utils/logger.d.ts +42 -0
- package/dist/action/utils/logger.d.ts.map +1 -0
- package/dist/action/utils/markdown.d.ts +89 -0
- package/dist/action/utils/markdown.d.ts.map +1 -0
- package/dist/cli/index.d.ts +3 -0
- package/dist/cli/index.d.ts.map +1 -0
- package/dist/cli/index.js +287 -0
- package/dist/cli/index.js.map +1 -0
- package/dist/core/audit/auditor.d.ts +43 -0
- package/dist/core/audit/auditor.d.ts.map +1 -0
- package/dist/core/audit/auditor.js +273 -0
- package/dist/core/audit/auditor.js.map +1 -0
- package/dist/core/audit/rules.d.ts +37 -0
- package/dist/core/audit/rules.d.ts.map +1 -0
- package/dist/core/audit/rules.js +223 -0
- package/dist/core/audit/rules.js.map +1 -0
- package/dist/core/discover/antipatterns.d.ts +24 -0
- package/dist/core/discover/antipatterns.d.ts.map +1 -0
- package/dist/core/discover/antipatterns.js +354 -0
- package/dist/core/discover/antipatterns.js.map +1 -0
- package/dist/core/discover/dependencies.d.ts +57 -0
- package/dist/core/discover/dependencies.d.ts.map +1 -0
- package/dist/core/discover/dependencies.js +311 -0
- package/dist/core/discover/dependencies.js.map +1 -0
- package/dist/core/discover/patterns.d.ts +38 -0
- package/dist/core/discover/patterns.d.ts.map +1 -0
- package/dist/core/discover/patterns.js +371 -0
- package/dist/core/discover/patterns.js.map +1 -0
- package/dist/core/discover/standards.d.ts +58 -0
- package/dist/core/discover/standards.d.ts.map +1 -0
- package/dist/core/discover/standards.js +359 -0
- package/dist/core/discover/standards.js.map +1 -0
- package/dist/core/domains/classifier.d.ts +41 -0
- package/dist/core/domains/classifier.d.ts.map +1 -0
- package/dist/core/domains/classifier.js +208 -0
- package/dist/core/domains/classifier.js.map +1 -0
- package/dist/core/domains/constants.d.ts +40 -0
- package/dist/core/domains/constants.d.ts.map +1 -0
- package/dist/core/domains/constants.js +252 -0
- package/dist/core/domains/constants.js.map +1 -0
- package/dist/core/domains/detector.d.ts +35 -0
- package/dist/core/domains/detector.d.ts.map +1 -0
- package/dist/core/domains/detector.js +176 -0
- package/dist/core/domains/detector.js.map +1 -0
- package/dist/core/integrate/integrator.d.ts +35 -0
- package/dist/core/integrate/integrator.d.ts.map +1 -0
- package/dist/core/integrate/integrator.js +216 -0
- package/dist/core/integrate/integrator.js.map +1 -0
- package/dist/core/links/checker.d.ts +64 -0
- package/dist/core/links/checker.d.ts.map +1 -0
- package/dist/core/links/checker.js +190 -0
- package/dist/core/links/checker.js.map +1 -0
- package/dist/core/links/tracker.d.ts +69 -0
- package/dist/core/links/tracker.d.ts.map +1 -0
- package/dist/core/links/tracker.js +184 -0
- package/dist/core/links/tracker.js.map +1 -0
- package/dist/core/maintain/orchestrator.d.ts +39 -0
- package/dist/core/maintain/orchestrator.d.ts.map +1 -0
- package/dist/core/maintain/orchestrator.js +372 -0
- package/dist/core/maintain/orchestrator.js.map +1 -0
- package/dist/core/metadata/generator.d.ts +26 -0
- package/dist/core/metadata/generator.d.ts.map +1 -0
- package/dist/core/metadata/generator.js +221 -0
- package/dist/core/metadata/generator.js.map +1 -0
- package/dist/core/metadata/schema.d.ts +201 -0
- package/dist/core/metadata/schema.d.ts.map +1 -0
- package/dist/core/metadata/schema.js +184 -0
- package/dist/core/metadata/schema.js.map +1 -0
- package/dist/core/metadata/sync.d.ts +36 -0
- package/dist/core/metadata/sync.d.ts.map +1 -0
- package/dist/core/metadata/sync.js +195 -0
- package/dist/core/metadata/sync.js.map +1 -0
- package/dist/generators/index-generator.d.ts +19 -0
- package/dist/generators/index-generator.d.ts.map +1 -0
- package/dist/generators/index-generator.js +191 -0
- package/dist/generators/index-generator.js.map +1 -0
- package/dist/generators/registry-generator.d.ts +11 -0
- package/dist/generators/registry-generator.d.ts.map +1 -0
- package/dist/generators/registry-generator.js +156 -0
- package/dist/generators/registry-generator.js.map +1 -0
- package/dist/generators/scaffold.d.ts +30 -0
- package/dist/generators/scaffold.d.ts.map +1 -0
- package/dist/generators/scaffold.js +213 -0
- package/dist/generators/scaffold.js.map +1 -0
- package/dist/generators/templates/document.d.ts +14 -0
- package/dist/generators/templates/document.d.ts.map +1 -0
- package/dist/generators/templates/document.js +305 -0
- package/dist/generators/templates/document.js.map +1 -0
- package/dist/generators/templates/domain-index.d.ts +6 -0
- package/dist/generators/templates/domain-index.d.ts.map +1 -0
- package/dist/generators/templates/domain-index.js +68 -0
- package/dist/generators/templates/domain-index.js.map +1 -0
- package/dist/generators/templates/domain-registry.d.ts +6 -0
- package/dist/generators/templates/domain-registry.d.ts.map +1 -0
- package/dist/generators/templates/domain-registry.js +59 -0
- package/dist/generators/templates/domain-registry.js.map +1 -0
- package/dist/index.d.ts +32 -0
- package/dist/index.d.ts.map +1 -0
- package/dist/index.js +39 -0
- package/dist/index.js.map +1 -0
- package/dist/reports/audit-report.d.ts +15 -0
- package/dist/reports/audit-report.d.ts.map +1 -0
- package/dist/reports/audit-report.js +150 -0
- package/dist/reports/audit-report.js.map +1 -0
- package/dist/reports/health-report.d.ts +15 -0
- package/dist/reports/health-report.d.ts.map +1 -0
- package/dist/reports/health-report.js +175 -0
- package/dist/reports/health-report.js.map +1 -0
- package/dist/reports/link-report.d.ts +15 -0
- package/dist/reports/link-report.d.ts.map +1 -0
- package/dist/reports/link-report.js +165 -0
- package/dist/reports/link-report.js.map +1 -0
- package/dist/utils/frontmatter.d.ts +50 -0
- package/dist/utils/frontmatter.d.ts.map +1 -0
- package/dist/utils/frontmatter.js +93 -0
- package/dist/utils/frontmatter.js.map +1 -0
- package/dist/utils/glob.d.ts +63 -0
- package/dist/utils/glob.d.ts.map +1 -0
- package/dist/utils/glob.js +128 -0
- package/dist/utils/glob.js.map +1 -0
- package/dist/utils/logger.d.ts +42 -0
- package/dist/utils/logger.d.ts.map +1 -0
- package/dist/utils/logger.js +118 -0
- package/dist/utils/logger.js.map +1 -0
- package/dist/utils/markdown.d.ts +89 -0
- package/dist/utils/markdown.d.ts.map +1 -0
- package/dist/utils/markdown.js +192 -0
- package/dist/utils/markdown.js.map +1 -0
- package/package.json +100 -0
- package/templates/claude/CLAUDE.md +204 -0
|
@@ -0,0 +1,118 @@
|
|
|
1
|
+
import chalk from 'chalk';
|
|
2
|
+
class Logger {
|
|
3
|
+
silent = false;
|
|
4
|
+
verbose = false;
|
|
5
|
+
prefix = '';
|
|
6
|
+
configure(options) {
|
|
7
|
+
if (options.silent !== undefined)
|
|
8
|
+
this.silent = options.silent;
|
|
9
|
+
if (options.verbose !== undefined)
|
|
10
|
+
this.verbose = options.verbose;
|
|
11
|
+
if (options.prefix !== undefined)
|
|
12
|
+
this.prefix = options.prefix;
|
|
13
|
+
}
|
|
14
|
+
formatMessage(message) {
|
|
15
|
+
return this.prefix ? `${this.prefix} ${message}` : message;
|
|
16
|
+
}
|
|
17
|
+
debug(message, ...args) {
|
|
18
|
+
if (this.silent || !this.verbose)
|
|
19
|
+
return;
|
|
20
|
+
console.log(chalk.gray(`[DEBUG] ${this.formatMessage(message)}`), ...args);
|
|
21
|
+
}
|
|
22
|
+
info(message, ...args) {
|
|
23
|
+
if (this.silent)
|
|
24
|
+
return;
|
|
25
|
+
console.log(chalk.blue('ℹ'), this.formatMessage(message), ...args);
|
|
26
|
+
}
|
|
27
|
+
success(message, ...args) {
|
|
28
|
+
if (this.silent)
|
|
29
|
+
return;
|
|
30
|
+
console.log(chalk.green('✓'), this.formatMessage(message), ...args);
|
|
31
|
+
}
|
|
32
|
+
warn(message, ...args) {
|
|
33
|
+
if (this.silent)
|
|
34
|
+
return;
|
|
35
|
+
console.log(chalk.yellow('⚠'), this.formatMessage(message), ...args);
|
|
36
|
+
}
|
|
37
|
+
error(message, ...args) {
|
|
38
|
+
console.error(chalk.red('✗'), this.formatMessage(message), ...args);
|
|
39
|
+
}
|
|
40
|
+
// Styled output helpers
|
|
41
|
+
header(title) {
|
|
42
|
+
if (this.silent)
|
|
43
|
+
return;
|
|
44
|
+
console.log();
|
|
45
|
+
console.log(chalk.bold.cyan(`━━━ ${title} ━━━`));
|
|
46
|
+
console.log();
|
|
47
|
+
}
|
|
48
|
+
subheader(title) {
|
|
49
|
+
if (this.silent)
|
|
50
|
+
return;
|
|
51
|
+
console.log();
|
|
52
|
+
console.log(chalk.bold(title));
|
|
53
|
+
}
|
|
54
|
+
list(items, indent = 0) {
|
|
55
|
+
if (this.silent)
|
|
56
|
+
return;
|
|
57
|
+
const prefix = ' '.repeat(indent);
|
|
58
|
+
items.forEach((item) => {
|
|
59
|
+
console.log(`${prefix}• ${item}`);
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
table(headers, rows) {
|
|
63
|
+
if (this.silent)
|
|
64
|
+
return;
|
|
65
|
+
const colWidths = headers.map((h, i) => Math.max(h.length, ...rows.map((r) => (r[i] ?? '').length)));
|
|
66
|
+
const separator = colWidths.map((w) => '─'.repeat(w + 2)).join('┼');
|
|
67
|
+
const headerRow = headers
|
|
68
|
+
.map((h, i) => ` ${h.padEnd(colWidths[i] ?? 0)} `)
|
|
69
|
+
.join('│');
|
|
70
|
+
console.log(chalk.gray(`┌${separator.replace(/┼/g, '┬')}┐`));
|
|
71
|
+
console.log(chalk.bold(`│${headerRow}│`));
|
|
72
|
+
console.log(chalk.gray(`├${separator}┤`));
|
|
73
|
+
rows.forEach((row) => {
|
|
74
|
+
const rowStr = row
|
|
75
|
+
.map((cell, i) => ` ${(cell ?? '').padEnd(colWidths[i] ?? 0)} `)
|
|
76
|
+
.join('│');
|
|
77
|
+
console.log(`│${rowStr}│`);
|
|
78
|
+
});
|
|
79
|
+
console.log(chalk.gray(`└${separator.replace(/┼/g, '┴')}┘`));
|
|
80
|
+
}
|
|
81
|
+
progress(current, total, label) {
|
|
82
|
+
if (this.silent)
|
|
83
|
+
return;
|
|
84
|
+
const percentage = Math.round((current / total) * 100);
|
|
85
|
+
const barWidth = 30;
|
|
86
|
+
const filled = Math.round((current / total) * barWidth);
|
|
87
|
+
const empty = barWidth - filled;
|
|
88
|
+
const bar = chalk.green('█'.repeat(filled)) + chalk.gray('░'.repeat(empty));
|
|
89
|
+
const labelStr = label ? ` ${label}` : '';
|
|
90
|
+
process.stdout.write(`\r${bar} ${percentage}%${labelStr}`);
|
|
91
|
+
if (current === total)
|
|
92
|
+
console.log();
|
|
93
|
+
}
|
|
94
|
+
newline() {
|
|
95
|
+
if (this.silent)
|
|
96
|
+
return;
|
|
97
|
+
console.log();
|
|
98
|
+
}
|
|
99
|
+
// Emoji helpers
|
|
100
|
+
emoji = {
|
|
101
|
+
docs: '📚',
|
|
102
|
+
check: '✅',
|
|
103
|
+
cross: '❌',
|
|
104
|
+
warn: '⚠️',
|
|
105
|
+
info: 'ℹ️',
|
|
106
|
+
search: '🔍',
|
|
107
|
+
stats: '📊',
|
|
108
|
+
fix: '🔧',
|
|
109
|
+
link: '🔗',
|
|
110
|
+
folder: '📁',
|
|
111
|
+
file: '📄',
|
|
112
|
+
clock: '⏱️',
|
|
113
|
+
sparkles: '✨',
|
|
114
|
+
};
|
|
115
|
+
}
|
|
116
|
+
export const logger = new Logger();
|
|
117
|
+
export default logger;
|
|
118
|
+
//# sourceMappingURL=logger.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"logger.js","sourceRoot":"","sources":["../../src/utils/logger.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,89 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown utilities for parsing and generating markdown content
|
|
3
|
+
*/
|
|
4
|
+
export interface MarkdownLink {
|
|
5
|
+
text: string;
|
|
6
|
+
url: string;
|
|
7
|
+
title?: string;
|
|
8
|
+
isInternal: boolean;
|
|
9
|
+
lineNumber: number;
|
|
10
|
+
startIndex: number;
|
|
11
|
+
endIndex: number;
|
|
12
|
+
}
|
|
13
|
+
export interface MarkdownHeading {
|
|
14
|
+
level: number;
|
|
15
|
+
text: string;
|
|
16
|
+
lineNumber: number;
|
|
17
|
+
}
|
|
18
|
+
/**
|
|
19
|
+
* Extract all links from markdown content
|
|
20
|
+
*/
|
|
21
|
+
export declare function extractLinks(content: string): MarkdownLink[];
|
|
22
|
+
/**
|
|
23
|
+
* Extract only internal links
|
|
24
|
+
*/
|
|
25
|
+
export declare function extractInternalLinks(content: string): MarkdownLink[];
|
|
26
|
+
/**
|
|
27
|
+
* Extract all headings from markdown content
|
|
28
|
+
*/
|
|
29
|
+
export declare function extractHeadings(content: string): MarkdownHeading[];
|
|
30
|
+
/**
|
|
31
|
+
* Get the title (first h1) from markdown content
|
|
32
|
+
*/
|
|
33
|
+
export declare function extractTitle(content: string): string | null;
|
|
34
|
+
/**
|
|
35
|
+
* Count words in markdown content (excluding code blocks and frontmatter)
|
|
36
|
+
*/
|
|
37
|
+
export declare function countWords(content: string): number;
|
|
38
|
+
/**
|
|
39
|
+
* Calculate estimated read time in minutes
|
|
40
|
+
*/
|
|
41
|
+
export declare function calculateReadTime(content: string, wordsPerMinute?: number): number;
|
|
42
|
+
/**
|
|
43
|
+
* Format read time as string
|
|
44
|
+
*/
|
|
45
|
+
export declare function formatReadTime(content: string): string;
|
|
46
|
+
/**
|
|
47
|
+
* Generate a markdown link
|
|
48
|
+
*/
|
|
49
|
+
export declare function createLink(text: string, url: string, title?: string): string;
|
|
50
|
+
/**
|
|
51
|
+
* Generate a markdown heading
|
|
52
|
+
*/
|
|
53
|
+
export declare function createHeading(text: string, level?: number): string;
|
|
54
|
+
/**
|
|
55
|
+
* Generate a markdown table
|
|
56
|
+
*/
|
|
57
|
+
export declare function createTable(headers: string[], rows: string[][]): string;
|
|
58
|
+
/**
|
|
59
|
+
* Generate a markdown list
|
|
60
|
+
*/
|
|
61
|
+
export declare function createList(items: string[], ordered?: boolean): string;
|
|
62
|
+
/**
|
|
63
|
+
* Generate a markdown checkbox list
|
|
64
|
+
*/
|
|
65
|
+
export declare function createCheckboxList(items: {
|
|
66
|
+
text: string;
|
|
67
|
+
checked: boolean;
|
|
68
|
+
}[]): string;
|
|
69
|
+
/**
|
|
70
|
+
* Wrap text in a code block
|
|
71
|
+
*/
|
|
72
|
+
export declare function createCodeBlock(code: string, language?: string): string;
|
|
73
|
+
/**
|
|
74
|
+
* Create an inline code span
|
|
75
|
+
*/
|
|
76
|
+
export declare function createInlineCode(code: string): string;
|
|
77
|
+
/**
|
|
78
|
+
* Create a blockquote
|
|
79
|
+
*/
|
|
80
|
+
export declare function createBlockquote(text: string): string;
|
|
81
|
+
/**
|
|
82
|
+
* Slugify text for use in URLs/anchors
|
|
83
|
+
*/
|
|
84
|
+
export declare function slugify(text: string): string;
|
|
85
|
+
/**
|
|
86
|
+
* Extract first paragraph as excerpt
|
|
87
|
+
*/
|
|
88
|
+
export declare function extractExcerpt(content: string, maxLength?: number): string;
|
|
89
|
+
//# sourceMappingURL=markdown.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.d.ts","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"AAAA;;GAEG;AAEH,MAAM,WAAW,YAAY;IAC3B,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,UAAU,EAAE,OAAO,CAAC;IACpB,UAAU,EAAE,MAAM,CAAC;IACnB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,KAAK,EAAE,MAAM,CAAC;IACd,IAAI,EAAE,MAAM,CAAC;IACb,UAAU,EAAE,MAAM,CAAC;CACpB;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAmC5D;AAED;;GAEG;AACH,wBAAgB,oBAAoB,CAAC,OAAO,EAAE,MAAM,GAAG,YAAY,EAAE,CAEpE;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,OAAO,EAAE,MAAM,GAAG,eAAe,EAAE,CAmBlE;AAED;;GAEG;AACH,wBAAgB,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,GAAG,IAAI,CAI3D;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAclD;AAED;;GAEG;AACH,wBAAgB,iBAAiB,CAAC,OAAO,EAAE,MAAM,EAAE,cAAc,GAAE,MAAY,GAAG,MAAM,CAGvF;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,GAAG,MAAM,CAGtD;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,IAAI,EAAE,MAAM,EAAE,GAAG,EAAE,MAAM,EAAE,KAAK,CAAC,EAAE,MAAM,GAAG,MAAM,CAK5E;AAED;;GAEG;AACH,wBAAgB,aAAa,CAAC,IAAI,EAAE,MAAM,EAAE,KAAK,GAAE,MAAU,GAAG,MAAM,CAGrE;AAED;;GAEG;AACH,wBAAgB,WAAW,CAAC,OAAO,EAAE,MAAM,EAAE,EAAE,IAAI,EAAE,MAAM,EAAE,EAAE,GAAG,MAAM,CAMvE;AAED;;GAEG;AACH,wBAAgB,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,OAAO,GAAE,OAAe,GAAG,MAAM,CAI5E;AAED;;GAEG;AACH,wBAAgB,kBAAkB,CAChC,KAAK,EAAE;IAAE,IAAI,EAAE,MAAM,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,EAAE,GAC1C,MAAM,CAIR;AAED;;GAEG;AACH,wBAAgB,eAAe,CAAC,IAAI,EAAE,MAAM,EAAE,QAAQ,GAAE,MAAW,GAAG,MAAM,CAE3E;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAErD;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAKrD;AAED;;GAEG;AACH,wBAAgB,OAAO,CAAC,IAAI,EAAE,MAAM,GAAG,MAAM,CAO5C;AAED;;GAEG;AACH,wBAAgB,cAAc,CAAC,OAAO,EAAE,MAAM,EAAE,SAAS,GAAE,MAAY,GAAG,MAAM,CAiB/E"}
|
|
@@ -0,0 +1,192 @@
|
|
|
1
|
+
/**
|
|
2
|
+
* Markdown utilities for parsing and generating markdown content
|
|
3
|
+
*/
|
|
4
|
+
/**
|
|
5
|
+
* Extract all links from markdown content
|
|
6
|
+
*/
|
|
7
|
+
export function extractLinks(content) {
|
|
8
|
+
const links = [];
|
|
9
|
+
const lines = content.split('\n');
|
|
10
|
+
// Match markdown links: [text](url) or [text](url "title")
|
|
11
|
+
const linkRegex = /\[([^\]]*)\]\(([^)\s]+)(?:\s+"([^"]*)")?\)/g;
|
|
12
|
+
lines.forEach((line, lineIndex) => {
|
|
13
|
+
let match;
|
|
14
|
+
while ((match = linkRegex.exec(line)) !== null) {
|
|
15
|
+
const [fullMatch, text, url, title] = match;
|
|
16
|
+
const urlStr = url ?? '';
|
|
17
|
+
const isInternal = !urlStr.startsWith('http://') &&
|
|
18
|
+
!urlStr.startsWith('https://') &&
|
|
19
|
+
!urlStr.startsWith('mailto:') &&
|
|
20
|
+
!urlStr.startsWith('#');
|
|
21
|
+
const link = {
|
|
22
|
+
text: text ?? '',
|
|
23
|
+
url: urlStr,
|
|
24
|
+
isInternal,
|
|
25
|
+
lineNumber: lineIndex + 1,
|
|
26
|
+
startIndex: match.index,
|
|
27
|
+
endIndex: match.index + (fullMatch?.length ?? 0),
|
|
28
|
+
};
|
|
29
|
+
if (title) {
|
|
30
|
+
link.title = title;
|
|
31
|
+
}
|
|
32
|
+
links.push(link);
|
|
33
|
+
}
|
|
34
|
+
// Reset regex lastIndex for next line
|
|
35
|
+
linkRegex.lastIndex = 0;
|
|
36
|
+
});
|
|
37
|
+
return links;
|
|
38
|
+
}
|
|
39
|
+
/**
|
|
40
|
+
* Extract only internal links
|
|
41
|
+
*/
|
|
42
|
+
export function extractInternalLinks(content) {
|
|
43
|
+
return extractLinks(content).filter((link) => link.isInternal);
|
|
44
|
+
}
|
|
45
|
+
/**
|
|
46
|
+
* Extract all headings from markdown content
|
|
47
|
+
*/
|
|
48
|
+
export function extractHeadings(content) {
|
|
49
|
+
const headings = [];
|
|
50
|
+
const lines = content.split('\n');
|
|
51
|
+
// Match ATX headings: # Heading
|
|
52
|
+
const headingRegex = /^(#{1,6})\s+(.+)$/;
|
|
53
|
+
lines.forEach((line, lineIndex) => {
|
|
54
|
+
const match = line.match(headingRegex);
|
|
55
|
+
if (match) {
|
|
56
|
+
headings.push({
|
|
57
|
+
level: match[1]?.length ?? 1,
|
|
58
|
+
text: (match[2] ?? '').trim(),
|
|
59
|
+
lineNumber: lineIndex + 1,
|
|
60
|
+
});
|
|
61
|
+
}
|
|
62
|
+
});
|
|
63
|
+
return headings;
|
|
64
|
+
}
|
|
65
|
+
/**
|
|
66
|
+
* Get the title (first h1) from markdown content
|
|
67
|
+
*/
|
|
68
|
+
export function extractTitle(content) {
|
|
69
|
+
const headings = extractHeadings(content);
|
|
70
|
+
const h1 = headings.find((h) => h.level === 1);
|
|
71
|
+
return h1?.text ?? null;
|
|
72
|
+
}
|
|
73
|
+
/**
|
|
74
|
+
* Count words in markdown content (excluding code blocks and frontmatter)
|
|
75
|
+
*/
|
|
76
|
+
export function countWords(content) {
|
|
77
|
+
// Remove frontmatter
|
|
78
|
+
let text = content.replace(/^---[\s\S]*?---\n*/m, '');
|
|
79
|
+
// Remove code blocks
|
|
80
|
+
text = text.replace(/```[\s\S]*?```/g, '');
|
|
81
|
+
text = text.replace(/`[^`]+`/g, '');
|
|
82
|
+
// Remove markdown syntax
|
|
83
|
+
text = text.replace(/[#*_~\[\]()]/g, ' ');
|
|
84
|
+
// Count words
|
|
85
|
+
const words = text.split(/\s+/).filter((word) => word.length > 0);
|
|
86
|
+
return words.length;
|
|
87
|
+
}
|
|
88
|
+
/**
|
|
89
|
+
* Calculate estimated read time in minutes
|
|
90
|
+
*/
|
|
91
|
+
export function calculateReadTime(content, wordsPerMinute = 200) {
|
|
92
|
+
const wordCount = countWords(content);
|
|
93
|
+
return Math.ceil(wordCount / wordsPerMinute);
|
|
94
|
+
}
|
|
95
|
+
/**
|
|
96
|
+
* Format read time as string
|
|
97
|
+
*/
|
|
98
|
+
export function formatReadTime(content) {
|
|
99
|
+
const minutes = calculateReadTime(content);
|
|
100
|
+
return `${minutes} minute${minutes === 1 ? '' : 's'}`;
|
|
101
|
+
}
|
|
102
|
+
/**
|
|
103
|
+
* Generate a markdown link
|
|
104
|
+
*/
|
|
105
|
+
export function createLink(text, url, title) {
|
|
106
|
+
if (title) {
|
|
107
|
+
return `[${text}](${url} "${title}")`;
|
|
108
|
+
}
|
|
109
|
+
return `[${text}](${url})`;
|
|
110
|
+
}
|
|
111
|
+
/**
|
|
112
|
+
* Generate a markdown heading
|
|
113
|
+
*/
|
|
114
|
+
export function createHeading(text, level = 1) {
|
|
115
|
+
const hashes = '#'.repeat(Math.min(Math.max(level, 1), 6));
|
|
116
|
+
return `${hashes} ${text}`;
|
|
117
|
+
}
|
|
118
|
+
/**
|
|
119
|
+
* Generate a markdown table
|
|
120
|
+
*/
|
|
121
|
+
export function createTable(headers, rows) {
|
|
122
|
+
const headerRow = `| ${headers.join(' | ')} |`;
|
|
123
|
+
const separatorRow = `| ${headers.map(() => '---').join(' | ')} |`;
|
|
124
|
+
const dataRows = rows.map((row) => `| ${row.join(' | ')} |`);
|
|
125
|
+
return [headerRow, separatorRow, ...dataRows].join('\n');
|
|
126
|
+
}
|
|
127
|
+
/**
|
|
128
|
+
* Generate a markdown list
|
|
129
|
+
*/
|
|
130
|
+
export function createList(items, ordered = false) {
|
|
131
|
+
return items
|
|
132
|
+
.map((item, index) => (ordered ? `${index + 1}. ${item}` : `- ${item}`))
|
|
133
|
+
.join('\n');
|
|
134
|
+
}
|
|
135
|
+
/**
|
|
136
|
+
* Generate a markdown checkbox list
|
|
137
|
+
*/
|
|
138
|
+
export function createCheckboxList(items) {
|
|
139
|
+
return items
|
|
140
|
+
.map((item) => `- [${item.checked ? 'x' : ' '}] ${item.text}`)
|
|
141
|
+
.join('\n');
|
|
142
|
+
}
|
|
143
|
+
/**
|
|
144
|
+
* Wrap text in a code block
|
|
145
|
+
*/
|
|
146
|
+
export function createCodeBlock(code, language = '') {
|
|
147
|
+
return `\`\`\`${language}\n${code}\n\`\`\``;
|
|
148
|
+
}
|
|
149
|
+
/**
|
|
150
|
+
* Create an inline code span
|
|
151
|
+
*/
|
|
152
|
+
export function createInlineCode(code) {
|
|
153
|
+
return `\`${code}\``;
|
|
154
|
+
}
|
|
155
|
+
/**
|
|
156
|
+
* Create a blockquote
|
|
157
|
+
*/
|
|
158
|
+
export function createBlockquote(text) {
|
|
159
|
+
return text
|
|
160
|
+
.split('\n')
|
|
161
|
+
.map((line) => `> ${line}`)
|
|
162
|
+
.join('\n');
|
|
163
|
+
}
|
|
164
|
+
/**
|
|
165
|
+
* Slugify text for use in URLs/anchors
|
|
166
|
+
*/
|
|
167
|
+
export function slugify(text) {
|
|
168
|
+
return text
|
|
169
|
+
.toLowerCase()
|
|
170
|
+
.replace(/[^\w\s-]/g, '')
|
|
171
|
+
.replace(/\s+/g, '-')
|
|
172
|
+
.replace(/-+/g, '-')
|
|
173
|
+
.trim();
|
|
174
|
+
}
|
|
175
|
+
/**
|
|
176
|
+
* Extract first paragraph as excerpt
|
|
177
|
+
*/
|
|
178
|
+
export function extractExcerpt(content, maxLength = 200) {
|
|
179
|
+
// Remove frontmatter
|
|
180
|
+
let text = content.replace(/^---[\s\S]*?---\n*/m, '');
|
|
181
|
+
// Remove headings
|
|
182
|
+
text = text.replace(/^#+\s+.*$/gm, '');
|
|
183
|
+
// Get first paragraph
|
|
184
|
+
const paragraphs = text.split(/\n\n+/).filter((p) => p.trim().length > 0);
|
|
185
|
+
const firstParagraph = paragraphs[0] ?? '';
|
|
186
|
+
// Truncate if needed
|
|
187
|
+
if (firstParagraph.length <= maxLength) {
|
|
188
|
+
return firstParagraph.trim();
|
|
189
|
+
}
|
|
190
|
+
return firstParagraph.slice(0, maxLength).trim() + '...';
|
|
191
|
+
}
|
|
192
|
+
//# sourceMappingURL=markdown.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"markdown.js","sourceRoot":"","sources":["../../src/utils/markdown.ts"],"names":[],"mappings":"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"}
|
package/package.json
ADDED
|
@@ -0,0 +1,100 @@
|
|
|
1
|
+
{
|
|
2
|
+
"name": "@theglitchking/hit-em-with-the-docs",
|
|
3
|
+
"version": "2.0.0",
|
|
4
|
+
"description": "Self-managing documentation system with hierarchical structure, intelligent automation, pattern discovery, and agent orchestration",
|
|
5
|
+
"type": "module",
|
|
6
|
+
"main": "dist/cli/index.js",
|
|
7
|
+
"bin": {
|
|
8
|
+
"hit-em-with-the-docs": "dist/cli/index.js",
|
|
9
|
+
"hewtd": "dist/cli/index.js"
|
|
10
|
+
},
|
|
11
|
+
"exports": {
|
|
12
|
+
".": {
|
|
13
|
+
"import": "./dist/index.js",
|
|
14
|
+
"types": "./dist/index.d.ts"
|
|
15
|
+
},
|
|
16
|
+
"./cli": {
|
|
17
|
+
"import": "./dist/cli/index.js"
|
|
18
|
+
},
|
|
19
|
+
"./action": {
|
|
20
|
+
"import": "./dist/action/index.js"
|
|
21
|
+
}
|
|
22
|
+
},
|
|
23
|
+
"files": [
|
|
24
|
+
"dist",
|
|
25
|
+
"templates",
|
|
26
|
+
".claude-plugin",
|
|
27
|
+
"action.yml",
|
|
28
|
+
"README.md",
|
|
29
|
+
"LICENSE",
|
|
30
|
+
"MIGRATION.md"
|
|
31
|
+
],
|
|
32
|
+
"scripts": {
|
|
33
|
+
"build": "tsc",
|
|
34
|
+
"build:action": "ncc build src/action/index.ts -o dist/action --minify",
|
|
35
|
+
"build:all": "npm run build && npm run build:action",
|
|
36
|
+
"dev": "tsc --watch",
|
|
37
|
+
"test": "vitest run",
|
|
38
|
+
"test:watch": "vitest",
|
|
39
|
+
"test:coverage": "vitest run --coverage",
|
|
40
|
+
"lint": "eslint src --ext .ts",
|
|
41
|
+
"lint:fix": "eslint src --ext .ts --fix",
|
|
42
|
+
"format": "prettier --write \"src/**/*.ts\"",
|
|
43
|
+
"typecheck": "tsc --noEmit",
|
|
44
|
+
"prepublishOnly": "npm run build:all && npm run test && bash scripts/validate-version.sh",
|
|
45
|
+
"cli": "node dist/cli/index.js"
|
|
46
|
+
},
|
|
47
|
+
"publishConfig": {
|
|
48
|
+
"access": "public"
|
|
49
|
+
},
|
|
50
|
+
"keywords": [
|
|
51
|
+
"documentation",
|
|
52
|
+
"github-action",
|
|
53
|
+
"docs",
|
|
54
|
+
"markdown",
|
|
55
|
+
"automation",
|
|
56
|
+
"cli",
|
|
57
|
+
"hierarchical",
|
|
58
|
+
"metadata",
|
|
59
|
+
"pattern-discovery",
|
|
60
|
+
"code-quality",
|
|
61
|
+
"self-managing",
|
|
62
|
+
"dsmp"
|
|
63
|
+
],
|
|
64
|
+
"author": "",
|
|
65
|
+
"license": "MIT",
|
|
66
|
+
"repository": {
|
|
67
|
+
"type": "git",
|
|
68
|
+
"url": "git+https://github.com/TheGlitchKing/hit-em-with-the-docs.git"
|
|
69
|
+
},
|
|
70
|
+
"bugs": {
|
|
71
|
+
"url": "https://github.com/TheGlitchKing/hit-em-with-the-docs/issues"
|
|
72
|
+
},
|
|
73
|
+
"homepage": "https://github.com/TheGlitchKing/hit-em-with-the-docs#readme",
|
|
74
|
+
"engines": {
|
|
75
|
+
"node": ">=20.0.0"
|
|
76
|
+
},
|
|
77
|
+
"dependencies": {
|
|
78
|
+
"chalk": "^5.3.0",
|
|
79
|
+
"commander": "^12.1.0",
|
|
80
|
+
"fast-levenshtein": "^3.0.0",
|
|
81
|
+
"glob": "^10.4.5",
|
|
82
|
+
"gray-matter": "^4.0.3",
|
|
83
|
+
"yaml": "^2.6.1",
|
|
84
|
+
"zod": "^3.24.1"
|
|
85
|
+
},
|
|
86
|
+
"devDependencies": {
|
|
87
|
+
"@actions/core": "^1.11.1",
|
|
88
|
+
"@actions/github": "^6.0.0",
|
|
89
|
+
"@types/fast-levenshtein": "^0.0.4",
|
|
90
|
+
"@types/node": "^20.17.12",
|
|
91
|
+
"@typescript-eslint/eslint-plugin": "^7.18.0",
|
|
92
|
+
"@typescript-eslint/parser": "^7.18.0",
|
|
93
|
+
"@vercel/ncc": "^0.38.3",
|
|
94
|
+
"@vitest/coverage-v8": "^2.1.8",
|
|
95
|
+
"eslint": "^8.57.1",
|
|
96
|
+
"prettier": "^3.4.2",
|
|
97
|
+
"typescript": "^5.7.3",
|
|
98
|
+
"vitest": "^2.1.8"
|
|
99
|
+
}
|
|
100
|
+
}
|