nx-md-parser 2.0.1 → 2.2.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/README.md +116 -31
- package/dist/src/index.d.ts +4 -1
- package/dist/src/index.d.ts.map +1 -1
- package/dist/src/index.js +9 -1
- package/dist/src/index.js.map +1 -1
- package/dist/src/lib/markdown-transformer/core/transformer.d.ts +3 -0
- package/dist/src/lib/markdown-transformer/core/transformer.d.ts.map +1 -1
- package/dist/src/lib/markdown-transformer/core/transformer.js +60 -1
- package/dist/src/lib/markdown-transformer/core/transformer.js.map +1 -1
- package/dist/src/lib/markdown-transformer/core/types.d.ts +2 -1
- package/dist/src/lib/markdown-transformer/core/types.d.ts.map +1 -1
- package/dist/src/lib/markdown-transformer/core/types.js +1 -0
- package/dist/src/lib/markdown-transformer/core/types.js.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/bullet-parser.d.ts.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/bullet-parser.js +54 -52
- package/dist/src/lib/markdown-transformer/parsers/bullet-parser.js.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/colon-parser.d.ts +10 -0
- package/dist/src/lib/markdown-transformer/parsers/colon-parser.d.ts.map +1 -0
- package/dist/src/lib/markdown-transformer/parsers/colon-parser.js +63 -0
- package/dist/src/lib/markdown-transformer/parsers/colon-parser.js.map +1 -0
- package/dist/src/lib/markdown-transformer/parsers/format-detector.d.ts +26 -0
- package/dist/src/lib/markdown-transformer/parsers/format-detector.d.ts.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/format-detector.js +133 -1
- package/dist/src/lib/markdown-transformer/parsers/format-detector.js.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/index.d.ts +2 -0
- package/dist/src/lib/markdown-transformer/parsers/index.d.ts.map +1 -1
- package/dist/src/lib/markdown-transformer/parsers/index.js +3 -1
- package/dist/src/lib/markdown-transformer/parsers/index.js.map +1 -1
- package/package.json +14 -6
package/README.md
CHANGED
|
@@ -3,15 +3,16 @@
|
|
|
3
3
|
[](https://badge.fury.io/js/nx-md-parser)
|
|
4
4
|
[](https://opensource.org/licenses/ISC)
|
|
5
5
|
|
|
6
|
-
**Multi-Format AI-Powered Markdown to JSON Transformer** - Transform markdown documents into structured JSON with support for multiple formats
|
|
6
|
+
**Extensible Multi-Format AI-Powered Markdown to JSON Transformer** - Transform markdown documents into structured JSON with support for multiple markdown formats, intelligent schema validation, auto-fixing, and machine learning capabilities. Built with an extensible parser architecture that can handle any markdown variant.
|
|
7
7
|
|
|
8
8
|
## ✨ Features
|
|
9
9
|
|
|
10
|
-
### 📝 Multi-Format Markdown Support
|
|
11
|
-
- **Auto-Detection**: Automatically detects
|
|
12
|
-
- **
|
|
13
|
-
- **
|
|
14
|
-
- **
|
|
10
|
+
### 📝 Extensible Multi-Format Markdown Support
|
|
11
|
+
- **Auto-Detection**: Automatically detects and selects appropriate parser for any markdown format
|
|
12
|
+
- **Built-in Formats**: Heading (`### Section`), bullet (`- Section`), and colon (`Key: Value`) formats
|
|
13
|
+
- **Custom Parsers**: Easy to add support for any markdown variant (YAML frontmatter, numbered sections, etc.)
|
|
14
|
+
- **Parser Registry**: Register multiple parsers for different formats
|
|
15
|
+
- **Format Selection**: Explicitly specify format or let auto-detection choose
|
|
15
16
|
- **Backward Compatible**: All existing code continues to work unchanged
|
|
16
17
|
|
|
17
18
|
### 🤖 Advanced AI-Powered Matching
|
|
@@ -19,7 +20,7 @@
|
|
|
19
20
|
- **Configurable Weights & Thresholds**: Fine-tune matching sensitivity for different use cases
|
|
20
21
|
- **Machine Learning**: Learn aliases and improve matching accuracy over time
|
|
21
22
|
- **Context-Aware**: Different thresholds for key-to-key, title-to-key, and object matching
|
|
22
|
-
- **Persistent Learning** (Optional): Save/load ML data with `@xronoces/xronox-ml
|
|
23
|
+
- **Persistent Learning** (Optional): Save/load ML data with `@xronoces/xronox-ml``
|
|
23
24
|
- **Schema Consistency**: Same intelligent matching for objects AND arrays
|
|
24
25
|
|
|
25
26
|
### 🔧 Intelligent Auto-Fixing
|
|
@@ -31,10 +32,11 @@
|
|
|
31
32
|
- **Content Intelligence**: Parse tables, lists, key-value pairs automatically
|
|
32
33
|
|
|
33
34
|
### 🏗️ Modular Architecture
|
|
34
|
-
- **Extensible Parser System**:
|
|
35
|
-
- **Clean Separation**: Parsers, converters, transformers, and utilities
|
|
36
|
-
- **Plugin Architecture**: Register custom parsers for specialized formats
|
|
37
|
-
- **Format Detection**: Intelligent auto-selection of appropriate parsers
|
|
35
|
+
- **Extensible Parser System**: Add support for any markdown format by implementing BaseMarkdownParser
|
|
36
|
+
- **Clean Separation**: Parsers, converters, transformers, and utilities in separate modules
|
|
37
|
+
- **Plugin Architecture**: Register custom parsers for specialized formats (YAML, XML, custom syntax)
|
|
38
|
+
- **Format Detection**: Intelligent auto-selection of appropriate parsers from registered options
|
|
39
|
+
- **Multiple Parsers**: Support multiple parsers simultaneously for different document types
|
|
38
40
|
|
|
39
41
|
### 📋 Schema Validation
|
|
40
42
|
- **Intuitive Schema DSL**: Clean, TypeScript-friendly schema definition
|
|
@@ -135,6 +137,22 @@ SSL: true
|
|
|
135
137
|
}
|
|
136
138
|
```
|
|
137
139
|
|
|
140
|
+
### Colon-Separated Format
|
|
141
|
+
```markdown
|
|
142
|
+
Title: My Project
|
|
143
|
+
Description: Project description
|
|
144
|
+
Tags: TypeScript, React
|
|
145
|
+
Active: true
|
|
146
|
+
```
|
|
147
|
+
```json
|
|
148
|
+
{
|
|
149
|
+
"title": "My Project",
|
|
150
|
+
"description": "Project description",
|
|
151
|
+
"tags": ["TypeScript", "React"],
|
|
152
|
+
"active": true
|
|
153
|
+
}
|
|
154
|
+
```
|
|
155
|
+
|
|
138
156
|
### Mixed Content Types
|
|
139
157
|
All parsing types can be nested and combined for complex document structures.
|
|
140
158
|
|
|
@@ -204,25 +222,45 @@ Priority: High
|
|
|
204
222
|
true
|
|
205
223
|
`);
|
|
206
224
|
|
|
207
|
-
//
|
|
225
|
+
// And with colon format (Key: Value)
|
|
226
|
+
const colonResult = transformer.transformMarkdown(\`
|
|
227
|
+
Title: My Awesome Project
|
|
228
|
+
Tags: TypeScript, React, Node.js
|
|
229
|
+
Metadata: Author - John Doe, Priority - High
|
|
230
|
+
Active: true
|
|
231
|
+
Version: 1.0.0
|
|
232
|
+
\`);
|
|
233
|
+
|
|
234
|
+
// All formats produce the same structured result!
|
|
208
235
|
console.log(headingResult.result); // Your structured JSON
|
|
209
236
|
console.log(bulletResult.result); // Same structured JSON
|
|
237
|
+
console.log(colonResult.result); // Same structured JSON
|
|
210
238
|
```
|
|
211
239
|
|
|
212
|
-
### Format Selection
|
|
240
|
+
### Format Selection & Auto-Detection
|
|
213
241
|
|
|
214
242
|
```typescript
|
|
215
|
-
import { JSONTransformer, Schema, MarkdownFormat } from 'nx-md-parser';
|
|
243
|
+
import { JSONTransformer, Schema, MarkdownFormat, analyzeMarkdownFormat } from 'nx-md-parser';
|
|
244
|
+
|
|
245
|
+
// Auto-detect format (recommended)
|
|
246
|
+
const transformer = new JSONTransformer(schema); // Automatically chooses best parser
|
|
247
|
+
|
|
248
|
+
// Force specific built-in format
|
|
249
|
+
const headingTransformer = new JSONTransformer(schema, {
|
|
250
|
+
parserOptions: { format: MarkdownFormat.HEADING }
|
|
251
|
+
});
|
|
216
252
|
|
|
217
|
-
// Force specific format
|
|
218
253
|
const bulletTransformer = new JSONTransformer(schema, {
|
|
219
|
-
parserOptions: {
|
|
220
|
-
format: MarkdownFormat.BULLET // or MarkdownFormat.HEADING
|
|
221
|
-
}
|
|
254
|
+
parserOptions: { format: MarkdownFormat.BULLET }
|
|
222
255
|
});
|
|
223
256
|
|
|
224
|
-
//
|
|
225
|
-
const
|
|
257
|
+
// Analyze what formats your markdown supports
|
|
258
|
+
const analysis = analyzeMarkdownFormat(yourMarkdown);
|
|
259
|
+
console.log('Primary format:', analysis.primaryFormat);
|
|
260
|
+
console.log('Confidence:', analysis.allMatches[0]?.confidence);
|
|
261
|
+
console.log('Section ranges:', analysis.allMatches[0]?.sectionRanges);
|
|
262
|
+
|
|
263
|
+
// Works with any registered format - the system is extensible!
|
|
226
264
|
```
|
|
227
265
|
|
|
228
266
|
## 🎯 Advanced Usage
|
|
@@ -312,13 +350,14 @@ const merged = mergeWithRoles(roleBasedData);
|
|
|
312
350
|
```typescript
|
|
313
351
|
import { BaseMarkdownParser, MarkdownFormat, getFormatDetector } from 'nx-md-parser';
|
|
314
352
|
|
|
353
|
+
// Example: YAML Frontmatter parser
|
|
315
354
|
class YamlFrontmatterParser extends BaseMarkdownParser {
|
|
316
355
|
canParse(markdown: string): boolean {
|
|
317
356
|
return markdown.startsWith('---\n');
|
|
318
357
|
}
|
|
319
358
|
|
|
320
359
|
parseSections(markdown: string): MarkdownSection[] {
|
|
321
|
-
//
|
|
360
|
+
// Parse YAML frontmatter + markdown body
|
|
322
361
|
return [];
|
|
323
362
|
}
|
|
324
363
|
|
|
@@ -327,9 +366,28 @@ class YamlFrontmatterParser extends BaseMarkdownParser {
|
|
|
327
366
|
}
|
|
328
367
|
}
|
|
329
368
|
|
|
330
|
-
//
|
|
369
|
+
// Example: Numbered sections parser
|
|
370
|
+
class NumberedSectionsParser extends BaseMarkdownParser {
|
|
371
|
+
canParse(markdown: string): boolean {
|
|
372
|
+
return /^\d+\.\s/.test(markdown);
|
|
373
|
+
}
|
|
374
|
+
|
|
375
|
+
parseSections(markdown: string): MarkdownSection[] {
|
|
376
|
+
// Parse numbered sections like "1. Introduction"
|
|
377
|
+
return [];
|
|
378
|
+
}
|
|
379
|
+
|
|
380
|
+
getFormatName(): MarkdownFormat {
|
|
381
|
+
return 'numbered-sections' as any;
|
|
382
|
+
}
|
|
383
|
+
}
|
|
384
|
+
|
|
385
|
+
// Register multiple custom parsers
|
|
331
386
|
const detector = getFormatDetector();
|
|
332
387
|
detector.registerParser(new YamlFrontmatterParser());
|
|
388
|
+
detector.registerParser(new NumberedSectionsParser());
|
|
389
|
+
|
|
390
|
+
// Now supports: headings, bullets, colon format, YAML frontmatter, numbered sections, etc.
|
|
333
391
|
```
|
|
334
392
|
|
|
335
393
|
### JSON to Markdown Generation
|
|
@@ -431,13 +489,24 @@ import { BulletParser } from 'nx-md-parser';
|
|
|
431
489
|
const parser = new BulletParser();
|
|
432
490
|
```
|
|
433
491
|
|
|
492
|
+
**ColonParser** - Parses `Key: Value` colon format
|
|
493
|
+
```typescript
|
|
494
|
+
import { ColonParser } from 'nx-md-parser';
|
|
495
|
+
const parser = new ColonParser();
|
|
496
|
+
```
|
|
497
|
+
|
|
434
498
|
**FormatDetector** - Auto-detects and selects appropriate parsers
|
|
435
499
|
```typescript
|
|
436
|
-
import { FormatDetector, getFormatDetector } from 'nx-md-parser';
|
|
500
|
+
import { FormatDetector, getFormatDetector, analyzeMarkdownFormat } from 'nx-md-parser';
|
|
437
501
|
|
|
438
502
|
const detector = getFormatDetector();
|
|
439
503
|
const format = detector.detect(markdown); // MarkdownFormat
|
|
440
504
|
const parser = detector.getParser(format, markdown);
|
|
505
|
+
|
|
506
|
+
// Advanced format analysis with confidence scores and line ranges
|
|
507
|
+
const analysis = analyzeMarkdownFormat(markdown);
|
|
508
|
+
console.log(analysis.primaryFormat); // 'heading' | 'bullet' | 'colon'
|
|
509
|
+
console.log(analysis.allMatches[0]); // { format, confidence, sections, sectionRanges }
|
|
441
510
|
```
|
|
442
511
|
|
|
443
512
|
#### Schema Builders
|
|
@@ -457,6 +526,13 @@ mergeTransformResults(...results: TransformResult[]): TransformResult
|
|
|
457
526
|
jsonToMarkdown(data: any, level?: number): string
|
|
458
527
|
```
|
|
459
528
|
|
|
529
|
+
#### Format Analysis
|
|
530
|
+
```typescript
|
|
531
|
+
analyzeMarkdownFormat(markdown: string): FormatAnalysisResult
|
|
532
|
+
// Returns detailed analysis of what formats the markdown supports
|
|
533
|
+
// with confidence scores, section counts, and line ranges
|
|
534
|
+
```
|
|
535
|
+
|
|
460
536
|
#### Schema Management
|
|
461
537
|
```typescript
|
|
462
538
|
loadSchemaFromFile(filePath: string): SchemaType
|
|
@@ -472,10 +548,11 @@ learnAliasesFromTransformations(transformations: TransformationExample[]): Learn
|
|
|
472
548
|
#### Parser Types & Enums
|
|
473
549
|
```typescript
|
|
474
550
|
enum MarkdownFormat {
|
|
475
|
-
AUTO = 'auto',
|
|
476
|
-
HEADING = 'heading',
|
|
477
|
-
BULLET = 'bullet',
|
|
478
|
-
|
|
551
|
+
AUTO = 'auto', // Auto-detect format
|
|
552
|
+
HEADING = 'heading', // ### Section format
|
|
553
|
+
BULLET = 'bullet', // - Section format
|
|
554
|
+
COLON = 'colon', // Key: Value format
|
|
555
|
+
MIXED = 'mixed' // Mixed formats
|
|
479
556
|
}
|
|
480
557
|
|
|
481
558
|
interface MarkdownSection {
|
|
@@ -571,12 +648,20 @@ ISC License - see [LICENSE](LICENSE) file for details.
|
|
|
571
648
|
|
|
572
649
|
---
|
|
573
650
|
|
|
651
|
+
## 📋 What's New in v2.1
|
|
652
|
+
|
|
653
|
+
- **Format Analysis API**: New `analyzeMarkdownFormat()` function provides detailed format detection with confidence scores and line ranges
|
|
654
|
+
- **Multi-Format Detection**: Detects all supported formats in a document with ranking by confidence
|
|
655
|
+
- **Section Range Analysis**: Get exact line numbers for each section in your markdown
|
|
656
|
+
- **Mixed Content Detection**: Identifies documents that contain multiple format types
|
|
657
|
+
|
|
574
658
|
## 📋 What's New in v2.0
|
|
575
659
|
|
|
576
|
-
- **Multi-Format
|
|
577
|
-
- **
|
|
660
|
+
- **Extensible Multi-Format Architecture**: Support for any markdown variant through custom parsers, not just headings and bullets
|
|
661
|
+
- **Intelligent Parser System**: Auto-detection and selection from multiple registered parsers
|
|
662
|
+
- **Plugin Architecture**: Easy to extend with custom parsers for YAML frontmatter, numbered sections, XML, or any format
|
|
663
|
+
- **Modular Design**: Clean separation of parsing, conversion, and transformation logic
|
|
578
664
|
- **Backward Compatibility**: All existing code continues to work unchanged
|
|
579
|
-
- **
|
|
580
|
-
- **Enhanced TypeScript**: Better type safety with new parser interfaces
|
|
665
|
+
- **Enhanced TypeScript**: Better type safety with extensible parser interfaces
|
|
581
666
|
|
|
582
667
|
**Made with ❤️ by the nx-intelligence team**
|
package/dist/src/index.d.ts
CHANGED
|
@@ -11,6 +11,9 @@ export { MarkdownParser, } from './lib/markdown-transformer/core/transformer';
|
|
|
11
11
|
export { mergeTransformResults, jsonToMarkdown, loadSchemaFromFile, createTransformerFromSchemaFile, createNxHelpersTransformer, learnAliasesFromTransformations } from './lib/markdown-transformer/utils/merge';
|
|
12
12
|
export type { SchemaType, ValidationStatus, TransformResult, MarkdownSection, ParserOptions, } from './lib/markdown-transformer/core/types';
|
|
13
13
|
export { MarkdownFormat } from './lib/markdown-transformer/core/types';
|
|
14
|
-
export { BaseMarkdownParser, HeadingParser, BulletParser, FormatDetector, getFormatDetector, resetFormatDetector } from './lib/markdown-transformer/parsers';
|
|
14
|
+
export { BaseMarkdownParser, HeadingParser, BulletParser, ColonParser, FormatDetector, getFormatDetector, resetFormatDetector } from './lib/markdown-transformer/parsers';
|
|
15
|
+
export type { FormatAnalysisResult, FormatMatch, SectionRange } from './lib/markdown-transformer/parsers/format-detector';
|
|
16
|
+
import type { FormatAnalysisResult } from './lib/markdown-transformer/parsers/format-detector';
|
|
17
|
+
export declare function analyzeMarkdownFormat(markdown: string): FormatAnalysisResult;
|
|
15
18
|
export { mergeNoRedundancy, mergeMultiple, mergeWithRoles, loadJson, toCamelCase, fromCamelToTitle, toTitleCase, anyToMarkdownString, string as nxString, number as nxNumber, boolean as nxBoolean, array as nxArray, object as nxObject, bestMatchOneToMany, defaultMatcherConfig, JSONTransformer as NxHelpersJSONTransformer } from 'nx-helpers';
|
|
16
19
|
//# sourceMappingURL=index.d.ts.map
|
package/dist/src/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EACL,cAAc,GACf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,wCAAwC,CAAC;AAGhD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":"AAAA;;;;;GAKG;AAGH,OAAO,EAAE,eAAe,EAAE,MAAM,6CAA6C,CAAC;AAC9E,OAAO,EAAE,mBAAmB,EAAE,MAAM,8CAA8C,CAAC;AACnF,OAAO,EAAE,MAAM,EAAE,MAAM,6CAA6C,CAAC;AAGrE,OAAO,EACL,cAAc,GACf,MAAM,6CAA6C,CAAC;AACrD,OAAO,EACL,qBAAqB,EACrB,cAAc,EACd,kBAAkB,EAClB,+BAA+B,EAC/B,0BAA0B,EAC1B,+BAA+B,EAChC,MAAM,wCAAwC,CAAC;AAGhD,YAAY,EACV,UAAU,EACV,gBAAgB,EAChB,eAAe,EACf,eAAe,EACf,aAAa,GACd,MAAM,uCAAuC,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,uCAAuC,CAAC;AAGvE,OAAO,EACL,kBAAkB,EAClB,aAAa,EACb,YAAY,EACZ,WAAW,EACX,cAAc,EACd,iBAAiB,EACjB,mBAAmB,EACpB,MAAM,oCAAoC,CAAC;AAC5C,YAAY,EACV,oBAAoB,EACpB,WAAW,EACX,YAAY,EACb,MAAM,oDAAoD,CAAC;AAI5D,OAAO,KAAK,EAAE,oBAAoB,EAAE,MAAM,oDAAoD,CAAC;AAE/F,wBAAgB,qBAAqB,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB,CAG5E;AAGD,OAAO,EACL,iBAAiB,EACjB,aAAa,EACb,cAAc,EACd,QAAQ,EACR,WAAW,EACX,gBAAgB,EAChB,WAAW,EACX,mBAAmB,EAEnB,MAAM,IAAI,QAAQ,EAClB,MAAM,IAAI,QAAQ,EAClB,OAAO,IAAI,SAAS,EACpB,KAAK,IAAI,OAAO,EAChB,MAAM,IAAI,QAAQ,EAElB,kBAAkB,EAClB,oBAAoB,EAEpB,eAAe,IAAI,wBAAwB,EAC5C,MAAM,YAAY,CAAC"}
|
package/dist/src/index.js
CHANGED
|
@@ -6,7 +6,8 @@
|
|
|
6
6
|
* matching a desired schema with intelligent auto-fixing capabilities.
|
|
7
7
|
*/
|
|
8
8
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
9
|
-
exports.NxHelpersJSONTransformer = exports.defaultMatcherConfig = exports.bestMatchOneToMany = exports.nxObject = exports.nxArray = exports.nxBoolean = exports.nxNumber = exports.nxString = exports.anyToMarkdownString = exports.toTitleCase = exports.fromCamelToTitle = exports.toCamelCase = exports.loadJson = exports.mergeWithRoles = exports.mergeMultiple = exports.mergeNoRedundancy = exports.resetFormatDetector = exports.getFormatDetector = exports.FormatDetector = exports.BulletParser = exports.HeadingParser = exports.BaseMarkdownParser = exports.MarkdownFormat = exports.learnAliasesFromTransformations = exports.createNxHelpersTransformer = exports.createTransformerFromSchemaFile = exports.loadSchemaFromFile = exports.jsonToMarkdown = exports.mergeTransformResults = exports.MarkdownParser = exports.Schema = exports.LearningTransformer = exports.JSONTransformer = void 0;
|
|
9
|
+
exports.NxHelpersJSONTransformer = exports.defaultMatcherConfig = exports.bestMatchOneToMany = exports.nxObject = exports.nxArray = exports.nxBoolean = exports.nxNumber = exports.nxString = exports.anyToMarkdownString = exports.toTitleCase = exports.fromCamelToTitle = exports.toCamelCase = exports.loadJson = exports.mergeWithRoles = exports.mergeMultiple = exports.mergeNoRedundancy = exports.resetFormatDetector = exports.getFormatDetector = exports.FormatDetector = exports.ColonParser = exports.BulletParser = exports.HeadingParser = exports.BaseMarkdownParser = exports.MarkdownFormat = exports.learnAliasesFromTransformations = exports.createNxHelpersTransformer = exports.createTransformerFromSchemaFile = exports.loadSchemaFromFile = exports.jsonToMarkdown = exports.mergeTransformResults = exports.MarkdownParser = exports.Schema = exports.LearningTransformer = exports.JSONTransformer = void 0;
|
|
10
|
+
exports.analyzeMarkdownFormat = analyzeMarkdownFormat;
|
|
10
11
|
// Core functionality - what most users need
|
|
11
12
|
var transformer_1 = require("./lib/markdown-transformer/core/transformer");
|
|
12
13
|
Object.defineProperty(exports, "JSONTransformer", { enumerable: true, get: function () { return transformer_1.JSONTransformer; } });
|
|
@@ -31,9 +32,16 @@ var parsers_1 = require("./lib/markdown-transformer/parsers");
|
|
|
31
32
|
Object.defineProperty(exports, "BaseMarkdownParser", { enumerable: true, get: function () { return parsers_1.BaseMarkdownParser; } });
|
|
32
33
|
Object.defineProperty(exports, "HeadingParser", { enumerable: true, get: function () { return parsers_1.HeadingParser; } });
|
|
33
34
|
Object.defineProperty(exports, "BulletParser", { enumerable: true, get: function () { return parsers_1.BulletParser; } });
|
|
35
|
+
Object.defineProperty(exports, "ColonParser", { enumerable: true, get: function () { return parsers_1.ColonParser; } });
|
|
34
36
|
Object.defineProperty(exports, "FormatDetector", { enumerable: true, get: function () { return parsers_1.FormatDetector; } });
|
|
35
37
|
Object.defineProperty(exports, "getFormatDetector", { enumerable: true, get: function () { return parsers_1.getFormatDetector; } });
|
|
36
38
|
Object.defineProperty(exports, "resetFormatDetector", { enumerable: true, get: function () { return parsers_1.resetFormatDetector; } });
|
|
39
|
+
// Convenience function for format analysis
|
|
40
|
+
const parsers_2 = require("./lib/markdown-transformer/parsers");
|
|
41
|
+
function analyzeMarkdownFormat(markdown) {
|
|
42
|
+
const detector = (0, parsers_2.getFormatDetector)();
|
|
43
|
+
return detector.analyzeFormat(markdown);
|
|
44
|
+
}
|
|
37
45
|
// Essential nx-helpers re-exports (for advanced usage)
|
|
38
46
|
var nx_helpers_1 = require("nx-helpers");
|
|
39
47
|
Object.defineProperty(exports, "mergeNoRedundancy", { enumerable: true, get: function () { return nx_helpers_1.mergeNoRedundancy; } });
|
package/dist/src/index.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../src/index.ts"],"names":[],"mappings":";AAAA;;;;;GAKG;;;AAkDH,sDAGC;AAnDD,4CAA4C;AAC5C,2EAA8E;AAArE,8GAAA,eAAe,OAAA;AACxB,4EAAmF;AAA1E,kHAAA,mBAAmB,OAAA;AAC5B,2EAAqE;AAA5D,qGAAA,MAAM,OAAA;AAEf,8CAA8C;AAC9C,2EAEqD;AADnD,6GAAA,cAAc,OAAA;AAEhB,gEAOgD;AAN9C,8GAAA,qBAAqB,OAAA;AACrB,uGAAA,cAAc,OAAA;AACd,2GAAA,kBAAkB,OAAA;AAClB,wHAAA,+BAA+B,OAAA;AAC/B,mHAAA,0BAA0B,OAAA;AAC1B,wHAAA,+BAA+B,OAAA;AAWjC,+DAAuE;AAA9D,uGAAA,cAAc,OAAA;AAEvB,iDAAiD;AACjD,8DAQ4C;AAP1C,6GAAA,kBAAkB,OAAA;AAClB,wGAAA,aAAa,OAAA;AACb,uGAAA,YAAY,OAAA;AACZ,sGAAA,WAAW,OAAA;AACX,yGAAA,cAAc,OAAA;AACd,4GAAA,iBAAiB,OAAA;AACjB,8GAAA,mBAAmB,OAAA;AAQrB,2CAA2C;AAC3C,gEAAuE;AAGvE,SAAgB,qBAAqB,CAAC,QAAgB;IACpD,MAAM,QAAQ,GAAG,IAAA,2BAAiB,GAAE,CAAC;IACrC,OAAO,QAAQ,CAAC,aAAa,CAAC,QAAQ,CAAC,CAAC;AAC1C,CAAC;AAED,uDAAuD;AACvD,yCAoBoB;AAnBlB,+GAAA,iBAAiB,OAAA;AACjB,2GAAA,aAAa,OAAA;AACb,4GAAA,cAAc,OAAA;AACd,sGAAA,QAAQ,OAAA;AACR,yGAAA,WAAW,OAAA;AACX,8GAAA,gBAAgB,OAAA;AAChB,yGAAA,WAAW,OAAA;AACX,iHAAA,mBAAmB,OAAA;AACnB,kBAAkB;AAClB,sGAAA,MAAM,OAAY;AAClB,sGAAA,MAAM,OAAY;AAClB,uGAAA,OAAO,OAAa;AACpB,qGAAA,KAAK,OAAW;AAChB,sGAAA,MAAM,OAAY;AAClB,oBAAoB;AACpB,gHAAA,kBAAkB,OAAA;AAClB,kHAAA,oBAAoB,OAAA;AACpB,mBAAmB;AACnB,sHAAA,eAAe,OAA4B"}
|
|
@@ -42,6 +42,9 @@ export declare class JSONTransformer {
|
|
|
42
42
|
* Transform markdown text to JSON matching schema
|
|
43
43
|
*/
|
|
44
44
|
transformMarkdown(markdown: string): TransformResult;
|
|
45
|
+
private mergeRelatedSections;
|
|
46
|
+
private shouldMergeSections;
|
|
47
|
+
private analyzeContentStructure;
|
|
45
48
|
private sectionsToObject;
|
|
46
49
|
/**
|
|
47
50
|
* Transform any input to match desired schema
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/transformer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EAId,MAAM,SAAS,CAAC;AACjB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAMnF,eAAO,MAAM,MAAM;kBACL,UAAU;kBACV,UAAU;mBACT,UAAU;mBACR,UAAU,KAAG,UAAU;yBACjB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,UAAU;CAI7D,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAa/D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAIzC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAUhF;AAMD,qBAAa,eAAe;IAUxB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;gBAG3B,MAAM,EAAE,UAAU,EAC1B,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACvC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IAiBH;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;
|
|
1
|
+
{"version":3,"file":"transformer.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/transformer.ts"],"names":[],"mappings":"AAEA,OAAO,EACL,UAAU,EACV,eAAe,EACf,aAAa,EAId,MAAM,SAAS,CAAC;AACjB,OAAO,EAAqC,KAAK,aAAa,EAAE,MAAM,YAAY,CAAC;AAMnF,eAAO,MAAM,MAAM;kBACL,UAAU;kBACV,UAAU;mBACT,UAAU;mBACR,UAAU,KAAG,UAAU;yBACjB,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,KAAG,UAAU;CAI7D,CAAC;AAMF,MAAM,WAAW,qBAAqB;IACpC,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;CACf;AAED,qBAAa,cAAc;IACzB;;OAEG;IACH,MAAM,CAAC,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,qBAAqB,EAAE;IAa/D;;OAEG;IACH,MAAM,CAAC,YAAY,CAAC,OAAO,EAAE,MAAM,GAAG,GAAG;IAIzC;;OAEG;IACH,MAAM,CAAC,gBAAgB,CAAC,QAAQ,EAAE,qBAAqB,EAAE,GAAG,MAAM,CAAC,MAAM,EAAE,GAAG,CAAC;CAUhF;AAMD,qBAAa,eAAe;IAUxB,OAAO,CAAC,MAAM;IAThB,OAAO,CAAC,KAAK,CAAgB;IAC7B,OAAO,CAAC,MAAM,CAAgB;IAC9B,OAAO,CAAC,QAAQ,CAAkB;IAElC,OAAO,CAAC,aAAa,CAAgB;IACrC,OAAO,CAAC,cAAc,CAAiB;IACvC,OAAO,CAAC,aAAa,CAAgB;gBAG3B,MAAM,EAAE,UAAU,EAC1B,OAAO,CAAC,EAAE;QACR,aAAa,CAAC,EAAE,OAAO,CAAC,aAAa,CAAC,CAAC;QACvC,aAAa,CAAC,EAAE,aAAa,CAAC;KAC/B;IAiBH;;OAEG;IACH,iBAAiB,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe;IAoCpD,OAAO,CAAC,oBAAoB;IA2B5B,OAAO,CAAC,mBAAmB;IAmB3B,OAAO,CAAC,uBAAuB;IA+B/B,OAAO,CAAC,gBAAgB;IAWxB;;OAEG;IACH,SAAS,CAAC,KAAK,EAAE,GAAG,GAAG,eAAe;IA+BtC,OAAO,CAAC,cAAc;IAiBtB,OAAO,CAAC,QAAQ;IAchB,OAAO,CAAC,QAAQ;IA0BhB,OAAO,CAAC,SAAS;IAkBjB,OAAO,CAAC,OAAO;IAwEf,OAAO,CAAC,QAAQ;IA+DhB,OAAO,CAAC,uBAAuB;IAuC/B,OAAO,CAAC,eAAe;IA4BvB,OAAO,CAAC,gBAAgB;IAWxB,OAAO,CAAC,mBAAmB;IA4B3B,OAAO,CAAC,eAAe;CAqBxB"}
|
|
@@ -90,7 +90,7 @@ class JSONTransformer {
|
|
|
90
90
|
// STEP 2: Get appropriate parser
|
|
91
91
|
const parser = this.formatDetector.getParser(format, markdown);
|
|
92
92
|
// STEP 3: Parse sections
|
|
93
|
-
|
|
93
|
+
let sections = parser.parseSections(markdown);
|
|
94
94
|
// STEP 4: Convert sections to object
|
|
95
95
|
const parsed = this.sectionsToObject(sections);
|
|
96
96
|
// STEP 5: Transform to match schema
|
|
@@ -105,6 +105,65 @@ class JSONTransformer {
|
|
|
105
105
|
};
|
|
106
106
|
}
|
|
107
107
|
}
|
|
108
|
+
mergeRelatedSections(sections) {
|
|
109
|
+
if (sections.length <= 1)
|
|
110
|
+
return sections;
|
|
111
|
+
const merged = [];
|
|
112
|
+
let currentSection = null;
|
|
113
|
+
for (const section of sections) {
|
|
114
|
+
// Check if this section should be merged with the current one
|
|
115
|
+
if (currentSection && this.shouldMergeSections(currentSection, section)) {
|
|
116
|
+
// Merge this section's content into the current section
|
|
117
|
+
currentSection.content += '\n\n' + section.heading + '\n' + section.content;
|
|
118
|
+
}
|
|
119
|
+
else {
|
|
120
|
+
// Start a new section
|
|
121
|
+
if (currentSection) {
|
|
122
|
+
merged.push(currentSection);
|
|
123
|
+
}
|
|
124
|
+
currentSection = { ...section };
|
|
125
|
+
}
|
|
126
|
+
}
|
|
127
|
+
if (currentSection) {
|
|
128
|
+
merged.push(currentSection);
|
|
129
|
+
}
|
|
130
|
+
return merged;
|
|
131
|
+
}
|
|
132
|
+
shouldMergeSections(current, next) {
|
|
133
|
+
// Only merge in bullet format
|
|
134
|
+
if (current.format !== 'bullet' || next.format !== 'bullet') {
|
|
135
|
+
return false;
|
|
136
|
+
}
|
|
137
|
+
// For bullet format, merge sections based on content patterns
|
|
138
|
+
const currentStructure = this.analyzeContentStructure(current.content);
|
|
139
|
+
const nextStructure = this.analyzeContentStructure(next.content);
|
|
140
|
+
// Only merge if current has introductory text and next has structured content (overview + details)
|
|
141
|
+
// This indicates current is an overview and next are details
|
|
142
|
+
if (currentStructure.hasIntroText && nextStructure.hasStructuredContent && !nextStructure.hasIntroText) {
|
|
143
|
+
return true;
|
|
144
|
+
}
|
|
145
|
+
return false;
|
|
146
|
+
}
|
|
147
|
+
analyzeContentStructure(content) {
|
|
148
|
+
const trimmed = content.trim();
|
|
149
|
+
if (!trimmed) {
|
|
150
|
+
return { hasIntroText: false, hasStructuredContent: false, hasLists: false, hasNumbers: false };
|
|
151
|
+
}
|
|
152
|
+
const lines = trimmed.split('\n').map(l => l.trim()).filter(l => l);
|
|
153
|
+
// Check for introductory paragraph text (lines that don't start with bullets/numbers)
|
|
154
|
+
const introLines = lines.filter(line => !line.match(/^[-*•]\s/) && !line.match(/^\d+\./));
|
|
155
|
+
const hasIntroText = introLines.length > 0 && introLines[0].length > 20; // Substantial intro text
|
|
156
|
+
// Check for structured content (bullets, numbers, etc.)
|
|
157
|
+
const hasLists = lines.some(line => line.match(/^[-*•]\s/));
|
|
158
|
+
const hasNumbers = lines.some(line => line.match(/^\d+\./));
|
|
159
|
+
const hasStructuredContent = hasLists || hasNumbers || lines.length > 3;
|
|
160
|
+
return {
|
|
161
|
+
hasIntroText,
|
|
162
|
+
hasStructuredContent,
|
|
163
|
+
hasLists,
|
|
164
|
+
hasNumbers
|
|
165
|
+
};
|
|
166
|
+
}
|
|
108
167
|
sectionsToObject(sections) {
|
|
109
168
|
const result = {};
|
|
110
169
|
for (const section of sections) {
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/transformer.ts"],"names":[],"mappings":"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"}
|
|
1
|
+
{"version":3,"file":"transformer.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/transformer.ts"],"names":[],"mappings":"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"}
|
|
@@ -22,11 +22,12 @@ export interface MarkdownSection {
|
|
|
22
22
|
heading: string;
|
|
23
23
|
content: string;
|
|
24
24
|
level: number;
|
|
25
|
-
format: 'heading' | 'bullet' | 'mixed';
|
|
25
|
+
format: 'heading' | 'bullet' | 'colon' | 'mixed';
|
|
26
26
|
}
|
|
27
27
|
export declare enum MarkdownFormat {
|
|
28
28
|
HEADING = "heading",// ### Section
|
|
29
29
|
BULLET = "bullet",// - Section
|
|
30
|
+
COLON = "colon",// Key: Value format
|
|
30
31
|
MIXED = "mixed",// Both in same doc
|
|
31
32
|
AUTO = "auto"
|
|
32
33
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,CAAC;
|
|
1
|
+
{"version":3,"file":"types.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/types.ts"],"names":[],"mappings":"AAAA,MAAM,MAAM,UAAU,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,QAAQ,CAAA;CAAE,GAClB;IAAE,IAAI,EAAE,SAAS,CAAA;CAAE,GACnB;IAAE,IAAI,EAAE,OAAO,CAAC;IAAC,KAAK,EAAE,UAAU,CAAA;CAAE,GACpC;IAAE,IAAI,EAAE,QAAQ,CAAC;IAAC,UAAU,EAAE,MAAM,CAAC,MAAM,EAAE,UAAU,CAAC,CAAA;CAAE,CAAC;AAE/D,MAAM,MAAM,gBAAgB,GAAG,WAAW,GAAG,OAAO,GAAG,QAAQ,CAAC;AAEhE,MAAM,WAAW,eAAe,CAAC,CAAC,GAAG,GAAG;IACtC,MAAM,EAAE,gBAAgB,CAAC;IACzB,MAAM,EAAE,CAAC,GAAG,IAAI,CAAC;IACjB,MAAM,CAAC,EAAE,MAAM,EAAE,CAAC;IAClB,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;CAClB;AAED,MAAM,WAAW,eAAe;IAC9B,OAAO,EAAE,MAAM,CAAC;IAChB,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,MAAM,EAAE,SAAS,GAAG,QAAQ,GAAG,OAAO,GAAG,OAAO,CAAC;CAClD;AAED,oBAAY,cAAc;IACxB,OAAO,YAAY,CAAK,cAAc;IACtC,MAAM,WAAW,CAAO,YAAY;IACpC,KAAK,UAAU,CAAS,oBAAoB;IAC5C,KAAK,UAAU,CAAS,mBAAmB;IAC3C,IAAI,SAAS;CACd;AAED,MAAM,WAAW,aAAa;IAC5B,MAAM,CAAC,EAAE,cAAc,CAAC;IACxB,eAAe,CAAC,EAAE,MAAM,EAAE,CAAC;IAC3B,cAAc,CAAC,EAAE,MAAM,CAAC;CACzB"}
|
|
@@ -5,6 +5,7 @@ var MarkdownFormat;
|
|
|
5
5
|
(function (MarkdownFormat) {
|
|
6
6
|
MarkdownFormat["HEADING"] = "heading";
|
|
7
7
|
MarkdownFormat["BULLET"] = "bullet";
|
|
8
|
+
MarkdownFormat["COLON"] = "colon";
|
|
8
9
|
MarkdownFormat["MIXED"] = "mixed";
|
|
9
10
|
MarkdownFormat["AUTO"] = "auto"; // Auto-detect
|
|
10
11
|
})(MarkdownFormat || (exports.MarkdownFormat = MarkdownFormat = {}));
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/types.ts"],"names":[],"mappings":";;;AAuBA,IAAY,
|
|
1
|
+
{"version":3,"file":"types.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/core/types.ts"],"names":[],"mappings":";;;AAuBA,IAAY,cAMX;AAND,WAAY,cAAc;IACxB,qCAAmB,CAAA;IACnB,mCAAiB,CAAA;IACjB,iCAAe,CAAA;IACf,iCAAe,CAAA;IACf,+BAAa,CAAA,CAAW,cAAc;AACxC,CAAC,EANW,cAAc,8BAAd,cAAc,QAMzB"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullet-parser.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/bullet-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;
|
|
1
|
+
{"version":3,"file":"bullet-parser.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/bullet-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAEhE,qBAAa,YAAa,SAAQ,kBAAkB;IAClD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IAQnC,aAAa,IAAI,cAAc;IAI/B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IA8DlD,OAAO,CAAC,eAAe;CA0BxB"}
|
|
@@ -5,16 +5,10 @@ const base_parser_1 = require("./base-parser");
|
|
|
5
5
|
const types_1 = require("../core/types");
|
|
6
6
|
class BulletParser extends base_parser_1.BaseMarkdownParser {
|
|
7
7
|
canParse(markdown) {
|
|
8
|
-
// Must have bullets at column 0
|
|
8
|
+
// Must have bullets at column 0
|
|
9
9
|
const lines = markdown.split('\n');
|
|
10
|
-
const bulletLines = lines.filter(l =>
|
|
11
|
-
|
|
12
|
-
return false;
|
|
13
|
-
// Check if any bullets look like section headers (contain keywords)
|
|
14
|
-
return bulletLines.some(line => {
|
|
15
|
-
const text = line.replace(/^-\s+/, '').toLowerCase();
|
|
16
|
-
return this.options.sectionKeywords.some(kw => text.includes(kw));
|
|
17
|
-
});
|
|
10
|
+
const bulletLines = lines.filter(l => l.trim().startsWith('- '));
|
|
11
|
+
return bulletLines.length >= 2; // Need at least 2 bullet lines to be considered bullet format
|
|
18
12
|
}
|
|
19
13
|
getFormatName() {
|
|
20
14
|
return types_1.MarkdownFormat.BULLET;
|
|
@@ -25,41 +19,48 @@ class BulletParser extends base_parser_1.BaseMarkdownParser {
|
|
|
25
19
|
let currentSection = null;
|
|
26
20
|
for (let i = 0; i < lines.length; i++) {
|
|
27
21
|
const line = lines[i];
|
|
28
|
-
// Check for bullet
|
|
29
|
-
const bulletMatch = line.match(
|
|
22
|
+
// Check for any bullet (indented or not)
|
|
23
|
+
const bulletMatch = line.match(/^\s*-\s+(.+)$/);
|
|
30
24
|
const isIndented = /^\s+/.test(line);
|
|
31
|
-
if (bulletMatch
|
|
32
|
-
|
|
33
|
-
|
|
34
|
-
|
|
35
|
-
if (
|
|
36
|
-
|
|
37
|
-
|
|
25
|
+
if (bulletMatch) {
|
|
26
|
+
if (!isIndented) {
|
|
27
|
+
// Bullet at column 0 - check if it's a section header
|
|
28
|
+
const heading = bulletMatch[1].trim();
|
|
29
|
+
if (this.isSectionHeader(heading, lines, i)) {
|
|
30
|
+
// Save previous section
|
|
31
|
+
if (currentSection) {
|
|
32
|
+
currentSection.content = currentSection.content.trim();
|
|
33
|
+
sections.push(currentSection);
|
|
34
|
+
}
|
|
35
|
+
// Start new section
|
|
36
|
+
currentSection = {
|
|
37
|
+
heading: heading,
|
|
38
|
+
content: '',
|
|
39
|
+
level: 1,
|
|
40
|
+
format: 'bullet'
|
|
41
|
+
};
|
|
42
|
+
}
|
|
43
|
+
else if (currentSection) {
|
|
44
|
+
// This is content (part of a list in current section)
|
|
45
|
+
currentSection.content += line + '\n';
|
|
46
|
+
}
|
|
47
|
+
else {
|
|
48
|
+
// First line - treat as section
|
|
49
|
+
currentSection = {
|
|
50
|
+
heading: heading,
|
|
51
|
+
content: '',
|
|
52
|
+
level: 1,
|
|
53
|
+
format: 'bullet'
|
|
54
|
+
};
|
|
38
55
|
}
|
|
39
|
-
// Start new section
|
|
40
|
-
currentSection = {
|
|
41
|
-
heading: heading,
|
|
42
|
-
content: '',
|
|
43
|
-
level: 1,
|
|
44
|
-
format: 'bullet'
|
|
45
|
-
};
|
|
46
56
|
}
|
|
47
57
|
else if (currentSection) {
|
|
48
|
-
//
|
|
58
|
+
// Indented bullet - always content for current section
|
|
49
59
|
currentSection.content += line + '\n';
|
|
50
60
|
}
|
|
51
|
-
else {
|
|
52
|
-
// First line - treat as section
|
|
53
|
-
currentSection = {
|
|
54
|
-
heading: heading,
|
|
55
|
-
content: '',
|
|
56
|
-
level: 1,
|
|
57
|
-
format: 'bullet'
|
|
58
|
-
};
|
|
59
|
-
}
|
|
60
61
|
}
|
|
61
62
|
else if (currentSection) {
|
|
62
|
-
//
|
|
63
|
+
// Non-bullet line - content for current section
|
|
63
64
|
currentSection.content += line + '\n';
|
|
64
65
|
}
|
|
65
66
|
}
|
|
@@ -71,23 +72,24 @@ class BulletParser extends base_parser_1.BaseMarkdownParser {
|
|
|
71
72
|
return sections;
|
|
72
73
|
}
|
|
73
74
|
isSectionHeader(heading, lines, index) {
|
|
74
|
-
|
|
75
|
-
//
|
|
76
|
-
|
|
77
|
-
|
|
78
|
-
|
|
79
|
-
//
|
|
80
|
-
|
|
81
|
-
|
|
82
|
-
|
|
83
|
-
|
|
84
|
-
|
|
85
|
-
|
|
86
|
-
|
|
87
|
-
|
|
88
|
-
|
|
75
|
+
// Analyze the heading to determine if it's a section title or list item
|
|
76
|
+
// If it ends with a period, it's likely a complete sentence (list item)
|
|
77
|
+
if (heading.endsWith('.')) {
|
|
78
|
+
return false; // Treat as content for previous section
|
|
79
|
+
}
|
|
80
|
+
// If it's very short and looks like a numbered item, it's a list item
|
|
81
|
+
if (heading.length < 20 && /^\d+\./.test(heading.trim())) {
|
|
82
|
+
return false; // Numbered list item
|
|
83
|
+
}
|
|
84
|
+
// If it's very short and doesn't look like a title, it might be a list item
|
|
85
|
+
if (heading.length < 15 && !/^[A-Z]/.test(heading)) {
|
|
86
|
+
return false; // Probably a list item
|
|
87
|
+
}
|
|
88
|
+
// If it contains multiple sentences, it's likely content
|
|
89
|
+
if (heading.includes('. ') || heading.split('.').length > 2) {
|
|
90
|
+
return false; // Multi-sentence content
|
|
89
91
|
}
|
|
90
|
-
//
|
|
92
|
+
// Default: treat as section header
|
|
91
93
|
return true;
|
|
92
94
|
}
|
|
93
95
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"bullet-parser.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/bullet-parser.ts"],"names":[],"mappings":";;;AAAA,+CAAmD;AACnD,yCAAgE;AAEhE,MAAa,YAAa,SAAQ,gCAAkB;IAClD,QAAQ,CAAC,QAAgB;QACvB,
|
|
1
|
+
{"version":3,"file":"bullet-parser.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/bullet-parser.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,10 @@
|
|
|
1
|
+
import { BaseMarkdownParser } from './base-parser';
|
|
2
|
+
import { MarkdownSection } from '../core/types';
|
|
3
|
+
import { MarkdownFormat } from '../core/types';
|
|
4
|
+
export declare class ColonParser extends BaseMarkdownParser {
|
|
5
|
+
canParse(markdown: string): boolean;
|
|
6
|
+
getFormatName(): MarkdownFormat;
|
|
7
|
+
parseSections(markdown: string): MarkdownSection[];
|
|
8
|
+
private isLikelyTitle;
|
|
9
|
+
}
|
|
10
|
+
//# sourceMappingURL=colon-parser.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colon-parser.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/colon-parser.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,eAAe,EAAE,MAAM,eAAe,CAAC;AAChD,OAAO,EAAE,cAAc,EAAE,MAAM,eAAe,CAAC;AAE/C,qBAAa,WAAY,SAAQ,kBAAkB;IACjD,QAAQ,CAAC,QAAQ,EAAE,MAAM,GAAG,OAAO;IASnC,aAAa,IAAI,cAAc;IAI/B,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,eAAe,EAAE;IA6BlD,OAAO,CAAC,aAAa;CAoBtB"}
|
|
@@ -0,0 +1,63 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.ColonParser = void 0;
|
|
4
|
+
const base_parser_1 = require("./base-parser");
|
|
5
|
+
const types_1 = require("../core/types");
|
|
6
|
+
class ColonParser extends base_parser_1.BaseMarkdownParser {
|
|
7
|
+
canParse(markdown) {
|
|
8
|
+
const lines = markdown.split('\n').filter(l => l.trim());
|
|
9
|
+
// Must have at least some lines that look like key: value
|
|
10
|
+
const colonLines = lines.filter(line => /^\s*[^:]+:\s*.+/.test(line));
|
|
11
|
+
return colonLines.length >= 2; // Need at least 2 colon-separated lines
|
|
12
|
+
}
|
|
13
|
+
getFormatName() {
|
|
14
|
+
return types_1.MarkdownFormat.COLON;
|
|
15
|
+
}
|
|
16
|
+
parseSections(markdown) {
|
|
17
|
+
const lines = markdown.split('\n');
|
|
18
|
+
const sections = [];
|
|
19
|
+
for (const line of lines) {
|
|
20
|
+
const trimmed = line.trim();
|
|
21
|
+
if (!trimmed)
|
|
22
|
+
continue;
|
|
23
|
+
// Check if line looks like "Key: Value"
|
|
24
|
+
const colonIndex = trimmed.indexOf(':');
|
|
25
|
+
if (colonIndex > 0) {
|
|
26
|
+
const key = trimmed.substring(0, colonIndex).trim();
|
|
27
|
+
const value = trimmed.substring(colonIndex + 1).trim();
|
|
28
|
+
// Only treat as section if it looks like a title (not too long, not a sentence)
|
|
29
|
+
if (this.isLikelyTitle(key) && value) {
|
|
30
|
+
sections.push({
|
|
31
|
+
heading: key,
|
|
32
|
+
content: value,
|
|
33
|
+
level: 1,
|
|
34
|
+
format: 'colon'
|
|
35
|
+
});
|
|
36
|
+
}
|
|
37
|
+
}
|
|
38
|
+
}
|
|
39
|
+
return sections;
|
|
40
|
+
}
|
|
41
|
+
isLikelyTitle(key) {
|
|
42
|
+
// Titles are typically:
|
|
43
|
+
// - Short (less than 50 chars)
|
|
44
|
+
// - Start with capital letter or are camelCase
|
|
45
|
+
// - Don't contain complete sentences
|
|
46
|
+
// - Not too generic
|
|
47
|
+
if (key.length > 50)
|
|
48
|
+
return false;
|
|
49
|
+
if (key.length < 2)
|
|
50
|
+
return false;
|
|
51
|
+
// Don't treat complete sentences as titles
|
|
52
|
+
if (key.includes('.') || key.split(' ').length > 8)
|
|
53
|
+
return false;
|
|
54
|
+
// Don't treat very generic terms as titles
|
|
55
|
+
const genericTerms = ['the', 'a', 'an', 'and', 'or', 'but', 'in', 'on', 'at', 'to', 'for', 'of', 'with', 'by'];
|
|
56
|
+
const lowerKey = key.toLowerCase();
|
|
57
|
+
if (genericTerms.includes(lowerKey))
|
|
58
|
+
return false;
|
|
59
|
+
return true;
|
|
60
|
+
}
|
|
61
|
+
}
|
|
62
|
+
exports.ColonParser = ColonParser;
|
|
63
|
+
//# sourceMappingURL=colon-parser.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"colon-parser.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/colon-parser.ts"],"names":[],"mappings":";;;AAAA,+CAAmD;AAEnD,yCAA+C;AAE/C,MAAa,WAAY,SAAQ,gCAAkB;IACjD,QAAQ,CAAC,QAAgB;QACvB,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC,MAAM,CAAC,CAAC,CAAC,EAAE,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC,CAAC;QAEzD,0DAA0D;QAC1D,MAAM,UAAU,GAAG,KAAK,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC,iBAAiB,CAAC,IAAI,CAAC,IAAI,CAAC,CAAC,CAAC;QAEtE,OAAO,UAAU,CAAC,MAAM,IAAI,CAAC,CAAC,CAAC,wCAAwC;IACzE,CAAC;IAED,aAAa;QACX,OAAO,sBAAc,CAAC,KAAK,CAAC;IAC9B,CAAC;IAED,aAAa,CAAC,QAAgB;QAC5B,MAAM,KAAK,GAAG,QAAQ,CAAC,KAAK,CAAC,IAAI,CAAC,CAAC;QACnC,MAAM,QAAQ,GAAsB,EAAE,CAAC;QAEvC,KAAK,MAAM,IAAI,IAAI,KAAK,EAAE,CAAC;YACzB,MAAM,OAAO,GAAG,IAAI,CAAC,IAAI,EAAE,CAAC;YAC5B,IAAI,CAAC,OAAO;gBAAE,SAAS;YAEvB,wCAAwC;YACxC,MAAM,UAAU,GAAG,OAAO,CAAC,OAAO,CAAC,GAAG,CAAC,CAAC;YACxC,IAAI,UAAU,GAAG,CAAC,EAAE,CAAC;gBACnB,MAAM,GAAG,GAAG,OAAO,CAAC,SAAS,CAAC,CAAC,EAAE,UAAU,CAAC,CAAC,IAAI,EAAE,CAAC;gBACpD,MAAM,KAAK,GAAG,OAAO,CAAC,SAAS,CAAC,UAAU,GAAG,CAAC,CAAC,CAAC,IAAI,EAAE,CAAC;gBAEvD,gFAAgF;gBAChF,IAAI,IAAI,CAAC,aAAa,CAAC,GAAG,CAAC,IAAI,KAAK,EAAE,CAAC;oBACrC,QAAQ,CAAC,IAAI,CAAC;wBACZ,OAAO,EAAE,GAAG;wBACZ,OAAO,EAAE,KAAK;wBACd,KAAK,EAAE,CAAC;wBACR,MAAM,EAAE,OAAO;qBAChB,CAAC,CAAC;gBACL,CAAC;YACH,CAAC;QACH,CAAC;QAED,OAAO,QAAQ,CAAC;IAClB,CAAC;IAEO,aAAa,CAAC,GAAW;QAC/B,wBAAwB;QACxB,+BAA+B;QAC/B,+CAA+C;QAC/C,qCAAqC;QACrC,oBAAoB;QAEpB,IAAI,GAAG,CAAC,MAAM,GAAG,EAAE;YAAE,OAAO,KAAK,CAAC;QAClC,IAAI,GAAG,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjC,2CAA2C;QAC3C,IAAI,GAAG,CAAC,QAAQ,CAAC,GAAG,CAAC,IAAI,GAAG,CAAC,KAAK,CAAC,GAAG,CAAC,CAAC,MAAM,GAAG,CAAC;YAAE,OAAO,KAAK,CAAC;QAEjE,2CAA2C;QAC3C,MAAM,YAAY,GAAG,CAAC,KAAK,EAAE,GAAG,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,IAAI,EAAE,KAAK,EAAE,IAAI,EAAE,MAAM,EAAE,IAAI,CAAC,CAAC;QAC/G,MAAM,QAAQ,GAAG,GAAG,CAAC,WAAW,EAAE,CAAC;QACnC,IAAI,YAAY,CAAC,QAAQ,CAAC,QAAQ,CAAC;YAAE,OAAO,KAAK,CAAC;QAElD,OAAO,IAAI,CAAC;IACd,CAAC;CACF;AA/DD,kCA+DC"}
|
|
@@ -6,5 +6,31 @@ export declare class FormatDetector {
|
|
|
6
6
|
detect(markdown: string): MarkdownFormat;
|
|
7
7
|
getParser(format: MarkdownFormat, markdown?: string): BaseMarkdownParser;
|
|
8
8
|
registerParser(parser: BaseMarkdownParser): void;
|
|
9
|
+
/**
|
|
10
|
+
* Analyze markdown and return detailed format detection results
|
|
11
|
+
*/
|
|
12
|
+
analyzeFormat(markdown: string): FormatAnalysisResult;
|
|
13
|
+
private calculateSectionRanges;
|
|
14
|
+
private isSectionHeaderLine;
|
|
15
|
+
private calculateConfidence;
|
|
16
|
+
private isSubsection;
|
|
17
|
+
}
|
|
18
|
+
export interface FormatAnalysisResult {
|
|
19
|
+
primaryFormat: MarkdownFormat | 'unknown';
|
|
20
|
+
allMatches: FormatMatch[];
|
|
21
|
+
lineCount: number;
|
|
22
|
+
hasMixedContent: boolean;
|
|
23
|
+
}
|
|
24
|
+
export interface FormatMatch {
|
|
25
|
+
format: MarkdownFormat;
|
|
26
|
+
confidence: number;
|
|
27
|
+
sections: number;
|
|
28
|
+
sectionRanges: SectionRange[];
|
|
29
|
+
}
|
|
30
|
+
export interface SectionRange {
|
|
31
|
+
section: string;
|
|
32
|
+
startLine: number;
|
|
33
|
+
endLine: number;
|
|
34
|
+
lineCount: number;
|
|
9
35
|
}
|
|
10
36
|
//# sourceMappingURL=format-detector.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-detector.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/format-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;
|
|
1
|
+
{"version":3,"file":"format-detector.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/format-detector.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AAInD,OAAO,EAAE,cAAc,EAAE,aAAa,EAAmB,MAAM,eAAe,CAAC;AAE/E,qBAAa,cAAc;IACzB,OAAO,CAAC,OAAO,CAAuB;gBAE1B,OAAO,GAAE,aAAkB;IAQvC,MAAM,CAAC,QAAQ,EAAE,MAAM,GAAG,cAAc;IAYxC,SAAS,CAAC,MAAM,EAAE,cAAc,EAAE,QAAQ,CAAC,EAAE,MAAM,GAAG,kBAAkB;IA2BxE,cAAc,CAAC,MAAM,EAAE,kBAAkB,GAAG,IAAI;IAIhD;;OAEG;IACH,aAAa,CAAC,QAAQ,EAAE,MAAM,GAAG,oBAAoB;IAsCrD,OAAO,CAAC,sBAAsB;IA4C9B,OAAO,CAAC,mBAAmB;IAQ3B,OAAO,CAAC,mBAAmB;IAkD3B,OAAO,CAAC,YAAY;CAIrB;AAGD,MAAM,WAAW,oBAAoB;IACnC,aAAa,EAAE,cAAc,GAAG,SAAS,CAAC;IAC1C,UAAU,EAAE,WAAW,EAAE,CAAC;IAC1B,SAAS,EAAE,MAAM,CAAC;IAClB,eAAe,EAAE,OAAO,CAAC;CAC1B;AAED,MAAM,WAAW,WAAW;IAC1B,MAAM,EAAE,cAAc,CAAC;IACvB,UAAU,EAAE,MAAM,CAAC;IACnB,QAAQ,EAAE,MAAM,CAAC;IACjB,aAAa,EAAE,YAAY,EAAE,CAAC;CAC/B;AAED,MAAM,WAAW,YAAY;IAC3B,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,SAAS,EAAE,MAAM,CAAC;CACnB"}
|
|
@@ -3,12 +3,14 @@ Object.defineProperty(exports, "__esModule", { value: true });
|
|
|
3
3
|
exports.FormatDetector = void 0;
|
|
4
4
|
const heading_parser_1 = require("./heading-parser");
|
|
5
5
|
const bullet_parser_1 = require("./bullet-parser");
|
|
6
|
+
const colon_parser_1 = require("./colon-parser");
|
|
6
7
|
const types_1 = require("../core/types");
|
|
7
8
|
class FormatDetector {
|
|
8
9
|
constructor(options = {}) {
|
|
9
10
|
this.parsers = [
|
|
10
11
|
new heading_parser_1.HeadingParser(options),
|
|
11
|
-
new bullet_parser_1.BulletParser(options)
|
|
12
|
+
new bullet_parser_1.BulletParser(options),
|
|
13
|
+
new colon_parser_1.ColonParser(options)
|
|
12
14
|
];
|
|
13
15
|
}
|
|
14
16
|
detect(markdown) {
|
|
@@ -47,6 +49,136 @@ class FormatDetector {
|
|
|
47
49
|
registerParser(parser) {
|
|
48
50
|
this.parsers.push(parser);
|
|
49
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
* Analyze markdown and return detailed format detection results
|
|
54
|
+
*/
|
|
55
|
+
analyzeFormat(markdown) {
|
|
56
|
+
const lines = markdown.split('\n');
|
|
57
|
+
const results = [];
|
|
58
|
+
// Try each parser
|
|
59
|
+
for (const parser of this.parsers) {
|
|
60
|
+
if (parser.canParse(markdown)) {
|
|
61
|
+
try {
|
|
62
|
+
const sections = parser.parseSections(markdown);
|
|
63
|
+
const format = parser.getFormatName();
|
|
64
|
+
// Calculate line ranges for each section
|
|
65
|
+
const sectionRanges = this.calculateSectionRanges(lines, sections);
|
|
66
|
+
results.push({
|
|
67
|
+
format,
|
|
68
|
+
confidence: this.calculateConfidence(markdown, format, sections),
|
|
69
|
+
sections: sections.length,
|
|
70
|
+
sectionRanges
|
|
71
|
+
});
|
|
72
|
+
}
|
|
73
|
+
catch (error) {
|
|
74
|
+
// Parser failed, skip it
|
|
75
|
+
continue;
|
|
76
|
+
}
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
// Sort by confidence (highest first)
|
|
80
|
+
results.sort((a, b) => b.confidence - a.confidence);
|
|
81
|
+
return {
|
|
82
|
+
primaryFormat: results[0]?.format || 'unknown',
|
|
83
|
+
allMatches: results,
|
|
84
|
+
lineCount: lines.length,
|
|
85
|
+
hasMixedContent: results.length > 1
|
|
86
|
+
};
|
|
87
|
+
}
|
|
88
|
+
calculateSectionRanges(lines, sections) {
|
|
89
|
+
const ranges = [];
|
|
90
|
+
let currentLine = 0;
|
|
91
|
+
for (const section of sections) {
|
|
92
|
+
// Find where this section starts in the lines
|
|
93
|
+
let sectionStart = -1;
|
|
94
|
+
let sectionEnd = -1;
|
|
95
|
+
// Look for the section header
|
|
96
|
+
for (let i = currentLine; i < lines.length; i++) {
|
|
97
|
+
const line = lines[i].trim();
|
|
98
|
+
if (this.isSectionHeaderLine(line, section.heading)) {
|
|
99
|
+
sectionStart = i;
|
|
100
|
+
break;
|
|
101
|
+
}
|
|
102
|
+
}
|
|
103
|
+
if (sectionStart !== -1) {
|
|
104
|
+
// Find where this section ends (next section or end of document)
|
|
105
|
+
sectionEnd = lines.length - 1;
|
|
106
|
+
for (let i = sectionStart + 1; i < lines.length; i++) {
|
|
107
|
+
const line = lines[i].trim();
|
|
108
|
+
// Check if this line starts a new section
|
|
109
|
+
if (sections.some(s => s !== section && this.isSectionHeaderLine(line, s.heading))) {
|
|
110
|
+
sectionEnd = i - 1;
|
|
111
|
+
break;
|
|
112
|
+
}
|
|
113
|
+
}
|
|
114
|
+
ranges.push({
|
|
115
|
+
section: section.heading,
|
|
116
|
+
startLine: sectionStart + 1, // 1-indexed
|
|
117
|
+
endLine: sectionEnd + 1,
|
|
118
|
+
lineCount: sectionEnd - sectionStart + 1
|
|
119
|
+
});
|
|
120
|
+
currentLine = sectionEnd + 1;
|
|
121
|
+
}
|
|
122
|
+
}
|
|
123
|
+
return ranges;
|
|
124
|
+
}
|
|
125
|
+
isSectionHeaderLine(line, heading) {
|
|
126
|
+
// Check different formats
|
|
127
|
+
return line === `### ${heading}` ||
|
|
128
|
+
line === `- ${heading}` ||
|
|
129
|
+
line === `${heading}:` ||
|
|
130
|
+
line === heading; // fallback
|
|
131
|
+
}
|
|
132
|
+
calculateConfidence(markdown, format, sections) {
|
|
133
|
+
if (sections.length === 0)
|
|
134
|
+
return 0;
|
|
135
|
+
const lines = markdown.split('\n');
|
|
136
|
+
const totalLines = lines.length;
|
|
137
|
+
const contentLines = lines.filter(l => l.trim()).length;
|
|
138
|
+
let score = 0;
|
|
139
|
+
// Base score from successful parsing
|
|
140
|
+
if (sections.length > 0)
|
|
141
|
+
score += 40; // Successfully parsed some sections
|
|
142
|
+
// Score based on section quality
|
|
143
|
+
const avgContentLength = sections.reduce((sum, s) => sum + s.content.length, 0) / sections.length;
|
|
144
|
+
if (avgContentLength > 10)
|
|
145
|
+
score += 20; // Good content extraction
|
|
146
|
+
// Score based on format-specific patterns
|
|
147
|
+
switch (format) {
|
|
148
|
+
case types_1.MarkdownFormat.HEADING:
|
|
149
|
+
// Check for proper heading hierarchy
|
|
150
|
+
const headingLevels = sections.map(s => s.level).filter(l => l >= 1 && l <= 6);
|
|
151
|
+
if (headingLevels.length === sections.length)
|
|
152
|
+
score += 20; // All valid heading levels
|
|
153
|
+
break;
|
|
154
|
+
case types_1.MarkdownFormat.BULLET:
|
|
155
|
+
// Check for reasonable number of top-level sections
|
|
156
|
+
const topLevelBullets = sections.filter(s => !this.isSubsection(s.heading, sections)).length;
|
|
157
|
+
if (topLevelBullets >= 2 && topLevelBullets <= 10)
|
|
158
|
+
score += 20; // Reasonable structure
|
|
159
|
+
break;
|
|
160
|
+
case types_1.MarkdownFormat.COLON:
|
|
161
|
+
// Check for key-value structure
|
|
162
|
+
const validKeys = sections.filter(s => s.heading.length > 0 &&
|
|
163
|
+
s.heading.length < 50 &&
|
|
164
|
+
!s.heading.includes('\n') &&
|
|
165
|
+
/^[A-Za-z]/.test(s.heading) // Starts with letter
|
|
166
|
+
).length;
|
|
167
|
+
if (validKeys === sections.length)
|
|
168
|
+
score += 20; // All valid key names
|
|
169
|
+
break;
|
|
170
|
+
}
|
|
171
|
+
// Bonus for high content coverage
|
|
172
|
+
const parsedContentLines = sections.reduce((sum, s) => sum + s.content.split('\n').length, 0);
|
|
173
|
+
const coverageRatio = parsedContentLines / contentLines;
|
|
174
|
+
if (coverageRatio > 0.7)
|
|
175
|
+
score += 20; // Good content coverage
|
|
176
|
+
return Math.min(100, Math.max(0, score));
|
|
177
|
+
}
|
|
178
|
+
isSubsection(heading, allSections) {
|
|
179
|
+
// Simple heuristic: subsections often have longer, more specific names
|
|
180
|
+
return heading.length > 20 || heading.split(' ').length > 4;
|
|
181
|
+
}
|
|
50
182
|
}
|
|
51
183
|
exports.FormatDetector = FormatDetector;
|
|
52
184
|
//# sourceMappingURL=format-detector.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"format-detector.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/format-detector.ts"],"names":[],"mappings":";;;AACA,qDAAiD;AACjD,mDAA+C;AAC/C,
|
|
1
|
+
{"version":3,"file":"format-detector.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/format-detector.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,7 +1,9 @@
|
|
|
1
1
|
export { BaseMarkdownParser } from './base-parser';
|
|
2
2
|
export { HeadingParser } from './heading-parser';
|
|
3
3
|
export { BulletParser } from './bullet-parser';
|
|
4
|
+
export { ColonParser } from './colon-parser';
|
|
4
5
|
export { FormatDetector } from './format-detector';
|
|
6
|
+
export type { FormatAnalysisResult, FormatMatch, SectionRange } from './format-detector';
|
|
5
7
|
import { FormatDetector } from './format-detector';
|
|
6
8
|
import { ParserOptions } from '../core/types';
|
|
7
9
|
export declare function getFormatDetector(options?: ParserOptions): FormatDetector;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/index.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,kBAAkB,EAAE,MAAM,eAAe,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,kBAAkB,CAAC;AACjD,OAAO,EAAE,YAAY,EAAE,MAAM,iBAAiB,CAAC;AAC/C,OAAO,EAAE,WAAW,EAAE,MAAM,gBAAgB,CAAC;AAC7C,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,YAAY,EAAE,oBAAoB,EAAE,WAAW,EAAE,YAAY,EAAE,MAAM,mBAAmB,CAAC;AAEzF,OAAO,EAAE,cAAc,EAAE,MAAM,mBAAmB,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,eAAe,CAAC;AAK9C,wBAAgB,iBAAiB,CAAC,OAAO,CAAC,EAAE,aAAa,GAAG,cAAc,CAKzE;AAED,wBAAgB,mBAAmB,IAAI,IAAI,CAE1C"}
|
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
-
exports.FormatDetector = exports.BulletParser = exports.HeadingParser = exports.BaseMarkdownParser = void 0;
|
|
3
|
+
exports.FormatDetector = exports.ColonParser = exports.BulletParser = exports.HeadingParser = exports.BaseMarkdownParser = void 0;
|
|
4
4
|
exports.getFormatDetector = getFormatDetector;
|
|
5
5
|
exports.resetFormatDetector = resetFormatDetector;
|
|
6
6
|
var base_parser_1 = require("./base-parser");
|
|
@@ -9,6 +9,8 @@ var heading_parser_1 = require("./heading-parser");
|
|
|
9
9
|
Object.defineProperty(exports, "HeadingParser", { enumerable: true, get: function () { return heading_parser_1.HeadingParser; } });
|
|
10
10
|
var bullet_parser_1 = require("./bullet-parser");
|
|
11
11
|
Object.defineProperty(exports, "BulletParser", { enumerable: true, get: function () { return bullet_parser_1.BulletParser; } });
|
|
12
|
+
var colon_parser_1 = require("./colon-parser");
|
|
13
|
+
Object.defineProperty(exports, "ColonParser", { enumerable: true, get: function () { return colon_parser_1.ColonParser; } });
|
|
12
14
|
var format_detector_1 = require("./format-detector");
|
|
13
15
|
Object.defineProperty(exports, "FormatDetector", { enumerable: true, get: function () { return format_detector_1.FormatDetector; } });
|
|
14
16
|
const format_detector_2 = require("./format-detector");
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/index.ts"],"names":[],"mappings":";;;
|
|
1
|
+
{"version":3,"file":"index.js","sourceRoot":"","sources":["../../../../../src/lib/markdown-transformer/parsers/index.ts"],"names":[],"mappings":";;;AAaA,8CAKC;AAED,kDAEC;AAtBD,6CAAmD;AAA1C,iHAAA,kBAAkB,OAAA;AAC3B,mDAAiD;AAAxC,+GAAA,aAAa,OAAA;AACtB,iDAA+C;AAAtC,6GAAA,YAAY,OAAA;AACrB,+CAA6C;AAApC,2GAAA,WAAW,OAAA;AACpB,qDAAmD;AAA1C,iHAAA,cAAc,OAAA;AAGvB,uDAAmD;AAGnD,8BAA8B;AAC9B,IAAI,eAAe,GAA0B,IAAI,CAAC;AAElD,SAAgB,iBAAiB,CAAC,OAAuB;IACvD,IAAI,CAAC,eAAe,EAAE,CAAC;QACrB,eAAe,GAAG,IAAI,gCAAc,CAAC,OAAO,CAAC,CAAC;IAChD,CAAC;IACD,OAAO,eAAe,CAAC;AACzB,CAAC;AAED,SAAgB,mBAAmB;IACjC,eAAe,GAAG,IAAI,CAAC;AACzB,CAAC"}
|
package/package.json
CHANGED
|
@@ -1,7 +1,7 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "nx-md-parser",
|
|
3
|
-
"version": "2.0
|
|
4
|
-
"description": "Multi-Format AI-Powered Markdown to JSON Transformer with support for
|
|
3
|
+
"version": "2.2.0",
|
|
4
|
+
"description": "Extensible Multi-Format AI-Powered Markdown to JSON Transformer with support for any markdown variant through custom parsers, intelligent schema validation, auto-fixing, table parsing, and optional persistent machine learning",
|
|
5
5
|
"main": "dist/src/index.js",
|
|
6
6
|
"types": "dist/src/index.d.ts",
|
|
7
7
|
"files": [
|
|
@@ -35,12 +35,20 @@
|
|
|
35
35
|
"persistent-learning",
|
|
36
36
|
"ml-persistence",
|
|
37
37
|
"multi-format",
|
|
38
|
-
"headings",
|
|
39
|
-
"bullets",
|
|
40
|
-
"modular",
|
|
41
38
|
"extensible",
|
|
39
|
+
"custom-parsers",
|
|
40
|
+
"modular",
|
|
42
41
|
"format-detection",
|
|
43
|
-
"auto-detection"
|
|
42
|
+
"auto-detection",
|
|
43
|
+
"plugin-architecture",
|
|
44
|
+
"yaml",
|
|
45
|
+
"frontmatter",
|
|
46
|
+
"headings",
|
|
47
|
+
"bullets",
|
|
48
|
+
"numbered-lists",
|
|
49
|
+
"colon",
|
|
50
|
+
"key-value",
|
|
51
|
+
"properties"
|
|
44
52
|
],
|
|
45
53
|
"author": "nx-md-parser contributors",
|
|
46
54
|
"license": "ISC",
|