@oml/markdown 0.7.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.
Files changed (112) hide show
  1. package/README.md +39 -0
  2. package/out/index.d.ts +2 -0
  3. package/out/index.js +4 -0
  4. package/out/index.js.map +1 -0
  5. package/out/md/index.d.ts +6 -0
  6. package/out/md/index.js +8 -0
  7. package/out/md/index.js.map +1 -0
  8. package/out/md/md-execution.d.ts +33 -0
  9. package/out/md/md-execution.js +3 -0
  10. package/out/md/md-execution.js.map +1 -0
  11. package/out/md/md-executor.d.ts +21 -0
  12. package/out/md/md-executor.js +498 -0
  13. package/out/md/md-executor.js.map +1 -0
  14. package/out/md/md-frontmatter.d.ts +4 -0
  15. package/out/md/md-frontmatter.js +48 -0
  16. package/out/md/md-frontmatter.js.map +1 -0
  17. package/out/md/md-registry.d.ts +7 -0
  18. package/out/md/md-registry.js +19 -0
  19. package/out/md/md-registry.js.map +1 -0
  20. package/out/md/md-runtime.d.ts +10 -0
  21. package/out/md/md-runtime.js +166 -0
  22. package/out/md/md-runtime.js.map +1 -0
  23. package/out/md/md-types.d.ts +40 -0
  24. package/out/md/md-types.js +3 -0
  25. package/out/md/md-types.js.map +1 -0
  26. package/out/md/md-yaml.d.ts +1 -0
  27. package/out/md/md-yaml.js +15 -0
  28. package/out/md/md-yaml.js.map +1 -0
  29. package/out/renderers/chart-renderer.d.ts +6 -0
  30. package/out/renderers/chart-renderer.js +392 -0
  31. package/out/renderers/chart-renderer.js.map +1 -0
  32. package/out/renderers/diagram-renderer.d.ts +7 -0
  33. package/out/renderers/diagram-renderer.js +2354 -0
  34. package/out/renderers/diagram-renderer.js.map +1 -0
  35. package/out/renderers/graph-renderer.d.ts +6 -0
  36. package/out/renderers/graph-renderer.js +1384 -0
  37. package/out/renderers/graph-renderer.js.map +1 -0
  38. package/out/renderers/index.d.ts +14 -0
  39. package/out/renderers/index.js +16 -0
  40. package/out/renderers/index.js.map +1 -0
  41. package/out/renderers/list-renderer.d.ts +6 -0
  42. package/out/renderers/list-renderer.js +252 -0
  43. package/out/renderers/list-renderer.js.map +1 -0
  44. package/out/renderers/matrix-renderer.d.ts +14 -0
  45. package/out/renderers/matrix-renderer.js +498 -0
  46. package/out/renderers/matrix-renderer.js.map +1 -0
  47. package/out/renderers/message-renderer.d.ts +6 -0
  48. package/out/renderers/message-renderer.js +14 -0
  49. package/out/renderers/message-renderer.js.map +1 -0
  50. package/out/renderers/registry.d.ts +9 -0
  51. package/out/renderers/registry.js +41 -0
  52. package/out/renderers/registry.js.map +1 -0
  53. package/out/renderers/renderer.d.ts +28 -0
  54. package/out/renderers/renderer.js +61 -0
  55. package/out/renderers/renderer.js.map +1 -0
  56. package/out/renderers/table-editor-renderer.d.ts +4 -0
  57. package/out/renderers/table-editor-renderer.js +9 -0
  58. package/out/renderers/table-editor-renderer.js.map +1 -0
  59. package/out/renderers/table-renderer.d.ts +95 -0
  60. package/out/renderers/table-renderer.js +1571 -0
  61. package/out/renderers/table-renderer.js.map +1 -0
  62. package/out/renderers/text-renderer.d.ts +7 -0
  63. package/out/renderers/text-renderer.js +219 -0
  64. package/out/renderers/text-renderer.js.map +1 -0
  65. package/out/renderers/tree-renderer.d.ts +4 -0
  66. package/out/renderers/tree-renderer.js +9 -0
  67. package/out/renderers/tree-renderer.js.map +1 -0
  68. package/out/renderers/types.d.ts +18 -0
  69. package/out/renderers/types.js +3 -0
  70. package/out/renderers/types.js.map +1 -0
  71. package/out/renderers/wikilink-utils.d.ts +6 -0
  72. package/out/renderers/wikilink-utils.js +100 -0
  73. package/out/renderers/wikilink-utils.js.map +1 -0
  74. package/out/static/browser-runtime.bundle.js +74155 -0
  75. package/out/static/browser-runtime.bundle.js.map +7 -0
  76. package/out/static/browser-runtime.d.ts +1 -0
  77. package/out/static/browser-runtime.js +218 -0
  78. package/out/static/browser-runtime.js.map +1 -0
  79. package/out/static/index.d.ts +1 -0
  80. package/out/static/index.js +3 -0
  81. package/out/static/index.js.map +1 -0
  82. package/out/static/runtime-assets.d.ts +2 -0
  83. package/out/static/runtime-assets.js +174 -0
  84. package/out/static/runtime-assets.js.map +1 -0
  85. package/package.json +74 -0
  86. package/src/index.ts +4 -0
  87. package/src/md/index.ts +8 -0
  88. package/src/md/md-execution.ts +51 -0
  89. package/src/md/md-executor.ts +598 -0
  90. package/src/md/md-frontmatter.ts +53 -0
  91. package/src/md/md-registry.ts +22 -0
  92. package/src/md/md-runtime.ts +191 -0
  93. package/src/md/md-types.ts +48 -0
  94. package/src/md/md-yaml.ts +17 -0
  95. package/src/renderers/chart-renderer.ts +473 -0
  96. package/src/renderers/diagram-renderer.ts +2520 -0
  97. package/src/renderers/graph-renderer.ts +1653 -0
  98. package/src/renderers/index.ts +16 -0
  99. package/src/renderers/list-renderer.ts +289 -0
  100. package/src/renderers/matrix-renderer.ts +616 -0
  101. package/src/renderers/message-renderer.ts +18 -0
  102. package/src/renderers/registry.ts +45 -0
  103. package/src/renderers/renderer.ts +84 -0
  104. package/src/renderers/table-editor-renderer.ts +8 -0
  105. package/src/renderers/table-renderer.ts +1868 -0
  106. package/src/renderers/text-renderer.ts +252 -0
  107. package/src/renderers/tree-renderer.ts +7 -0
  108. package/src/renderers/types.ts +22 -0
  109. package/src/renderers/wikilink-utils.ts +108 -0
  110. package/src/static/browser-runtime.ts +249 -0
  111. package/src/static/index.ts +3 -0
  112. package/src/static/runtime-assets.ts +175 -0
@@ -0,0 +1,84 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+
3
+ import type { MdBlockExecutionResult } from './types.js';
4
+
5
+ export interface MarkdownBlockRenderer {
6
+ canRender(result: MdBlockExecutionResult): boolean;
7
+ render(result: MdBlockExecutionResult): HTMLElement;
8
+ }
9
+
10
+ export type TableBlockKind = 'table' | 'table-editor' | 'matrix' | 'tree';
11
+ export type CanvasBlockKind = 'graph' | 'diagram';
12
+
13
+ export abstract class BaseMarkdownBlockRenderer implements MarkdownBlockRenderer {
14
+ abstract canRender(result: MdBlockExecutionResult): boolean;
15
+ abstract render(result: MdBlockExecutionResult): HTMLElement;
16
+
17
+ protected createResultContainer(status: MdBlockExecutionResult['status']): HTMLElement {
18
+ const container = document.createElement('div');
19
+ container.className = `oml-md-result oml-md-result-${status}`;
20
+ return container;
21
+ }
22
+
23
+ protected createMessageContainer(text: string): HTMLElement {
24
+ const message = document.createElement('div');
25
+ message.className = 'oml-md-result-message';
26
+ message.textContent = text;
27
+ return message;
28
+ }
29
+
30
+ protected requestTextFileDownload(content: string, fallbackName = 'download', fileExtension = 'txt'): void {
31
+ const filename = this.buildDownloadFileName(fallbackName, fileExtension);
32
+ const event = new CustomEvent('md-download-file', {
33
+ detail: { filename, content },
34
+ });
35
+ window.dispatchEvent(event);
36
+ }
37
+
38
+ private buildDownloadFileName(fallbackName: string, fileExtension: string): string {
39
+ const sourceUri = document.body.getAttribute('data-source-uri') ?? '';
40
+ let namePart = fallbackName;
41
+ if (sourceUri) {
42
+ const fileName = sourceUri.split('/').pop() ?? '';
43
+ const fileStem = fileName.replace(/\.[^.]+$/, '');
44
+ if (fileStem) {
45
+ namePart = fileStem;
46
+ }
47
+ }
48
+ const sanitized = namePart.replace(/\W+/g, '_');
49
+ const ts = new Date().toISOString().replace(/[:.]/g, '-');
50
+ const extension = fileExtension.replace(/^\./, '') || 'csv';
51
+ return `${sanitized}_${ts}.${extension}`;
52
+ }
53
+ }
54
+
55
+ export abstract class QueryMarkdownBlockRenderer extends BaseMarkdownBlockRenderer {
56
+ protected getBlockSource(result: MdBlockExecutionResult): string | undefined {
57
+ return result.blockSource;
58
+ }
59
+
60
+ protected getBlockMeta(result: MdBlockExecutionResult): string | undefined {
61
+ return result.blockMeta;
62
+ }
63
+
64
+ protected getBlockRange(result: MdBlockExecutionResult): { start?: number; end?: number } {
65
+ return { start: result.blockLineStart, end: result.blockLineEnd };
66
+ }
67
+ }
68
+
69
+ export abstract class CanvasMarkdownBlockRenderer extends QueryMarkdownBlockRenderer {
70
+ protected abstract readonly canvasKinds: ReadonlyArray<CanvasBlockKind>;
71
+
72
+ canRender(result: MdBlockExecutionResult): boolean {
73
+ return result.status === 'ok'
74
+ && this.canvasKinds.includes(result.kind as CanvasBlockKind);
75
+ }
76
+
77
+ protected renderNotImplemented(result: MdBlockExecutionResult): HTMLElement {
78
+ const container = this.createResultContainer(result.status);
79
+ const source = this.getBlockSource(result);
80
+ const sourceHint = source && source.trim().length > 0 ? ' Query source is available to this renderer.' : '';
81
+ container.appendChild(this.createMessageContainer(`Renderer for '${result.kind}' is not implemented yet.${sourceHint}`));
82
+ return container;
83
+ }
84
+ }
@@ -0,0 +1,8 @@
1
+ // Copyright (c) 2026 Modelware. All rights reserved.
2
+
3
+ import { TableMarkdownBlockRenderer } from './table-renderer.js';
4
+
5
+ export class TableEditorMarkdownBlockRenderer extends TableMarkdownBlockRenderer {
6
+ protected override readonly tableKinds = ['table-editor'] as const;
7
+ }
8
+