@sciencestack-ai/tokens 0.1.20 → 0.1.22
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 +70 -0
- package/dist/TokenExporter.d.ts +62 -0
- package/dist/TokenExporter.d.ts.map +1 -1
- package/dist/TokenExporter.js +94 -0
- package/dist/TokenExporter.js.map +1 -1
- package/dist/base/AbstractTokenNode.d.ts.map +1 -1
- package/dist/base/AbstractTokenNode.js +29 -9
- package/dist/base/AbstractTokenNode.js.map +1 -1
- package/dist/export_types.d.ts +16 -2
- package/dist/export_types.d.ts.map +1 -1
- package/dist/export_types.js.map +1 -1
- package/package.json +1 -1
package/README.md
CHANGED
|
@@ -167,6 +167,76 @@ const section: SectionToken = {
|
|
|
167
167
|
- **Styles**: `STYLE_TO_TAILWIND` mappings
|
|
168
168
|
- **Converters**: Citation format converters
|
|
169
169
|
|
|
170
|
+
## Exporting with Position Spans
|
|
171
|
+
|
|
172
|
+
Use `toLatexWithSpans()` or `toMarkdownWithSpans()` to export content with position tracking for each node. This enables features like click-to-navigate, highlighting source locations, or mapping rendered output back to AST nodes.
|
|
173
|
+
|
|
174
|
+
```typescript
|
|
175
|
+
import { TokenExporter, TokenNodeFactory } from '@sciencestack-ai/tokens';
|
|
176
|
+
|
|
177
|
+
const factory = new TokenNodeFactory();
|
|
178
|
+
const section = factory.createNode({
|
|
179
|
+
type: "section",
|
|
180
|
+
title: [{ type: "text", content: "Introduction" }],
|
|
181
|
+
content: [
|
|
182
|
+
{ type: "text", content: "Hello world " },
|
|
183
|
+
{ type: "ref", content: ["fig:1"] },
|
|
184
|
+
{ type: "text", content: " end." },
|
|
185
|
+
],
|
|
186
|
+
level: 1,
|
|
187
|
+
});
|
|
188
|
+
|
|
189
|
+
const { content, spans } = TokenExporter.toLatexWithSpans([section]);
|
|
190
|
+
|
|
191
|
+
// content: "\section{Introduction}\nHello world \ref{fig:1} end.\n"
|
|
192
|
+
// spans: Map<nodeId, { start: number, end: number, type: string }>
|
|
193
|
+
```
|
|
194
|
+
|
|
195
|
+
### Output Structure
|
|
196
|
+
|
|
197
|
+
```
|
|
198
|
+
Content: "\section{Introduction}\nHello world \ref{fig:1} end.\n"
|
|
199
|
+
|
|
200
|
+
Spans:
|
|
201
|
+
"title-0": { start: 9, end: 21, type: "text" } => "Introduction"
|
|
202
|
+
"content-0": { start: 23, end: 35, type: "text" } => "Hello world "
|
|
203
|
+
"content-1": { start: 35, end: 46, type: "ref" } => "\ref{fig:1}"
|
|
204
|
+
"content-2": { start: 46, end: 51, type: "text" } => " end."
|
|
205
|
+
"<section>": { start: 0, end: 52, type: "section" } => (entire section)
|
|
206
|
+
```
|
|
207
|
+
|
|
208
|
+
### Using Spans
|
|
209
|
+
|
|
210
|
+
```typescript
|
|
211
|
+
// Get position of a specific node
|
|
212
|
+
const refSpan = spans.get(refNode.id);
|
|
213
|
+
console.log(content.substring(refSpan.start, refSpan.end)); // "\ref{fig:1}"
|
|
214
|
+
|
|
215
|
+
// Filter by type
|
|
216
|
+
const textSpans = [...spans].filter(([_, s]) => s.type === "text");
|
|
217
|
+
|
|
218
|
+
// Find most specific node at position (smallest span containing pos)
|
|
219
|
+
function findNodeAtPosition(pos: number): string | undefined {
|
|
220
|
+
let best: { id: string; size: number } | undefined;
|
|
221
|
+
for (const [nodeId, span] of spans) {
|
|
222
|
+
if (pos >= span.start && pos < span.end) {
|
|
223
|
+
const size = span.end - span.start;
|
|
224
|
+
if (!best || size < best.size) {
|
|
225
|
+
best = { id: nodeId, size };
|
|
226
|
+
}
|
|
227
|
+
}
|
|
228
|
+
}
|
|
229
|
+
return best?.id;
|
|
230
|
+
}
|
|
231
|
+
```
|
|
232
|
+
|
|
233
|
+
Also available for Markdown:
|
|
234
|
+
|
|
235
|
+
```typescript
|
|
236
|
+
const { content, spans } = TokenExporter.toMarkdownWithSpans(nodes);
|
|
237
|
+
// content: "## Introduction\n---\n\nHello world [fig:1] end."
|
|
238
|
+
```
|
|
239
|
+
|
|
170
240
|
## Development
|
|
171
241
|
|
|
172
242
|
### Testing
|
package/dist/TokenExporter.d.ts
CHANGED
|
@@ -50,6 +50,36 @@ export declare class TokenExporter {
|
|
|
50
50
|
* Export to LaTeX (instance method - uses factory for raw tokens)
|
|
51
51
|
*/
|
|
52
52
|
toLatex(input: AbstractTokenNode[] | BaseToken[], options?: LatexExportOptions): string;
|
|
53
|
+
/**
|
|
54
|
+
* Export to LaTeX with position spans for each node.
|
|
55
|
+
* Returns both the content and a map of nodeId -> { start, end, type } positions.
|
|
56
|
+
*
|
|
57
|
+
* @example
|
|
58
|
+
* ```typescript
|
|
59
|
+
* const { content, spans } = exporter.toLatexWithSpans(ast);
|
|
60
|
+
* // spans.get("node-123") => { start: 100, end: 150, type: "text" }
|
|
61
|
+
* ```
|
|
62
|
+
*/
|
|
63
|
+
toLatexWithSpans(input: AbstractTokenNode[] | BaseToken[], options?: LatexExportOptions): {
|
|
64
|
+
content: string;
|
|
65
|
+
spans: Map<string, {
|
|
66
|
+
start: number;
|
|
67
|
+
end: number;
|
|
68
|
+
type: string;
|
|
69
|
+
}>;
|
|
70
|
+
};
|
|
71
|
+
/**
|
|
72
|
+
* Export to Markdown with position spans for each node.
|
|
73
|
+
* Returns both the content and a map of nodeId -> { start, end, type } positions.
|
|
74
|
+
*/
|
|
75
|
+
toMarkdownWithSpans(input: AbstractTokenNode[] | BaseToken[], options?: MarkdownExportOptions): {
|
|
76
|
+
content: string;
|
|
77
|
+
spans: Map<string, {
|
|
78
|
+
start: number;
|
|
79
|
+
end: number;
|
|
80
|
+
type: string;
|
|
81
|
+
}>;
|
|
82
|
+
};
|
|
53
83
|
/**
|
|
54
84
|
* Export to plain text (instance method - uses factory for raw tokens)
|
|
55
85
|
*/
|
|
@@ -70,6 +100,38 @@ export declare class TokenExporter {
|
|
|
70
100
|
* Export token nodes to LaTeX
|
|
71
101
|
*/
|
|
72
102
|
static toLatex(nodes: AbstractTokenNode[], options?: LatexExportOptions): string;
|
|
103
|
+
/**
|
|
104
|
+
* Recursively find missing child spans using fallback string matching.
|
|
105
|
+
* Called after primary tracking for nodes that don't go through GetLatexContent
|
|
106
|
+
* (e.g., equation children rendered via getCopyContent).
|
|
107
|
+
*/
|
|
108
|
+
private static findMissingChildSpans;
|
|
109
|
+
/**
|
|
110
|
+
* Export token nodes to LaTeX with position spans for each node.
|
|
111
|
+
* Uses recursive tracking via options for accurate span positions.
|
|
112
|
+
* Falls back to string matching for children of nodes that don't use GetLatexContent.
|
|
113
|
+
*/
|
|
114
|
+
static toLatexWithSpans(nodes: AbstractTokenNode[], options?: LatexExportOptions): {
|
|
115
|
+
content: string;
|
|
116
|
+
spans: Map<string, {
|
|
117
|
+
start: number;
|
|
118
|
+
end: number;
|
|
119
|
+
type: string;
|
|
120
|
+
}>;
|
|
121
|
+
};
|
|
122
|
+
/**
|
|
123
|
+
* Export token nodes to Markdown with position spans for each node.
|
|
124
|
+
* Uses recursive tracking via options for accurate span positions.
|
|
125
|
+
* Falls back to string matching for children of nodes that don't use GetMarkdownContent.
|
|
126
|
+
*/
|
|
127
|
+
static toMarkdownWithSpans(nodes: AbstractTokenNode[], options?: MarkdownExportOptions): {
|
|
128
|
+
content: string;
|
|
129
|
+
spans: Map<string, {
|
|
130
|
+
start: number;
|
|
131
|
+
end: number;
|
|
132
|
+
type: string;
|
|
133
|
+
}>;
|
|
134
|
+
};
|
|
73
135
|
/**
|
|
74
136
|
* Export token nodes to plain text
|
|
75
137
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenExporter.d.ts","sourceRoot":"","sources":["../src/TokenExporter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,SAAS,CAAC;AACpC,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;AAC7D,OAAO,EACL,qBAAqB,EACrB,kBAAkB,EAClB,iBAAiB,EACjB,kBAAkB,
|
|
1
|
+
{"version":3,"file":"TokenExporter.d.ts","sourceRoot":"","sources":["../src/TokenExporter.ts"],"names":[],"mappings":"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"}
|
package/dist/TokenExporter.js
CHANGED
|
@@ -79,6 +79,28 @@ export class TokenExporter {
|
|
|
79
79
|
const nodes = this.ensureNodes(input);
|
|
80
80
|
return AbstractTokenNode.GetLatexContent(nodes, options);
|
|
81
81
|
}
|
|
82
|
+
/**
|
|
83
|
+
* Export to LaTeX with position spans for each node.
|
|
84
|
+
* Returns both the content and a map of nodeId -> { start, end, type } positions.
|
|
85
|
+
*
|
|
86
|
+
* @example
|
|
87
|
+
* ```typescript
|
|
88
|
+
* const { content, spans } = exporter.toLatexWithSpans(ast);
|
|
89
|
+
* // spans.get("node-123") => { start: 100, end: 150, type: "text" }
|
|
90
|
+
* ```
|
|
91
|
+
*/
|
|
92
|
+
toLatexWithSpans(input, options) {
|
|
93
|
+
const nodes = this.ensureNodes(input);
|
|
94
|
+
return TokenExporter.toLatexWithSpans(nodes, options);
|
|
95
|
+
}
|
|
96
|
+
/**
|
|
97
|
+
* Export to Markdown with position spans for each node.
|
|
98
|
+
* Returns both the content and a map of nodeId -> { start, end, type } positions.
|
|
99
|
+
*/
|
|
100
|
+
toMarkdownWithSpans(input, options) {
|
|
101
|
+
const nodes = this.ensureNodes(input);
|
|
102
|
+
return TokenExporter.toMarkdownWithSpans(nodes, options);
|
|
103
|
+
}
|
|
82
104
|
/**
|
|
83
105
|
* Export to plain text (instance method - uses factory for raw tokens)
|
|
84
106
|
*/
|
|
@@ -123,6 +145,78 @@ export class TokenExporter {
|
|
|
123
145
|
static toLatex(nodes, options) {
|
|
124
146
|
return AbstractTokenNode.GetLatexContent(nodes, options);
|
|
125
147
|
}
|
|
148
|
+
/**
|
|
149
|
+
* Recursively find missing child spans using fallback string matching.
|
|
150
|
+
* Called after primary tracking for nodes that don't go through GetLatexContent
|
|
151
|
+
* (e.g., equation children rendered via getCopyContent).
|
|
152
|
+
*/
|
|
153
|
+
static findMissingChildSpans(nodes, content, spans, getNodeContent) {
|
|
154
|
+
for (const node of nodes) {
|
|
155
|
+
if (!node.hasChildren())
|
|
156
|
+
continue;
|
|
157
|
+
const parentSpan = spans.get(node.id);
|
|
158
|
+
if (!parentSpan)
|
|
159
|
+
continue;
|
|
160
|
+
const parentContent = content.substring(parentSpan.start, parentSpan.end);
|
|
161
|
+
let searchStart = 0;
|
|
162
|
+
for (const child of node.getChildren()) {
|
|
163
|
+
// Skip if already tracked
|
|
164
|
+
if (spans.has(child.id)) {
|
|
165
|
+
// Still recurse for grandchildren
|
|
166
|
+
TokenExporter.findMissingChildSpans([child], content, spans, getNodeContent);
|
|
167
|
+
continue;
|
|
168
|
+
}
|
|
169
|
+
// Try getLatexContent first, then getCopyContent as fallback
|
|
170
|
+
let childOutput = getNodeContent(child);
|
|
171
|
+
let childPos = parentContent.indexOf(childOutput, searchStart);
|
|
172
|
+
// Fallback: try getCopyContent if primary content didn't match
|
|
173
|
+
if (childPos < 0 && childOutput.length > 0) {
|
|
174
|
+
childOutput = child.getCopyContent();
|
|
175
|
+
childPos = parentContent.indexOf(childOutput, searchStart);
|
|
176
|
+
}
|
|
177
|
+
if (childPos >= 0 && childOutput.length > 0) {
|
|
178
|
+
const childStart = parentSpan.start + childPos;
|
|
179
|
+
const childEnd = childStart + childOutput.length;
|
|
180
|
+
spans.set(child.id, { start: childStart, end: childEnd, type: child.type });
|
|
181
|
+
searchStart = childPos + childOutput.length;
|
|
182
|
+
// Recurse for grandchildren
|
|
183
|
+
if (child.hasChildren()) {
|
|
184
|
+
TokenExporter.findMissingChildSpans([child], content, spans, getNodeContent);
|
|
185
|
+
}
|
|
186
|
+
}
|
|
187
|
+
}
|
|
188
|
+
}
|
|
189
|
+
}
|
|
190
|
+
/**
|
|
191
|
+
* Export token nodes to LaTeX with position spans for each node.
|
|
192
|
+
* Uses recursive tracking via options for accurate span positions.
|
|
193
|
+
* Falls back to string matching for children of nodes that don't use GetLatexContent.
|
|
194
|
+
*/
|
|
195
|
+
static toLatexWithSpans(nodes, options) {
|
|
196
|
+
const tracker = {
|
|
197
|
+
spans: new Map(),
|
|
198
|
+
position: { current: 0 }
|
|
199
|
+
};
|
|
200
|
+
const content = AbstractTokenNode.GetLatexContent(nodes, { ...options, _spanTracker: tracker });
|
|
201
|
+
// Find any missing child spans using fallback string matching
|
|
202
|
+
TokenExporter.findMissingChildSpans(nodes, content, tracker.spans, (node) => node.getLatexContent(options));
|
|
203
|
+
return { content, spans: tracker.spans };
|
|
204
|
+
}
|
|
205
|
+
/**
|
|
206
|
+
* Export token nodes to Markdown with position spans for each node.
|
|
207
|
+
* Uses recursive tracking via options for accurate span positions.
|
|
208
|
+
* Falls back to string matching for children of nodes that don't use GetMarkdownContent.
|
|
209
|
+
*/
|
|
210
|
+
static toMarkdownWithSpans(nodes, options) {
|
|
211
|
+
const tracker = {
|
|
212
|
+
spans: new Map(),
|
|
213
|
+
position: { current: 0 }
|
|
214
|
+
};
|
|
215
|
+
const content = AbstractTokenNode.GetMarkdownContent(nodes, { ...options, _spanTracker: tracker });
|
|
216
|
+
// Find any missing child spans using fallback string matching
|
|
217
|
+
TokenExporter.findMissingChildSpans(nodes, content, tracker.spans, (node) => node.getMarkdownContent(options));
|
|
218
|
+
return { content, spans: tracker.spans };
|
|
219
|
+
}
|
|
126
220
|
/**
|
|
127
221
|
* Export token nodes to plain text
|
|
128
222
|
*/
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"TokenExporter.js","sourceRoot":"","sources":["../src/TokenExporter.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,iBAAiB,EAAE,MAAM,0BAA0B,CAAC;
|
|
1
|
+
{"version":3,"file":"TokenExporter.js","sourceRoot":"","sources":["../src/TokenExporter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTokenNode.d.ts","sourceRoot":"","sources":["../../src/base/AbstractTokenNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AAC7C,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAEnH,OAAO,EAAE,SAAS,EAAE,MAAM,aAAa,CAAC;AAGxC,8BAAsB,iBAAiB;IACrC,OAAO,CAAC,GAAG,CAAS;IACpB,SAAS,CAAC,OAAO,EAAE,iBAAiB,GAAG,IAAI,CAAQ;IACnD,SAAS,CAAC,SAAS,EAAE,iBAAiB,EAAE,CAAM;IAC9C,SAAS,CAAC,MAAM,EAAE,MAAM,CAAC;IACzB,IAAI,EAAE,SAAS,CAAqB;gBAExB,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,EAAE,IAAI,GAAE,SAA6B;IAM3E,IAAI,QAAQ,IAAI,OAAO,CAEtB;IAGD,IAAI,EAAE,IAAI,MAAM,CAEf;IAGD,IAAI,KAAK,WAER;IAED,IAAI,IAAI,IAAI,SAAS,CAEpB;IAED,IAAI,MAAM,IAAI,iBAAiB,GAAG,IAAI,CAErC;IAED,IAAI,QAAQ,IAAI,iBAAiB,EAAE,CAElC;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,GAAG,SAAS,CAEjC;IAED,IAAI,MAAM,IAAI,MAAM,EAAE,CAErB;IAGD,IAAI,MAAM,CAAC,IAAI,EAAE,iBAAiB,GAAG,IAAI,EAExC;IAED,QAAQ,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAKxC,WAAW,CAAC,KAAK,EAAE,iBAAiB,GAAG,IAAI;IAQ3C,aAAa,IAAI,IAAI;IAMrB,OAAO,IAAI,iBAAiB;IAQ5B,QAAQ,IAAI,MAAM;IAUlB;;;;OAIG;IACH,kBAAkB,CAAC,SAAS,EAAE,CAAC,IAAI,EAAE,iBAAiB,KAAK,OAAO,GAAG,iBAAiB,GAAG,IAAI;IAY7F,WAAW,IAAI,OAAO;IAItB,WAAW,IAAI,iBAAiB,EAAE;IAIlC,QAAQ,CAAC,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,GAAG;IAE3C,MAAM,IAAI,OAAO;IAIjB,MAAM,IAAI,OAAO;IAIjB,aAAa,IAAI,iBAAiB,GAAG,IAAI;IAIzC,YAAY,IAAI,iBAAiB,GAAG,IAAI;IAIxC;;;OAGG;IACH,YAAY,IAAI,iBAAiB;IAQjC;;;OAGG;IACH,WAAW,IAAI,iBAAiB;IAQhC,MAAM,CAAC,cAAc,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IASvF,MAAM,CAAC,eAAe,CAAC,KAAK,EAAE,iBAAiB,EAAE,EAAE,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;
|
|
1
|
+
{"version":3,"file":"AbstractTokenNode.d.ts","sourceRoot":"","sources":["../../src/base/AbstractTokenNode.ts"],"names":[],"mappings":"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"}
|
|
@@ -141,27 +141,47 @@ export class AbstractTokenNode {
|
|
|
141
141
|
}
|
|
142
142
|
static GetLatexContent(nodes, options) {
|
|
143
143
|
let content = '';
|
|
144
|
+
const tracker = options?._spanTracker;
|
|
145
|
+
// Don't pass tracker to inner nodes - only track at this level
|
|
146
|
+
// Child spans will be found by findMissingChildSpans using string matching
|
|
147
|
+
const innerOptions = tracker ? { ...options, _spanTracker: undefined } : options;
|
|
144
148
|
for (let node of nodes) {
|
|
145
|
-
|
|
149
|
+
// Add newline before non-inline nodes (but not before the first node)
|
|
150
|
+
if (!node.isInline && content.length > 0) {
|
|
146
151
|
content += '\n';
|
|
147
|
-
|
|
148
|
-
|
|
149
|
-
nodeContent = options.onNode(node, nodeContent);
|
|
152
|
+
if (tracker)
|
|
153
|
+
tracker.position.current += 1;
|
|
150
154
|
}
|
|
155
|
+
const start = tracker?.position.current ?? 0;
|
|
156
|
+
const nodeContent = node.getLatexContent(innerOptions);
|
|
151
157
|
content += nodeContent;
|
|
158
|
+
if (tracker) {
|
|
159
|
+
tracker.position.current = start + nodeContent.length;
|
|
160
|
+
tracker.spans.set(node.id, { start, end: tracker.position.current, type: node.type });
|
|
161
|
+
}
|
|
152
162
|
}
|
|
153
163
|
return content;
|
|
154
164
|
}
|
|
155
165
|
static GetMarkdownContent(nodes, options) {
|
|
156
166
|
let content = '';
|
|
167
|
+
const tracker = options?._spanTracker;
|
|
168
|
+
// Don't pass tracker to inner nodes - only track at this level
|
|
169
|
+
// Child spans will be found by findMissingChildSpans using string matching
|
|
170
|
+
const innerOptions = tracker ? { ...options, _spanTracker: undefined } : options;
|
|
157
171
|
for (let node of nodes) {
|
|
158
|
-
|
|
172
|
+
// Add double newline before non-inline nodes (but not before the first node)
|
|
173
|
+
if (!node.isInline && content.length > 0) {
|
|
159
174
|
content += '\n\n';
|
|
160
|
-
|
|
161
|
-
|
|
162
|
-
|
|
175
|
+
if (tracker)
|
|
176
|
+
tracker.position.current += 2;
|
|
177
|
+
}
|
|
178
|
+
const start = tracker?.position.current ?? 0;
|
|
179
|
+
const nodeContent = node.getMarkdownContent(innerOptions);
|
|
180
|
+
content += nodeContent;
|
|
181
|
+
if (tracker) {
|
|
182
|
+
tracker.position.current = start + nodeContent.length;
|
|
183
|
+
tracker.spans.set(node.id, { start, end: tracker.position.current, type: node.type });
|
|
163
184
|
}
|
|
164
|
-
content += markdownContent;
|
|
165
185
|
}
|
|
166
186
|
return content;
|
|
167
187
|
}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"AbstractTokenNode.js","sourceRoot":"","sources":["../../src/base/AbstractTokenNode.ts"],"names":[],"mappings":"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
|
|
1
|
+
{"version":3,"file":"AbstractTokenNode.js","sourceRoot":"","sources":["../../src/base/AbstractTokenNode.ts"],"names":[],"mappings":"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"}
|
package/dist/export_types.d.ts
CHANGED
|
@@ -2,6 +2,20 @@
|
|
|
2
2
|
* Options for getLatexContent() - used for LaTeX export
|
|
3
3
|
* Always returns full content (no partial extraction)
|
|
4
4
|
*/
|
|
5
|
+
/**
|
|
6
|
+
* Internal tracker for recording node positions during content export.
|
|
7
|
+
* Used by toLatexWithSpans/toMarkdownWithSpans for accurate span tracking.
|
|
8
|
+
*/
|
|
9
|
+
export type SpanTracker = {
|
|
10
|
+
spans: Map<string, {
|
|
11
|
+
start: number;
|
|
12
|
+
end: number;
|
|
13
|
+
type: string;
|
|
14
|
+
}>;
|
|
15
|
+
position: {
|
|
16
|
+
current: number;
|
|
17
|
+
};
|
|
18
|
+
};
|
|
5
19
|
export type BaseExportOptions = {
|
|
6
20
|
/** Resolver for asset paths (images, pdfs, diagrams) */
|
|
7
21
|
assetPathResolver?: (path: string) => string;
|
|
@@ -12,8 +26,8 @@ export type BaseExportOptions = {
|
|
|
12
26
|
} | null | undefined;
|
|
13
27
|
/** Skip applying text styles (bold, italic, etc.) during export */
|
|
14
28
|
skipStyles?: boolean;
|
|
15
|
-
/**
|
|
16
|
-
|
|
29
|
+
/** Internal: span tracker for position recording (used by toLatexWithSpans/toMarkdownWithSpans) */
|
|
30
|
+
_spanTracker?: SpanTracker;
|
|
17
31
|
};
|
|
18
32
|
export type LatexExportOptions = BaseExportOptions;
|
|
19
33
|
export type JSONExportOptions = BaseExportOptions;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export_types.d.ts","sourceRoot":"","sources":["../src/export_types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAC1B;QACE,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;KACnC,GACD,IAAI,GACJ,SAAS,CAAC;IACd,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,
|
|
1
|
+
{"version":3,"file":"export_types.d.ts","sourceRoot":"","sources":["../src/export_types.ts"],"names":[],"mappings":"AAEA;;;GAGG;AAEH;;;GAGG;AACH,MAAM,MAAM,WAAW,GAAG;IACxB,KAAK,EAAE,GAAG,CAAC,MAAM,EAAE;QAAE,KAAK,EAAE,MAAM,CAAC;QAAC,GAAG,EAAE,MAAM,CAAC;QAAC,IAAI,EAAE,MAAM,CAAA;KAAE,CAAC,CAAC;IACjE,QAAQ,EAAE;QAAE,OAAO,EAAE,MAAM,CAAA;KAAE,CAAC;CAC/B,CAAC;AAEF,MAAM,MAAM,iBAAiB,GAAG;IAC9B,wDAAwD;IACxD,iBAAiB,CAAC,EAAE,CAAC,IAAI,EAAE,MAAM,KAAK,MAAM,CAAC;IAC7C,6EAA6E;IAC7E,aAAa,CAAC,EAAE,CAAC,KAAK,EAAE,MAAM,KAC1B;QACE,gBAAgB,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;QACvC,WAAW,CAAC,EAAE,MAAM,MAAM,GAAG,IAAI,CAAC;KACnC,GACD,IAAI,GACJ,SAAS,CAAC;IACd,mEAAmE;IACnE,UAAU,CAAC,EAAE,OAAO,CAAC;IACrB,mGAAmG;IACnG,YAAY,CAAC,EAAE,WAAW,CAAC;CAC5B,CAAC;AAEF,MAAM,MAAM,kBAAkB,GAAG,iBAAiB,CAAC;AACnD,MAAM,MAAM,iBAAiB,GAAG,iBAAiB,CAAC;AAElD,MAAM,WAAW,qBAAsB,SAAQ,iBAAiB;IAC9D,IAAI,CAAC,EAAE,OAAO,CAAC;CAChB;AAED;;;;;;GAMG;AACH,wBAAgB,gBAAgB,CAC9B,IAAI,EAAE,MAAM,EACZ,OAAO,CAAC,EAAE,iBAAiB,GAC1B,MAAM,CAMR;AAED;;;GAGG;AACH,MAAM,WAAW,kBAAmB,SAAQ,iBAAiB;IAC3D,+DAA+D;IAC/D,WAAW,CAAC,EAAE,MAAM,CAAC;IACrB,6DAA6D;IAC7D,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,iHAAiH;IACjH,eAAe,CAAC,EAAE,OAAO,CAAC;CAC3B"}
|
package/dist/export_types.js.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"export_types.js","sourceRoot":"","sources":["../src/export_types.ts"],"names":[],"mappings":"AAAA,qCAAqC;
|
|
1
|
+
{"version":3,"file":"export_types.js","sourceRoot":"","sources":["../src/export_types.ts"],"names":[],"mappings":"AAAA,qCAAqC;AAwCrC;;;;;;GAMG;AACH,MAAM,UAAU,gBAAgB,CAC9B,IAAY,EACZ,OAA2B;IAE3B,IAAI,CAAC,IAAI;QAAE,OAAO,EAAE,CAAC;IACrB,IAAI,OAAO,EAAE,iBAAiB,EAAE,CAAC;QAC/B,OAAO,OAAO,CAAC,iBAAiB,CAAC,IAAI,CAAC,CAAC;IACzC,CAAC;IACD,OAAO,IAAI,CAAC;AACd,CAAC"}
|