@mdfriday/foundry 25.9.5 → 25.9.7

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.
Files changed (82) hide show
  1. package/dist/internal/domain/config/vo/root.d.ts.map +1 -1
  2. package/dist/internal/domain/config/vo/root.js +2 -1
  3. package/dist/internal/domain/config/vo/root.js.map +1 -1
  4. package/dist/internal/domain/content/entity/page.d.ts +1 -0
  5. package/dist/internal/domain/content/entity/page.d.ts.map +1 -1
  6. package/dist/internal/domain/content/entity/page.js +22 -1
  7. package/dist/internal/domain/content/entity/page.js.map +1 -1
  8. package/dist/internal/domain/content/entity/paginator.d.ts.map +1 -1
  9. package/dist/internal/domain/content/entity/paginator.js +2 -0
  10. package/dist/internal/domain/content/entity/paginator.js.map +1 -1
  11. package/dist/internal/domain/content/entity/section.js +5 -5
  12. package/dist/internal/domain/content/entity/section.js.map +1 -1
  13. package/dist/internal/domain/markdown/entity/markdown.d.ts.map +1 -1
  14. package/dist/internal/domain/markdown/entity/markdown.js +5 -4
  15. package/dist/internal/domain/markdown/entity/markdown.js.map +1 -1
  16. package/dist/internal/domain/markdown/vo/content.d.ts +3 -6
  17. package/dist/internal/domain/markdown/vo/content.d.ts.map +1 -1
  18. package/dist/internal/domain/markdown/vo/content.js +32 -31
  19. package/dist/internal/domain/markdown/vo/content.js.map +1 -1
  20. package/dist/internal/domain/site/entity/language.d.ts.map +1 -1
  21. package/dist/internal/domain/site/entity/language.js +2 -0
  22. package/dist/internal/domain/site/entity/language.js.map +1 -1
  23. package/dist/internal/domain/site/entity/menu-builder.d.ts +4 -0
  24. package/dist/internal/domain/site/entity/menu-builder.d.ts.map +1 -1
  25. package/dist/internal/domain/site/entity/menu-builder.js +82 -12
  26. package/dist/internal/domain/site/entity/menu-builder.js.map +1 -1
  27. package/dist/internal/domain/site/entity/page.d.ts +4 -2
  28. package/dist/internal/domain/site/entity/page.d.ts.map +1 -1
  29. package/dist/internal/domain/site/entity/page.js +12 -6
  30. package/dist/internal/domain/site/entity/page.js.map +1 -1
  31. package/dist/internal/domain/site/entity/pager.d.ts.map +1 -1
  32. package/dist/internal/domain/site/entity/pager.js +2 -0
  33. package/dist/internal/domain/site/entity/pager.js.map +1 -1
  34. package/dist/internal/domain/site/entity/url.d.ts.map +1 -1
  35. package/dist/internal/domain/site/entity/url.js +3 -1
  36. package/dist/internal/domain/site/entity/url.js.map +1 -1
  37. package/dist/internal/domain/site/valueobject/author.d.ts +12 -0
  38. package/dist/internal/domain/site/valueobject/author.d.ts.map +1 -1
  39. package/dist/internal/domain/site/valueobject/author.js +22 -0
  40. package/dist/internal/domain/site/valueobject/author.js.map +1 -1
  41. package/dist/internal/domain/site/valueobject/menu.d.ts +1 -0
  42. package/dist/internal/domain/site/valueobject/menu.d.ts.map +1 -1
  43. package/dist/internal/domain/site/valueobject/menu.js +3 -0
  44. package/dist/internal/domain/site/valueobject/menu.js.map +1 -1
  45. package/dist/internal/domain/site/valueobject/organization.d.ts +3 -0
  46. package/dist/internal/domain/site/valueobject/organization.d.ts.map +1 -1
  47. package/dist/internal/domain/site/valueobject/organization.js +21 -0
  48. package/dist/internal/domain/site/valueobject/organization.js.map +1 -1
  49. package/dist/internal/domain/template/vo/namespace.d.ts.map +1 -1
  50. package/dist/internal/domain/template/vo/namespace.js +8 -0
  51. package/dist/internal/domain/template/vo/namespace.js.map +1 -1
  52. package/dist/internal/domain/template/vo/registry.d.ts.map +1 -1
  53. package/dist/internal/domain/template/vo/registry.js +44 -9
  54. package/dist/internal/domain/template/vo/registry.js.map +1 -1
  55. package/dist/pkg/log/logger.d.ts.map +1 -1
  56. package/dist/pkg/log/logger.js +9 -9
  57. package/dist/pkg/log/logger.js.map +1 -1
  58. package/package.json +1 -1
  59. package/dist/internal/application/test-incremental-ssg.d.ts +0 -9
  60. package/dist/internal/application/test-incremental-ssg.d.ts.map +0 -1
  61. package/dist/internal/application/test-incremental-ssg.js +0 -80
  62. package/dist/internal/application/test-incremental-ssg.js.map +0 -1
  63. package/dist/internal/application/test-ssg.d.ts +0 -8
  64. package/dist/internal/application/test-ssg.d.ts.map +0 -1
  65. package/dist/internal/application/test-ssg.js +0 -30
  66. package/dist/internal/application/test-ssg.js.map +0 -1
  67. package/dist/internal/domain/markdown/test/external-adapter.test.d.ts +0 -2
  68. package/dist/internal/domain/markdown/test/external-adapter.test.d.ts.map +0 -1
  69. package/dist/internal/domain/markdown/test/external-adapter.test.js +0 -150
  70. package/dist/internal/domain/markdown/test/external-adapter.test.js.map +0 -1
  71. package/dist/internal/domain/markdown/test/markdown.test.d.ts +0 -2
  72. package/dist/internal/domain/markdown/test/markdown.test.d.ts.map +0 -1
  73. package/dist/internal/domain/markdown/test/markdown.test.js +0 -88
  74. package/dist/internal/domain/markdown/test/markdown.test.js.map +0 -1
  75. package/dist/internal/domain/markdown/vo/externaladapter.d.ts +0 -63
  76. package/dist/internal/domain/markdown/vo/externaladapter.d.ts.map +0 -1
  77. package/dist/internal/domain/markdown/vo/externaladapter.js +0 -194
  78. package/dist/internal/domain/markdown/vo/externaladapter.js.map +0 -1
  79. package/dist/internal/domain/markdown/vo/markdownit.d.ts +0 -33
  80. package/dist/internal/domain/markdown/vo/markdownit.d.ts.map +0 -1
  81. package/dist/internal/domain/markdown/vo/markdownit.js +0 -175
  82. package/dist/internal/domain/markdown/vo/markdownit.js.map +0 -1
@@ -1,30 +0,0 @@
1
- #!/usr/bin/env node
2
- "use strict";
3
- /**
4
- * Test script for SSG functionality
5
- * This script demonstrates and validates the SSG domain functionality
6
- */
7
- Object.defineProperty(exports, "__esModule", { value: true });
8
- exports.runSSGValidation = main;
9
- const ssg_1 = require("./ssg");
10
- const log_1 = require("../../pkg/log");
11
- // Initialize logging
12
- const log = (0, log_1.getDomainLogger)('test', { component: 'ssg-validation' });
13
- async function main() {
14
- const projDir = "/Users/sunwei/github/mdfriday/foundry/ws/proj";
15
- const moduleDir = "/Users/sunwei/github/mdfriday/foundry/ws/modules";
16
- const startTime = performance.now();
17
- await (0, ssg_1.processSSGWithProgress)(projDir, moduleDir, (progress) => {
18
- log.info("Progress:", progress);
19
- });
20
- const endTime = performance.now();
21
- log.info(`SSG processing completed in ${(endTime - startTime).toFixed(2)} ms`);
22
- }
23
- // Run the test suite
24
- if (require.main === module) {
25
- main().catch((error) => {
26
- log.error(`Test suite failed: ${error}`);
27
- process.exit(1);
28
- });
29
- }
30
- //# sourceMappingURL=test-ssg.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"test-ssg.js","sourceRoot":"","sources":["../../../internal/application/test-ssg.ts"],"names":[],"mappings":";;AAEA;;;GAGG;;AA4Bc,gCAAgB;AA1BjC,+BAA+C;AAC/C,kCAA2C;AAE3C,qBAAqB;AACrB,MAAM,GAAG,GAAG,IAAA,qBAAe,EAAC,MAAM,EAAE,EAAE,SAAS,EAAE,gBAAgB,EAAE,CAAC,CAAC;AAErE,KAAK,UAAU,IAAI;IACjB,MAAM,OAAO,GAAG,+CAA+C,CAAA;IAC/D,MAAM,SAAS,GAAG,kDAAkD,CAAA;IAEpE,MAAM,SAAS,GAAG,WAAW,CAAC,GAAG,EAAE,CAAA;IACnC,MAAM,IAAA,4BAAsB,EAAC,OAAO,EAAE,SAAS,EAAE,CAAC,QAAQ,EAAE,EAAE;QAC5D,GAAG,CAAC,IAAI,CAAC,WAAW,EAAE,QAAQ,CAAC,CAAC;IAClC,CAAC,CAAC,CAAC;IACH,MAAM,OAAO,GAAG,WAAW,CAAC,GAAG,EAAE,CAAC;IAClC,GAAG,CAAC,IAAI,CAAC,+BAA+B,CAAC,OAAO,GAAG,SAAS,CAAC,CAAC,OAAO,CAAC,CAAC,CAAC,KAAK,CAAC,CAAC;AACjF,CAAC;AAED,qBAAqB;AACrB,IAAI,OAAO,CAAC,IAAI,KAAK,MAAM,EAAE,CAAC;IAC5B,IAAI,EAAE,CAAC,KAAK,CAAC,CAAC,KAAK,EAAE,EAAE;QACrB,GAAG,CAAC,KAAK,CAAC,sBAAsB,KAAK,EAAE,CAAC,CAAC;QACzC,OAAO,CAAC,IAAI,CAAC,CAAC,CAAC,CAAC;IAClB,CAAC,CAAC,CAAC;AACL,CAAC"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=external-adapter.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external-adapter.test.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/markdown/test/external-adapter.test.ts"],"names":[],"mappings":""}
@@ -1,150 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- const markdown_1 = require("../factory/markdown");
4
- const type_1 = require("../type");
5
- describe('External Adapter', () => {
6
- test('should work with external processor object', async () => {
7
- // Simulate an external processor (e.g., from Obsidian)
8
- const externalProcessor = {
9
- render: (source) => {
10
- // Simple markdown to HTML conversion
11
- return source
12
- .replace(/^# (.+)$/gm, '<h1>$1</h1>')
13
- .replace(/\*\*(.+?)\*\*/g, '<strong>$1</strong>')
14
- .replace(/\n\n/g, '</p><p>')
15
- .replace(/^(.+)$/gm, '<p>$1</p>')
16
- .replace(/<\/p><p><h/g, '</p><h')
17
- .replace(/h1><\/p>/g, 'h1>');
18
- },
19
- metadata: {
20
- name: 'Custom Processor',
21
- version: '1.0.0',
22
- features: ['basic-rendering'],
23
- },
24
- };
25
- const markdown = (0, markdown_1.createMarkdownWithExternalProcessor)(externalProcessor);
26
- const source = '# Hello World\n\nThis is **bold** text.';
27
- const encoder = new TextEncoder();
28
- const srcBytes = encoder.encode(source);
29
- const rctx = {
30
- ctx: {},
31
- src: srcBytes,
32
- renderTOC: false,
33
- getRenderer: type_1.DefaultRendererFunc,
34
- };
35
- const dctx = {
36
- document: null,
37
- documentID: 'external-test',
38
- documentName: 'external-test.md',
39
- filename: 'external-test.md',
40
- };
41
- const result = await markdown.render(rctx, dctx);
42
- expect(result).toBeDefined();
43
- expect(result.headers()).toHaveLength(1);
44
- expect(result.headers()[0].name()).toBe('Hello World');
45
- expect(result.headers()[0].level()).toBe(1);
46
- const html = new TextDecoder().decode(result.bytes());
47
- expect(html).toContain('<h1>Hello World</h1>');
48
- expect(html).toContain('<strong>bold</strong>');
49
- });
50
- test('should work with simple render function', async () => {
51
- // Simulate a simple render function (e.g., from a basic markdown processor)
52
- const renderFunc = (source) => {
53
- return source
54
- .replace(/^## (.+)$/gm, '<h2>$1</h2>')
55
- .replace(/\*(.+?)\*/g, '<em>$1</em>');
56
- };
57
- const markdown = (0, markdown_1.createMarkdownWithRenderFunction)(renderFunc);
58
- const source = '## Test Header\n\nSome *italic* text.';
59
- const encoder = new TextEncoder();
60
- const srcBytes = encoder.encode(source);
61
- const rctx = {
62
- ctx: {},
63
- src: srcBytes,
64
- renderTOC: false,
65
- getRenderer: type_1.DefaultRendererFunc,
66
- };
67
- const dctx = {
68
- document: null,
69
- documentID: 'function-test',
70
- documentName: 'function-test.md',
71
- filename: 'function-test.md',
72
- };
73
- const result = await markdown.render(rctx, dctx);
74
- expect(result).toBeDefined();
75
- expect(result.headers()).toHaveLength(1);
76
- expect(result.headers()[0].name()).toBe('Test Header');
77
- expect(result.headers()[0].level()).toBe(2);
78
- });
79
- test('should work with Obsidian-style processor', async () => {
80
- // Simulate Obsidian's render function
81
- const obsidianRenderFunc = (source) => {
82
- // Simulate Obsidian's markdown processing with some custom features
83
- let html = source
84
- .replace(/^### (.+)$/gm, '<h3>$1</h3>')
85
- .replace(/\[\[(.+?)\]\]/g, '<a href="obsidian://open?vault=MyVault&file=$1">$1</a>') // Obsidian internal links
86
- .replace(/==(.+?)==/g, '<mark>$1</mark>'); // Obsidian highlighting
87
- return html;
88
- };
89
- const markdown = (0, markdown_1.createMarkdownForObsidian)(obsidianRenderFunc, { pluginName: 'MyObsidianPlugin', version: '2.1.0' });
90
- const source = '### Obsidian Test\n\n[[Some Link]] with ==highlighted== text.';
91
- const encoder = new TextEncoder();
92
- const srcBytes = encoder.encode(source);
93
- const rctx = {
94
- ctx: {},
95
- src: srcBytes,
96
- renderTOC: false,
97
- getRenderer: type_1.DefaultRendererFunc,
98
- };
99
- const dctx = {
100
- document: null,
101
- documentID: 'obsidian-test',
102
- documentName: 'obsidian-test.md',
103
- filename: 'obsidian-test.md',
104
- };
105
- const result = await markdown.render(rctx, dctx);
106
- expect(result).toBeDefined();
107
- expect(result.headers()).toHaveLength(1);
108
- expect(result.headers()[0].name()).toBe('Obsidian Test');
109
- expect(result.headers()[0].level()).toBe(3);
110
- const html = new TextDecoder().decode(result.bytes());
111
- expect(html).toContain('<h3>Obsidian Test</h3>');
112
- expect(html).toContain('obsidian://open?vault=MyVault&file=Some Link');
113
- expect(html).toContain('<mark>highlighted</mark>');
114
- });
115
- test('should handle async render functions', async () => {
116
- // Simulate an async render function
117
- const asyncRenderFunc = async (source) => {
118
- // Simulate some async processing
119
- await new Promise(resolve => setTimeout(resolve, 10));
120
- return source
121
- .replace(/^#### (.+)$/gm, '<h4>$1</h4>')
122
- .replace(/`(.+?)`/g, '<code>$1</code>');
123
- };
124
- const markdown = (0, markdown_1.createMarkdownWithRenderFunction)(asyncRenderFunc);
125
- const source = '#### Async Test\n\nSome `code` here.';
126
- const encoder = new TextEncoder();
127
- const srcBytes = encoder.encode(source);
128
- const rctx = {
129
- ctx: {},
130
- src: srcBytes,
131
- renderTOC: false,
132
- getRenderer: type_1.DefaultRendererFunc,
133
- };
134
- const dctx = {
135
- document: null,
136
- documentID: 'async-test',
137
- documentName: 'async-test.md',
138
- filename: 'async-test.md',
139
- };
140
- const result = await markdown.render(rctx, dctx);
141
- expect(result).toBeDefined();
142
- expect(result.headers()).toHaveLength(1);
143
- expect(result.headers()[0].name()).toBe('Async Test');
144
- expect(result.headers()[0].level()).toBe(4);
145
- const html = new TextDecoder().decode(result.bytes());
146
- expect(html).toContain('<h4>Async Test</h4>');
147
- expect(html).toContain('<code>code</code>');
148
- });
149
- });
150
- //# sourceMappingURL=external-adapter.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"external-adapter.test.js","sourceRoot":"","sources":["../../../../../internal/domain/markdown/test/external-adapter.test.ts"],"names":[],"mappings":"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"}
@@ -1,2 +0,0 @@
1
- export {};
2
- //# sourceMappingURL=markdown.test.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.test.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/markdown/test/markdown.test.ts"],"names":[],"mappings":""}
@@ -1,88 +0,0 @@
1
- "use strict";
2
- var __importDefault = (this && this.__importDefault) || function (mod) {
3
- return (mod && mod.__esModule) ? mod : { "default": mod };
4
- };
5
- Object.defineProperty(exports, "__esModule", { value: true });
6
- const markdown_1 = require("../factory/markdown");
7
- const type_1 = require("../type");
8
- const markdown_it_1 = __importDefault(require("markdown-it"));
9
- describe('Markdown Domain', () => {
10
- test('should create markdown instance with default configuration', async () => {
11
- const markdown = (0, markdown_1.createMarkdown)();
12
- const source = '# Hello World\n\nThis is a **test** markdown.';
13
- const encoder = new TextEncoder();
14
- const srcBytes = encoder.encode(source);
15
- const rctx = {
16
- ctx: {},
17
- src: srcBytes,
18
- renderTOC: false,
19
- getRenderer: type_1.DefaultRendererFunc,
20
- };
21
- const dctx = {
22
- document: null,
23
- documentID: 'test',
24
- documentName: 'test.md',
25
- filename: 'test.md',
26
- };
27
- const result = await markdown.render(rctx, dctx);
28
- expect(result).toBeDefined();
29
- expect(result.bytes()).toBeInstanceOf(Uint8Array);
30
- expect(result.headers()).toHaveLength(1);
31
- expect(result.headers()[0].name()).toBe('Hello World');
32
- expect(result.headers()[0].level()).toBe(1);
33
- });
34
- test('should work with external MarkdownIt instance', async () => {
35
- const externalMd = new markdown_it_1.default();
36
- const markdown = (0, markdown_1.createMarkdownWithExternalRenderer)(externalMd);
37
- const source = '## Test Header\n\nSome content.';
38
- const encoder = new TextEncoder();
39
- const srcBytes = encoder.encode(source);
40
- const rctx = {
41
- ctx: {},
42
- src: srcBytes,
43
- renderTOC: false,
44
- getRenderer: type_1.DefaultRendererFunc,
45
- };
46
- const dctx = {
47
- document: null,
48
- documentID: 'test2',
49
- documentName: 'test2.md',
50
- filename: 'test2.md',
51
- };
52
- const result = await markdown.render(rctx, dctx);
53
- expect(result).toBeDefined();
54
- expect(result.headers()).toHaveLength(1);
55
- expect(result.headers()[0].name()).toBe('Test Header');
56
- expect(result.headers()[0].level()).toBe(2);
57
- });
58
- test('should generate table of contents', async () => {
59
- const markdown = (0, markdown_1.createMarkdown)();
60
- const source = `# Chapter 1
61
- ## Section 1.1
62
- ### Subsection 1.1.1
63
- ## Section 1.2
64
- # Chapter 2`;
65
- const encoder = new TextEncoder();
66
- const srcBytes = encoder.encode(source);
67
- const rctx = {
68
- ctx: {},
69
- src: srcBytes,
70
- renderTOC: true,
71
- getRenderer: type_1.DefaultRendererFunc,
72
- };
73
- const dctx = {
74
- document: null,
75
- documentID: 'toc-test',
76
- documentName: 'toc-test.md',
77
- filename: 'toc-test.md',
78
- };
79
- const result = await markdown.render(rctx, dctx);
80
- expect(result.headers()).toHaveLength(5);
81
- const toc = result.tableOfContents();
82
- const tocHtml = toc.toHTML(1, 6, false);
83
- expect(tocHtml).toContain('<ul>');
84
- expect(tocHtml).toContain('Chapter 1');
85
- expect(tocHtml).toContain('Section 1.1');
86
- });
87
- });
88
- //# sourceMappingURL=markdown.test.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdown.test.js","sourceRoot":"","sources":["../../../../../internal/domain/markdown/test/markdown.test.ts"],"names":[],"mappings":"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"}
@@ -1,63 +0,0 @@
1
- import Token from 'markdown-it/lib/token';
2
- import { MarkdownRenderer, ExternalMarkdownProcessor, BasicMarkdownRenderFunc, BasicMarkdownParseFunc } from '../type';
3
- /**
4
- * Simple token implementation for external processors that don't provide full AST
5
- */
6
- export declare class SimpleToken implements Partial<Token> {
7
- type: string;
8
- tag: string;
9
- content: string;
10
- level: number;
11
- map: [number, number] | null;
12
- constructor(type: string, tag?: string, content?: string, level?: number, map?: [number, number] | null);
13
- }
14
- /**
15
- * External markdown processor adapter
16
- * This allows integration with any external markdown system (e.g., Obsidian)
17
- */
18
- export declare class ExternalMarkdownAdapter implements MarkdownRenderer {
19
- private processor;
20
- constructor(processor: ExternalMarkdownProcessor);
21
- render(source: string): Promise<string>;
22
- parse(source: string): Promise<Token[]>;
23
- private convertASTToTokens;
24
- private processASTNode;
25
- private createSimpleTokens;
26
- /**
27
- * Get metadata about the external processor
28
- */
29
- getMetadata(): {
30
- name?: string;
31
- version?: string;
32
- features?: string[];
33
- };
34
- }
35
- /**
36
- * Function-based adapter for simple render-only processors
37
- */
38
- export declare class FunctionBasedAdapter implements MarkdownRenderer {
39
- private renderFunc;
40
- private parseFunc?;
41
- constructor(renderFunc: BasicMarkdownRenderFunc, parseFunc?: BasicMarkdownParseFunc | undefined);
42
- render(source: string): Promise<string>;
43
- parse(source: string): Promise<Token[]>;
44
- }
45
- /**
46
- * Factory functions for creating adapters
47
- */
48
- /**
49
- * Create adapter from external processor object
50
- */
51
- export declare function createExternalAdapter(processor: ExternalMarkdownProcessor): ExternalMarkdownAdapter;
52
- /**
53
- * Create adapter from render function only
54
- */
55
- export declare function createFunctionAdapter(renderFunc: BasicMarkdownRenderFunc, parseFunc?: BasicMarkdownParseFunc): FunctionBasedAdapter;
56
- /**
57
- * Create adapter for Obsidian-style processors
58
- */
59
- export declare function createObsidianAdapter(renderFunc: BasicMarkdownRenderFunc, metadata?: {
60
- pluginName?: string;
61
- version?: string;
62
- }): ExternalMarkdownAdapter;
63
- //# sourceMappingURL=externaladapter.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"externaladapter.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/markdown/vo/externaladapter.ts"],"names":[],"mappings":"AAAA,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EACL,gBAAgB,EAChB,yBAAyB,EACzB,uBAAuB,EACvB,sBAAsB,EACvB,MAAM,SAAS,CAAC;AAEjB;;GAEG;AACH,qBAAa,WAAY,YAAW,OAAO,CAAC,KAAK,CAAC;IAChD,IAAI,EAAE,MAAM,CAAC;IACb,GAAG,EAAE,MAAM,CAAC;IACZ,OAAO,EAAE,MAAM,CAAC;IAChB,KAAK,EAAE,MAAM,CAAC;IACd,GAAG,EAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAI,CAAC;gBAG3B,IAAI,EAAE,MAAM,EACZ,GAAG,GAAE,MAAW,EAChB,OAAO,GAAE,MAAW,EACpB,KAAK,GAAE,MAAU,EACjB,GAAG,GAAE,CAAC,MAAM,EAAE,MAAM,CAAC,GAAG,IAAW;CAQtC;AAED;;;GAGG;AACH,qBAAa,uBAAwB,YAAW,gBAAgB;IAClD,OAAO,CAAC,SAAS;gBAAT,SAAS,EAAE,yBAAyB;IAElD,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAiB7C,OAAO,CAAC,kBAAkB;IAgB1B,OAAO,CAAC,cAAc;IAoEtB,OAAO,CAAC,kBAAkB;IAuE1B;;OAEG;IACH,WAAW;;;;;CAGZ;AAED;;GAEG;AACH,qBAAa,oBAAqB,YAAW,gBAAgB;IAEzD,OAAO,CAAC,UAAU;IAClB,OAAO,CAAC,SAAS,CAAC;gBADV,UAAU,EAAE,uBAAuB,EACnC,SAAS,CAAC,EAAE,sBAAsB,YAAA;IAGtC,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAKvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;CAqB9C;AAED;;GAEG;AAEH;;GAEG;AACH,wBAAgB,qBAAqB,CAAC,SAAS,EAAE,yBAAyB,GAAG,uBAAuB,CAEnG;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,uBAAuB,EACnC,SAAS,CAAC,EAAE,sBAAsB,GACjC,oBAAoB,CAEtB;AAED;;GAEG;AACH,wBAAgB,qBAAqB,CACnC,UAAU,EAAE,uBAAuB,EACnC,QAAQ,CAAC,EAAE;IAAE,UAAU,CAAC,EAAE,MAAM,CAAC;IAAC,OAAO,CAAC,EAAE,MAAM,CAAA;CAAE,GACnD,uBAAuB,CASzB"}
@@ -1,194 +0,0 @@
1
- "use strict";
2
- Object.defineProperty(exports, "__esModule", { value: true });
3
- exports.FunctionBasedAdapter = exports.ExternalMarkdownAdapter = exports.SimpleToken = void 0;
4
- exports.createExternalAdapter = createExternalAdapter;
5
- exports.createFunctionAdapter = createFunctionAdapter;
6
- exports.createObsidianAdapter = createObsidianAdapter;
7
- /**
8
- * Simple token implementation for external processors that don't provide full AST
9
- */
10
- class SimpleToken {
11
- constructor(type, tag = '', content = '', level = 0, map = null) {
12
- this.type = type;
13
- this.tag = tag;
14
- this.content = content;
15
- this.level = level;
16
- this.map = map;
17
- }
18
- }
19
- exports.SimpleToken = SimpleToken;
20
- /**
21
- * External markdown processor adapter
22
- * This allows integration with any external markdown system (e.g., Obsidian)
23
- */
24
- class ExternalMarkdownAdapter {
25
- constructor(processor) {
26
- this.processor = processor;
27
- }
28
- async render(source) {
29
- const result = this.processor.render(source);
30
- return typeof result === 'string' ? result : await result;
31
- }
32
- async parse(source) {
33
- if (this.processor.parse) {
34
- const result = this.processor.parse(source);
35
- const ast = typeof result === 'object' ? result : await result;
36
- // Try to convert the AST to our token format
37
- if (Array.isArray(ast)) {
38
- return ast;
39
- }
40
- else if (ast && typeof ast === 'object') {
41
- return this.convertASTToTokens(ast);
42
- }
43
- }
44
- // Fallback: create simple tokens by parsing the source manually
45
- return this.createSimpleTokens(source);
46
- }
47
- convertASTToTokens(ast) {
48
- const tokens = [];
49
- // This is a generic AST to Token converter
50
- // Different external processors might have different AST structures
51
- if (ast.children && Array.isArray(ast.children)) {
52
- for (const child of ast.children) {
53
- tokens.push(...this.processASTNode(child));
54
- }
55
- }
56
- else if (ast.type) {
57
- tokens.push(...this.processASTNode(ast));
58
- }
59
- return tokens;
60
- }
61
- processASTNode(node) {
62
- const tokens = [];
63
- if (!node.type)
64
- return tokens;
65
- // Handle different node types
66
- switch (node.type) {
67
- case 'heading':
68
- tokens.push(new SimpleToken('heading_open', `h${node.level || 1}`, '', 0, node.position ? [node.position.start.line - 1, node.position.end.line] : null));
69
- if (node.children) {
70
- for (const child of node.children) {
71
- tokens.push(...this.processASTNode(child));
72
- }
73
- }
74
- tokens.push(new SimpleToken('heading_close', `h${node.level || 1}`));
75
- break;
76
- case 'text':
77
- tokens.push(new SimpleToken('inline', '', node.value || node.content || '', 0, node.position ? [node.position.start.line - 1, node.position.end.line] : null));
78
- break;
79
- case 'paragraph':
80
- tokens.push(new SimpleToken('paragraph_open', 'p'));
81
- if (node.children) {
82
- for (const child of node.children) {
83
- tokens.push(...this.processASTNode(child));
84
- }
85
- }
86
- tokens.push(new SimpleToken('paragraph_close', 'p'));
87
- break;
88
- case 'code':
89
- case 'codeBlock':
90
- tokens.push(new SimpleToken('code_block', 'code', node.value || node.content || '', 0, node.position ? [node.position.start.line - 1, node.position.end.line] : null));
91
- break;
92
- default:
93
- // For unknown node types, try to process children
94
- if (node.children && Array.isArray(node.children)) {
95
- for (const child of node.children) {
96
- tokens.push(...this.processASTNode(child));
97
- }
98
- }
99
- }
100
- return tokens;
101
- }
102
- createSimpleTokens(source) {
103
- const tokens = [];
104
- const lines = source.split('\n');
105
- for (let i = 0; i < lines.length; i++) {
106
- const line = lines[i].trim();
107
- if (!line)
108
- continue;
109
- // Simple heading detection
110
- const headingMatch = line.match(/^(#{1,6})\s+(.+)$/);
111
- if (headingMatch) {
112
- const level = headingMatch[1].length;
113
- const text = headingMatch[2];
114
- tokens.push(new SimpleToken('heading_open', `h${level}`, '', 0, [i, i + 1]));
115
- tokens.push(new SimpleToken('inline', '', text, 1, [i, i + 1]));
116
- tokens.push(new SimpleToken('heading_close', `h${level}`, '', 0, [i, i + 1]));
117
- continue;
118
- }
119
- // Simple paragraph detection
120
- tokens.push(new SimpleToken('paragraph_open', 'p', '', 0, [i, i + 1]));
121
- tokens.push(new SimpleToken('inline', '', line, 1, [i, i + 1]));
122
- tokens.push(new SimpleToken('paragraph_close', 'p', '', 0, [i, i + 1]));
123
- }
124
- return tokens;
125
- }
126
- /**
127
- * Get metadata about the external processor
128
- */
129
- getMetadata() {
130
- return this.processor.metadata || {};
131
- }
132
- }
133
- exports.ExternalMarkdownAdapter = ExternalMarkdownAdapter;
134
- /**
135
- * Function-based adapter for simple render-only processors
136
- */
137
- class FunctionBasedAdapter {
138
- constructor(renderFunc, parseFunc) {
139
- this.renderFunc = renderFunc;
140
- this.parseFunc = parseFunc;
141
- }
142
- async render(source) {
143
- const result = this.renderFunc(source);
144
- return typeof result === 'string' ? result : await result;
145
- }
146
- async parse(source) {
147
- if (this.parseFunc) {
148
- const result = this.parseFunc(source);
149
- const ast = typeof result === 'object' ? result : await result;
150
- if (Array.isArray(ast)) {
151
- return ast;
152
- }
153
- }
154
- // Fallback to simple parsing
155
- const processor = {
156
- render: this.renderFunc,
157
- };
158
- if (this.parseFunc) {
159
- processor.parse = this.parseFunc;
160
- }
161
- const adapter = new ExternalMarkdownAdapter(processor);
162
- return adapter.parse(source);
163
- }
164
- }
165
- exports.FunctionBasedAdapter = FunctionBasedAdapter;
166
- /**
167
- * Factory functions for creating adapters
168
- */
169
- /**
170
- * Create adapter from external processor object
171
- */
172
- function createExternalAdapter(processor) {
173
- return new ExternalMarkdownAdapter(processor);
174
- }
175
- /**
176
- * Create adapter from render function only
177
- */
178
- function createFunctionAdapter(renderFunc, parseFunc) {
179
- return new FunctionBasedAdapter(renderFunc, parseFunc);
180
- }
181
- /**
182
- * Create adapter for Obsidian-style processors
183
- */
184
- function createObsidianAdapter(renderFunc, metadata) {
185
- return new ExternalMarkdownAdapter({
186
- render: renderFunc,
187
- metadata: {
188
- name: metadata?.pluginName || 'Obsidian',
189
- version: metadata?.version || 'unknown',
190
- features: ['rendering', 'basic-parsing'],
191
- },
192
- });
193
- }
194
- //# sourceMappingURL=externaladapter.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"externaladapter.js","sourceRoot":"","sources":["../../../../../internal/domain/markdown/vo/externaladapter.ts"],"names":[],"mappings":"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"}
@@ -1,33 +0,0 @@
1
- import MarkdownIt from 'markdown-it';
2
- import Token from 'markdown-it/lib/token';
3
- import { MarkdownRenderer, Position } from '../type';
4
- import { DomainMarkdownConfig } from './config';
5
- /**
6
- * MarkdownIt-based renderer implementation
7
- */
8
- export declare class MarkdownItRenderer implements MarkdownRenderer {
9
- private md;
10
- private config;
11
- constructor(config: DomainMarkdownConfig, externalMd?: MarkdownIt);
12
- render(source: string): Promise<string>;
13
- parse(source: string): Promise<Token[]>;
14
- /**
15
- * Get the underlying MarkdownIt instance
16
- */
17
- getMarkdownIt(): MarkdownIt;
18
- /**
19
- * Add a custom plugin
20
- */
21
- addPlugin(plugin: any, options?: any): void;
22
- private createMarkdownItInstance;
23
- private configureBasicPlugins;
24
- }
25
- /**
26
- * Factory function to create MarkdownIt renderer with default configuration
27
- */
28
- export declare function createMarkdownItRenderer(config?: Partial<DomainMarkdownConfig>, externalMd?: MarkdownIt): MarkdownItRenderer;
29
- /**
30
- * Utility to extract position information from tokens
31
- */
32
- export declare function getTokenPosition(token: Token): Position | null;
33
- //# sourceMappingURL=markdownit.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"markdownit.d.ts","sourceRoot":"","sources":["../../../../../internal/domain/markdown/vo/markdownit.ts"],"names":[],"mappings":"AAAA,OAAO,UAAU,MAAM,aAAa,CAAC;AACrC,OAAO,KAAK,MAAM,uBAAuB,CAAC;AAC1C,OAAO,EAAE,gBAAgB,EAAqB,QAAQ,EAAE,MAAM,SAAS,CAAC;AACxE,OAAO,EAAE,oBAAoB,EAAE,MAAM,UAAU,CAAC;AAGhD;;GAEG;AACH,qBAAa,kBAAmB,YAAW,gBAAgB;IACzD,OAAO,CAAC,EAAE,CAAa;IACvB,OAAO,CAAC,MAAM,CAAuB;gBAEzB,MAAM,EAAE,oBAAoB,EAAE,UAAU,CAAC,EAAE,UAAU;IAY3D,MAAM,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,MAAM,CAAC;IAIvC,KAAK,CAAC,MAAM,EAAE,MAAM,GAAG,OAAO,CAAC,KAAK,EAAE,CAAC;IAI7C;;OAEG;IACH,aAAa,IAAI,UAAU;IAI3B;;OAEG;IACH,SAAS,CAAC,MAAM,EAAE,GAAG,EAAE,OAAO,CAAC,EAAE,GAAG,GAAG,IAAI;IAI3C,OAAO,CAAC,wBAAwB;IAwBhC,OAAO,CAAC,qBAAqB;CAsB9B;AAED;;GAEG;AACH,wBAAgB,wBAAwB,CACtC,MAAM,CAAC,EAAE,OAAO,CAAC,oBAAoB,CAAC,EACtC,UAAU,CAAC,EAAE,UAAU,GACtB,kBAAkB,CA0EpB;AAED;;GAEG;AACH,wBAAgB,gBAAgB,CAAC,KAAK,EAAE,KAAK,GAAG,QAAQ,GAAG,IAAI,CAS9D"}