@oml/markdown 0.8.0 → 0.10.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 (33) hide show
  1. package/out/md/md-executor.js +2 -9
  2. package/out/md/md-executor.js.map +1 -1
  3. package/out/md/md-runtime.js +2 -26
  4. package/out/md/md-runtime.js.map +1 -1
  5. package/out/renderers/diagram-renderer.js +2 -8
  6. package/out/renderers/diagram-renderer.js.map +1 -1
  7. package/out/renderers/graph-renderer.js +5 -9
  8. package/out/renderers/graph-renderer.js.map +1 -1
  9. package/out/renderers/renderer.d.ts +3 -0
  10. package/out/renderers/renderer.js +53 -0
  11. package/out/renderers/renderer.js.map +1 -1
  12. package/out/renderers/table-renderer.d.ts +0 -1
  13. package/out/renderers/table-renderer.js.map +1 -1
  14. package/out/renderers/text-renderer.d.ts +0 -1
  15. package/out/renderers/text-renderer.js +2 -9
  16. package/out/renderers/text-renderer.js.map +1 -1
  17. package/out/renderers/wikilink-utils.js +3 -10
  18. package/out/renderers/wikilink-utils.js.map +1 -1
  19. package/out/static/browser-runtime.bundle.js +788 -6169
  20. package/out/static/browser-runtime.bundle.js.map +4 -4
  21. package/out/static/browser-runtime.js +3 -0
  22. package/out/static/browser-runtime.js.map +1 -1
  23. package/package.json +2 -2
  24. package/src/md/md-executor.ts +2 -9
  25. package/src/md/md-runtime.ts +2 -28
  26. package/src/renderers/diagram-renderer.ts +2 -6
  27. package/src/renderers/graph-renderer.ts +5 -9
  28. package/src/renderers/renderer.ts +66 -0
  29. package/src/renderers/table-renderer.ts +0 -1
  30. package/src/renderers/text-renderer.ts +2 -7
  31. package/src/renderers/wikilink-utils.ts +4 -10
  32. package/src/static/browser-runtime.ts +3 -0
  33. package/src/static/markdown-webview.css +1361 -0
@@ -1,5 +1,6 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
  import { createMarkdownRendererRegistry } from '../renderers/registry.js';
3
+ import { setIriLabelSnapshot } from '../renderers/renderer.js';
3
4
  const SUPPORTED = new Set(['table', 'tree', 'graph', 'chart', 'diagram', 'list', 'text', 'matrix', 'table-editor']);
4
5
  function parseJsonNode(id, fallback) {
5
6
  const node = document.getElementById(id);
@@ -174,6 +175,8 @@ async function applyExecutionResults() {
174
175
  const wikilinkIndex = parseJsonNode('oml-md-wikilink-index', {});
175
176
  const iriAliasIndex = parseJsonNode('oml-md-wikilink-iri-aliases', {});
176
177
  const wikilinkConfig = parseJsonNode('oml-md-wikilink-config', { linkingEnabled: false });
178
+ const memberLabelSnapshot = parseJsonNode('oml-md-member-labels', {});
179
+ setIriLabelSnapshot(memberLabelSnapshot);
177
180
  const linkingEnabled = Boolean(wikilinkConfig?.linkingEnabled);
178
181
  // Resolve wikilinks in regular markdown content (outside code-block panels).
179
182
  applyWikilinks(document, wikilinkIndex, iriAliasIndex, linkingEnabled);
@@ -1 +1 @@
1
- {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../../src/static/browser-runtime.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"browser-runtime.js","sourceRoot":"","sources":["../../src/static/browser-runtime.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,7 +1,7 @@
1
1
  {
2
2
  "name": "@oml/markdown",
3
3
  "description": "Markdown runtime and execution contracts for OML",
4
- "version": "0.8.0",
4
+ "version": "0.10.0",
5
5
  "type": "module",
6
6
  "engines": {
7
7
  "node": ">=20.10.0",
@@ -56,7 +56,7 @@
56
56
  "dependencies": {
57
57
  "@antv/x6": "^3.1.6",
58
58
  "@dagrejs/dagre": "^2.0.4",
59
- "@oml/owl": "0.8.0",
59
+ "@oml/owl": "0.10.0",
60
60
  "chart.js": "^4.4.0",
61
61
  "markdown-it": "^14.1.1",
62
62
  "reflect-metadata": "^0.2.2",
@@ -2,6 +2,7 @@
2
2
 
3
3
  import { deriveSelectQueryFromShape, type OwlConstructResult, type OwlQueryResult } from '@oml/owl';
4
4
  import type { Term } from '@rdfjs/types';
5
+ import { displayLabelFromIri } from '../renderers/renderer.js';
5
6
  import type { MdBlockExecutionResult, MdExecuteBlocksParams, MdExecuteBlocksResult } from './md-execution.js';
6
7
 
7
8
  export interface MarkdownExecutionBackend {
@@ -582,15 +583,7 @@ function uniqueVariableName(base: string, used: ReadonlySet<string>): string {
582
583
  }
583
584
 
584
585
  function localName(iri: string): string {
585
- const hash = iri.lastIndexOf('#');
586
- if (hash >= 0 && hash < iri.length - 1) {
587
- return iri.slice(hash + 1);
588
- }
589
- const slash = iri.lastIndexOf('/');
590
- if (slash >= 0 && slash < iri.length - 1) {
591
- return iri.slice(slash + 1);
592
- }
593
- return iri;
586
+ return displayLabelFromIri(iri);
594
587
  }
595
588
 
596
589
  function isPlainObject(value: unknown): value is Record<string, unknown> {
@@ -2,6 +2,7 @@
2
2
 
3
3
  import MarkdownIt from 'markdown-it';
4
4
  import type { RuleInline } from 'markdown-it/lib/parser_inline.mjs';
5
+ import { displayLabelFromIri } from '../renderers/renderer.js';
5
6
  import { extractLeadingFrontMatter, stripLeadingFrontMatter } from './md-frontmatter.js';
6
7
  import { MarkdownHandlerRegistry } from './md-registry.js';
7
8
  import { parseYamlMap } from './md-yaml.js';
@@ -97,7 +98,7 @@ const wikilinkRule: RuleInline = (state, silent): boolean => {
97
98
  }
98
99
 
99
100
  if (!silent) {
100
- const label = deriveWikiLabel(iri);
101
+ const label = displayLabelFromIri(iri);
101
102
  const open = state.push('link_open', 'a', 1);
102
103
  open.attrSet('class', 'wikilink');
103
104
  open.attrSet('iri', iri);
@@ -114,33 +115,6 @@ const wikilinkRule: RuleInline = (state, silent): boolean => {
114
115
  return true;
115
116
  };
116
117
 
117
- function deriveWikiLabel(iri: string): string {
118
- const normalized = iri.trim().replace(/^<|>$/g, '');
119
- if (!normalized) {
120
- return iri;
121
- }
122
- const fragment = normalized.split('#').pop() ?? '';
123
- if (fragment && normalized.includes('#')) {
124
- return decodeLabelPart(fragment);
125
- }
126
-
127
- const withoutQuery = normalized.split('?')[0];
128
- const pathParts = withoutQuery.replace(/\/+$/, '').split('/');
129
- const lastSegment = pathParts[pathParts.length - 1] ?? '';
130
- if (lastSegment) {
131
- return decodeLabelPart(lastSegment);
132
- }
133
- return normalized;
134
- }
135
-
136
- function decodeLabelPart(value: string): string {
137
- try {
138
- return decodeURIComponent(value);
139
- } catch {
140
- return value;
141
- }
142
- }
143
-
144
118
  function parseBlockOptions(content: string): { content: string; options?: Record<string, unknown> } {
145
119
  const normalized = content.replace(/^\uFEFF/, '');
146
120
  const match = /^(---\s*\r?\n[\s\S]*?\r?\n---\s*\r?\n?)([\s\S]*)$/.exec(normalized);
@@ -1,7 +1,7 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
 
3
3
  import 'reflect-metadata';
4
- import { CanvasMarkdownBlockRenderer } from './renderer.js';
4
+ import { CanvasMarkdownBlockRenderer, displayLabelFromIri } from './renderer.js';
5
5
  import type { MdBlockExecutionResult } from './types.js';
6
6
 
7
7
  type NodeKind = 'Node' | 'Compartment' | 'Port';
@@ -1987,11 +1987,7 @@ function resolveContainerTopPadding(node: NodeSpec, labelText: string): number {
1987
1987
  }
1988
1988
 
1989
1989
  function localName(value: string): string {
1990
- const hash = value.lastIndexOf('#');
1991
- if (hash >= 0 && hash < value.length - 1) return value.slice(hash + 1);
1992
- const slash = value.lastIndexOf('/');
1993
- if (slash >= 0 && slash < value.length - 1) return value.slice(slash + 1);
1994
- return value;
1990
+ return displayLabelFromIri(value);
1995
1991
  }
1996
1992
 
1997
1993
  function indexTriples(rows: TripleRow[]): TripleIndex {
@@ -1,7 +1,8 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
 
3
- import { CanvasMarkdownBlockRenderer } from './renderer.js';
3
+ import { CanvasMarkdownBlockRenderer, displayLabelFromIri } from './renderer.js';
4
4
  import type { MdBlockExecutionResult } from './types.js';
5
+ import { isIriValue, shortLabelFromIri } from './wikilink-utils.js';
5
6
 
6
7
  // --- CSS variable constants for base styles (auto-update on VS Code theme) ---
7
8
  const CSS_NODE_FILL = 'var(--vscode-button-secondaryBackground, var(--vscode-button-background, #5a5a8a))';
@@ -1637,15 +1638,10 @@ function shortLabel(value: string): string {
1637
1638
  if (value.startsWith('_:')) {
1638
1639
  return value;
1639
1640
  }
1640
- const hash = value.lastIndexOf('#');
1641
- if (hash >= 0 && hash < value.length - 1) {
1642
- return value.slice(hash + 1);
1641
+ if (isIriValue(value)) {
1642
+ return shortLabelFromIri(value);
1643
1643
  }
1644
- const slash = value.lastIndexOf('/');
1645
- if (slash >= 0 && slash < value.length - 1) {
1646
- return value.slice(slash + 1);
1647
- }
1648
- return value;
1644
+ return displayLabelFromIri(value);
1649
1645
  }
1650
1646
 
1651
1647
  function isRecord(value: unknown): value is Record<string, unknown> {
@@ -7,6 +7,72 @@ export interface MarkdownBlockRenderer {
7
7
  render(result: MdBlockExecutionResult): HTMLElement;
8
8
  }
9
9
 
10
+ let iriLabelSnapshot: ReadonlyMap<string, string> | undefined;
11
+
12
+ export function setIriLabelSnapshot(snapshot?: ReadonlyMap<string, string> | Record<string, string>): void {
13
+ if (!snapshot) {
14
+ iriLabelSnapshot = undefined;
15
+ return;
16
+ }
17
+ if (snapshot instanceof Map) {
18
+ iriLabelSnapshot = snapshot;
19
+ return;
20
+ }
21
+ iriLabelSnapshot = new Map(
22
+ Object.entries(snapshot).map(([iri, label]) => [normalizeIriLabelKey(iri), String(label)] as const)
23
+ );
24
+ }
25
+
26
+ export function runWithIriLabelSnapshot<T>(
27
+ snapshot: ReadonlyMap<string, string> | Record<string, string> | undefined,
28
+ action: () => T
29
+ ): T {
30
+ const previous = iriLabelSnapshot;
31
+ setIriLabelSnapshot(snapshot);
32
+ try {
33
+ return action();
34
+ } finally {
35
+ iriLabelSnapshot = previous;
36
+ }
37
+ }
38
+
39
+ export function displayLabelFromIri(iri: string): string {
40
+ const normalized = normalizeIriLabelKey(iri);
41
+ if (!normalized) {
42
+ return iri;
43
+ }
44
+
45
+ const labeled = iriLabelSnapshot?.get(normalized);
46
+ if (typeof labeled === 'string' && labeled.length > 0) {
47
+ return labeled;
48
+ }
49
+
50
+ const fragmentIndex = normalized.lastIndexOf('#');
51
+ if (fragmentIndex >= 0 && fragmentIndex < normalized.length - 1) {
52
+ return decodeIriLabelSegment(normalized.slice(fragmentIndex + 1));
53
+ }
54
+
55
+ const withoutQuery = normalized.split('?')[0]?.replace(/\/+$/, '') ?? normalized;
56
+ const slashIndex = withoutQuery.lastIndexOf('/');
57
+ if (slashIndex >= 0 && slashIndex < withoutQuery.length - 1) {
58
+ return decodeIriLabelSegment(withoutQuery.slice(slashIndex + 1));
59
+ }
60
+
61
+ return normalized;
62
+ }
63
+
64
+ function normalizeIriLabelKey(iri: string): string {
65
+ return String(iri ?? '').trim().replace(/^<|>$/g, '');
66
+ }
67
+
68
+ function decodeIriLabelSegment(value: string): string {
69
+ try {
70
+ return decodeURIComponent(value);
71
+ } catch {
72
+ return value;
73
+ }
74
+ }
75
+
10
76
  export type TableBlockKind = 'table' | 'table-editor' | 'matrix' | 'tree';
11
77
  export type CanvasBlockKind = 'graph' | 'diagram';
12
78
 
@@ -18,7 +18,6 @@ type TableEditorActionContext = {
18
18
  datatypeIri?: string;
19
19
  classIri?: string;
20
20
  nodeKind?: string;
21
- enumValues?: string[];
22
21
  editor?: 'multiline';
23
22
  }>;
24
23
  blockSource?: string;
@@ -2,7 +2,7 @@
2
2
 
3
3
  import { QueryMarkdownBlockRenderer } from './renderer.js';
4
4
  import type { MdBlockExecutionResult } from './types.js';
5
- import MarkdownIt from 'markdown-it';
5
+ import { appendInlineValue } from './wikilink-utils.js';
6
6
 
7
7
  type TextStyleSelectorKind = 'paragraph';
8
8
  type TextStyleTarget = 'value';
@@ -23,11 +23,6 @@ type TextSelectorContext = {
23
23
  };
24
24
 
25
25
  export class TextMarkdownBlockRenderer extends QueryMarkdownBlockRenderer {
26
- private readonly markdown = new MarkdownIt({
27
- html: false,
28
- linkify: true,
29
- });
30
-
31
26
  canRender(result: MdBlockExecutionResult): boolean {
32
27
  return result.status === 'ok'
33
28
  && result.kind === 'text'
@@ -51,7 +46,7 @@ export class TextMarkdownBlockRenderer extends QueryMarkdownBlockRenderer {
51
46
  const paragraph = document.createElement('p');
52
47
  const valueSpan = document.createElement('span');
53
48
  valueSpan.className = 'oml-md-result-text-value';
54
- valueSpan.innerHTML = this.markdown.renderInline(row[0] ?? '');
49
+ appendInlineValue(valueSpan, row[0] ?? '');
55
50
  paragraph.appendChild(valueSpan);
56
51
 
57
52
  const context = createParagraphSelectorContext(index, row[0] ?? '', payload.columns, row);
@@ -1,5 +1,7 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
 
3
+ import { displayLabelFromIri } from './renderer.js';
4
+
3
5
  export function appendInlineValue(container: HTMLElement, value: string): void {
4
6
  const wikilinkPattern = /\[\[([^\]]+)\]\]/g;
5
7
  let cursor = 0;
@@ -44,7 +46,7 @@ export function appendTokenizedValueParts(container: HTMLElement, raw: string, p
44
46
  if (isIriValue(token)) {
45
47
  fragment.appendChild(createWikiLinkElement(token, shortLabelFromIri(token)));
46
48
  } else {
47
- fragment.textContent = token;
49
+ appendInlineValue(fragment, token);
48
50
  }
49
51
  container.appendChild(fragment);
50
52
  }
@@ -58,15 +60,7 @@ export function splitTokenizedValueParts(raw: string): string[] {
58
60
  }
59
61
 
60
62
  export function shortLabelFromIri(iri: string): string {
61
- const hash = iri.lastIndexOf('#');
62
- if (hash >= 0 && hash < iri.length - 1) {
63
- return iri.slice(hash + 1);
64
- }
65
- const slash = iri.lastIndexOf('/');
66
- if (slash >= 0 && slash < iri.length - 1) {
67
- return iri.slice(slash + 1);
68
- }
69
- return iri;
63
+ return displayLabelFromIri(iri);
70
64
  }
71
65
 
72
66
  export function isIriValue(value: string): boolean {
@@ -1,6 +1,7 @@
1
1
  // Copyright (c) 2026 Modelware. All rights reserved.
2
2
 
3
3
  import { createMarkdownRendererRegistry } from '../renderers/registry.js';
4
+ import { setIriLabelSnapshot } from '../renderers/renderer.js';
4
5
 
5
6
  const SUPPORTED = new Set(['table', 'tree', 'graph', 'chart', 'diagram', 'list', 'text', 'matrix', 'table-editor']);
6
7
 
@@ -203,6 +204,8 @@ async function applyExecutionResults(): Promise<void> {
203
204
  const wikilinkIndex = parseJsonNode<Record<string, string>>('oml-md-wikilink-index', {});
204
205
  const iriAliasIndex = parseJsonNode<Record<string, string>>('oml-md-wikilink-iri-aliases', {});
205
206
  const wikilinkConfig = parseJsonNode<WikilinkConfig>('oml-md-wikilink-config', { linkingEnabled: false });
207
+ const memberLabelSnapshot = parseJsonNode<Record<string, string>>('oml-md-member-labels', {});
208
+ setIriLabelSnapshot(memberLabelSnapshot);
206
209
  const linkingEnabled = Boolean(wikilinkConfig?.linkingEnabled);
207
210
  // Resolve wikilinks in regular markdown content (outside code-block panels).
208
211
  applyWikilinks(document, wikilinkIndex, iriAliasIndex, linkingEnabled);