@sciencestack-ai/tokens 0.1.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 (210) hide show
  1. package/README.md +102 -0
  2. package/dist/base/AbstractTokenNode.d.ts +100 -0
  3. package/dist/base/AbstractTokenNode.d.ts.map +1 -0
  4. package/dist/base/AbstractTokenNode.js +253 -0
  5. package/dist/base/AbstractTokenNode.js.map +1 -0
  6. package/dist/base/BaseTableFigureTokenNode.d.ts +26 -0
  7. package/dist/base/BaseTableFigureTokenNode.d.ts.map +1 -0
  8. package/dist/base/BaseTableFigureTokenNode.js +113 -0
  9. package/dist/base/BaseTableFigureTokenNode.js.map +1 -0
  10. package/dist/base/BaseTokenNode.d.ts +25 -0
  11. package/dist/base/BaseTokenNode.d.ts.map +1 -0
  12. package/dist/base/BaseTokenNode.js +137 -0
  13. package/dist/base/BaseTokenNode.js.map +1 -0
  14. package/dist/base/ITokenNodeFactory.d.ts +6 -0
  15. package/dist/base/ITokenNodeFactory.d.ts.map +1 -0
  16. package/dist/base/ITokenNodeFactory.js +2 -0
  17. package/dist/base/ITokenNodeFactory.js.map +1 -0
  18. package/dist/base/NodeRoles.d.ts +6 -0
  19. package/dist/base/NodeRoles.d.ts.map +1 -0
  20. package/dist/base/NodeRoles.js +7 -0
  21. package/dist/base/NodeRoles.js.map +1 -0
  22. package/dist/base/TokenNodeFactory.d.ts +9 -0
  23. package/dist/base/TokenNodeFactory.d.ts.map +1 -0
  24. package/dist/base/TokenNodeFactory.js +94 -0
  25. package/dist/base/TokenNodeFactory.js.map +1 -0
  26. package/dist/content/CaptionTokenNode.d.ts +23 -0
  27. package/dist/content/CaptionTokenNode.d.ts.map +1 -0
  28. package/dist/content/CaptionTokenNode.js +79 -0
  29. package/dist/content/CaptionTokenNode.js.map +1 -0
  30. package/dist/content/QuoteTokenNode.d.ts +12 -0
  31. package/dist/content/QuoteTokenNode.d.ts.map +1 -0
  32. package/dist/content/QuoteTokenNode.js +27 -0
  33. package/dist/content/QuoteTokenNode.js.map +1 -0
  34. package/dist/content/TextTokenNode.d.ts +26 -0
  35. package/dist/content/TextTokenNode.d.ts.map +1 -0
  36. package/dist/content/TextTokenNode.js +70 -0
  37. package/dist/content/TextTokenNode.js.map +1 -0
  38. package/dist/document/AbstractSectionTokenNode.d.ts +12 -0
  39. package/dist/document/AbstractSectionTokenNode.d.ts.map +1 -0
  40. package/dist/document/AbstractSectionTokenNode.js +22 -0
  41. package/dist/document/AbstractSectionTokenNode.js.map +1 -0
  42. package/dist/document/AppendixTokenNode.d.ts +12 -0
  43. package/dist/document/AppendixTokenNode.d.ts.map +1 -0
  44. package/dist/document/AppendixTokenNode.js +24 -0
  45. package/dist/document/AppendixTokenNode.js.map +1 -0
  46. package/dist/document/BaseEnvTokenNode.d.ts +20 -0
  47. package/dist/document/BaseEnvTokenNode.d.ts.map +1 -0
  48. package/dist/document/BaseEnvTokenNode.js +76 -0
  49. package/dist/document/BaseEnvTokenNode.js.map +1 -0
  50. package/dist/document/DocumentTokenNode.d.ts +11 -0
  51. package/dist/document/DocumentTokenNode.d.ts.map +1 -0
  52. package/dist/document/DocumentTokenNode.js +17 -0
  53. package/dist/document/DocumentTokenNode.js.map +1 -0
  54. package/dist/document/EnvironmentTokenNode.d.ts +12 -0
  55. package/dist/document/EnvironmentTokenNode.d.ts.map +1 -0
  56. package/dist/document/EnvironmentTokenNode.js +22 -0
  57. package/dist/document/EnvironmentTokenNode.js.map +1 -0
  58. package/dist/document/GroupTokenNode.d.ts +9 -0
  59. package/dist/document/GroupTokenNode.d.ts.map +1 -0
  60. package/dist/document/GroupTokenNode.js +16 -0
  61. package/dist/document/GroupTokenNode.js.map +1 -0
  62. package/dist/document/MathEnvTokenNode.d.ts +21 -0
  63. package/dist/document/MathEnvTokenNode.d.ts.map +1 -0
  64. package/dist/document/MathEnvTokenNode.js +91 -0
  65. package/dist/document/MathEnvTokenNode.js.map +1 -0
  66. package/dist/document/SectionTokenNode.d.ts +17 -0
  67. package/dist/document/SectionTokenNode.d.ts.map +1 -0
  68. package/dist/document/SectionTokenNode.js +66 -0
  69. package/dist/document/SectionTokenNode.js.map +1 -0
  70. package/dist/document/TitleTokenNode.d.ts +11 -0
  71. package/dist/document/TitleTokenNode.d.ts.map +1 -0
  72. package/dist/document/TitleTokenNode.js +19 -0
  73. package/dist/document/TitleTokenNode.js.map +1 -0
  74. package/dist/export_types.d.ts +46 -0
  75. package/dist/export_types.d.ts.map +1 -0
  76. package/dist/export_types.js +27 -0
  77. package/dist/export_types.js.map +1 -0
  78. package/dist/figures/DiagramTokenNode.d.ts +22 -0
  79. package/dist/figures/DiagramTokenNode.d.ts.map +1 -0
  80. package/dist/figures/DiagramTokenNode.js +62 -0
  81. package/dist/figures/DiagramTokenNode.js.map +1 -0
  82. package/dist/figures/FigureTokenNode.d.ts +11 -0
  83. package/dist/figures/FigureTokenNode.d.ts.map +1 -0
  84. package/dist/figures/FigureTokenNode.js +18 -0
  85. package/dist/figures/FigureTokenNode.js.map +1 -0
  86. package/dist/figures/IncludeGraphicsTokenNode.d.ts +20 -0
  87. package/dist/figures/IncludeGraphicsTokenNode.d.ts.map +1 -0
  88. package/dist/figures/IncludeGraphicsTokenNode.js +44 -0
  89. package/dist/figures/IncludeGraphicsTokenNode.js.map +1 -0
  90. package/dist/figures/IncludePdfTokenNode.d.ts +18 -0
  91. package/dist/figures/IncludePdfTokenNode.d.ts.map +1 -0
  92. package/dist/figures/IncludePdfTokenNode.js +38 -0
  93. package/dist/figures/IncludePdfTokenNode.js.map +1 -0
  94. package/dist/figures/SubFigureTokenNode.d.ts +11 -0
  95. package/dist/figures/SubFigureTokenNode.d.ts.map +1 -0
  96. package/dist/figures/SubFigureTokenNode.js +18 -0
  97. package/dist/figures/SubFigureTokenNode.js.map +1 -0
  98. package/dist/graph/graphTypes.d.ts +42 -0
  99. package/dist/graph/graphTypes.d.ts.map +1 -0
  100. package/dist/graph/graphTypes.js +75 -0
  101. package/dist/graph/graphTypes.js.map +1 -0
  102. package/dist/graph/index.d.ts +4 -0
  103. package/dist/graph/index.d.ts.map +1 -0
  104. package/dist/graph/index.js +3 -0
  105. package/dist/graph/index.js.map +1 -0
  106. package/dist/graph/mathColors.d.ts +11 -0
  107. package/dist/graph/mathColors.d.ts.map +1 -0
  108. package/dist/graph/mathColors.js +20 -0
  109. package/dist/graph/mathColors.js.map +1 -0
  110. package/dist/graph/mathDepGraph.d.ts +4 -0
  111. package/dist/graph/mathDepGraph.d.ts.map +1 -0
  112. package/dist/graph/mathDepGraph.js +320 -0
  113. package/dist/graph/mathDepGraph.js.map +1 -0
  114. package/dist/index.d.ts +42 -0
  115. package/dist/index.d.ts.map +1 -0
  116. package/dist/index.js +54 -0
  117. package/dist/index.js.map +1 -0
  118. package/dist/lists/ListItemTokenNode.d.ts +15 -0
  119. package/dist/lists/ListItemTokenNode.d.ts.map +1 -0
  120. package/dist/lists/ListItemTokenNode.js +91 -0
  121. package/dist/lists/ListItemTokenNode.js.map +1 -0
  122. package/dist/lists/ListTokenNode.d.ts +19 -0
  123. package/dist/lists/ListTokenNode.d.ts.map +1 -0
  124. package/dist/lists/ListTokenNode.js +52 -0
  125. package/dist/lists/ListTokenNode.js.map +1 -0
  126. package/dist/metadata/AuthorTokenNode.d.ts +12 -0
  127. package/dist/metadata/AuthorTokenNode.d.ts.map +1 -0
  128. package/dist/metadata/AuthorTokenNode.js +39 -0
  129. package/dist/metadata/AuthorTokenNode.js.map +1 -0
  130. package/dist/metadata/MetadataTokenNode.d.ts +16 -0
  131. package/dist/metadata/MetadataTokenNode.d.ts.map +1 -0
  132. package/dist/metadata/MetadataTokenNode.js +35 -0
  133. package/dist/metadata/MetadataTokenNode.js.map +1 -0
  134. package/dist/references/BibitemTokenNode.d.ts +34 -0
  135. package/dist/references/BibitemTokenNode.d.ts.map +1 -0
  136. package/dist/references/BibitemTokenNode.js +149 -0
  137. package/dist/references/BibitemTokenNode.js.map +1 -0
  138. package/dist/references/CitationTokenNode.d.ts +19 -0
  139. package/dist/references/CitationTokenNode.d.ts.map +1 -0
  140. package/dist/references/CitationTokenNode.js +56 -0
  141. package/dist/references/CitationTokenNode.js.map +1 -0
  142. package/dist/references/FootnoteTokenNode.d.ts +13 -0
  143. package/dist/references/FootnoteTokenNode.d.ts.map +1 -0
  144. package/dist/references/FootnoteTokenNode.js +24 -0
  145. package/dist/references/FootnoteTokenNode.js.map +1 -0
  146. package/dist/references/ReferenceTokenNode.d.ts +19 -0
  147. package/dist/references/ReferenceTokenNode.d.ts.map +1 -0
  148. package/dist/references/ReferenceTokenNode.js +87 -0
  149. package/dist/references/ReferenceTokenNode.js.map +1 -0
  150. package/dist/references/UrlTokenNode.d.ts +17 -0
  151. package/dist/references/UrlTokenNode.d.ts.map +1 -0
  152. package/dist/references/UrlTokenNode.js +33 -0
  153. package/dist/references/UrlTokenNode.js.map +1 -0
  154. package/dist/styles.d.ts +9 -0
  155. package/dist/styles.d.ts.map +1 -0
  156. package/dist/styles.js +122 -0
  157. package/dist/styles.js.map +1 -0
  158. package/dist/tables/SubTableTokenNode.d.ts +11 -0
  159. package/dist/tables/SubTableTokenNode.d.ts.map +1 -0
  160. package/dist/tables/SubTableTokenNode.js +18 -0
  161. package/dist/tables/SubTableTokenNode.js.map +1 -0
  162. package/dist/tables/TableTokenNode.d.ts +11 -0
  163. package/dist/tables/TableTokenNode.d.ts.map +1 -0
  164. package/dist/tables/TableTokenNode.js +18 -0
  165. package/dist/tables/TableTokenNode.js.map +1 -0
  166. package/dist/tables/TabularTokenNode.d.ts +63 -0
  167. package/dist/tables/TabularTokenNode.d.ts.map +1 -0
  168. package/dist/tables/TabularTokenNode.js +318 -0
  169. package/dist/tables/TabularTokenNode.js.map +1 -0
  170. package/dist/technical/AlgorithmTokenNode.d.ts +22 -0
  171. package/dist/technical/AlgorithmTokenNode.d.ts.map +1 -0
  172. package/dist/technical/AlgorithmTokenNode.js +54 -0
  173. package/dist/technical/AlgorithmTokenNode.js.map +1 -0
  174. package/dist/technical/CodeTokenNode.d.ts +16 -0
  175. package/dist/technical/CodeTokenNode.d.ts.map +1 -0
  176. package/dist/technical/CodeTokenNode.js +43 -0
  177. package/dist/technical/CodeTokenNode.js.map +1 -0
  178. package/dist/technical/CommandTokenNode.d.ts +14 -0
  179. package/dist/technical/CommandTokenNode.d.ts.map +1 -0
  180. package/dist/technical/CommandTokenNode.js +26 -0
  181. package/dist/technical/CommandTokenNode.js.map +1 -0
  182. package/dist/technical/EquationArrayTokenNode.d.ts +40 -0
  183. package/dist/technical/EquationArrayTokenNode.d.ts.map +1 -0
  184. package/dist/technical/EquationArrayTokenNode.js +220 -0
  185. package/dist/technical/EquationArrayTokenNode.js.map +1 -0
  186. package/dist/technical/EquationTokenNode.d.ts +19 -0
  187. package/dist/technical/EquationTokenNode.d.ts.map +1 -0
  188. package/dist/technical/EquationTokenNode.js +96 -0
  189. package/dist/technical/EquationTokenNode.js.map +1 -0
  190. package/dist/tokenProcessing.d.ts +4 -0
  191. package/dist/tokenProcessing.d.ts.map +1 -0
  192. package/dist/tokenProcessing.js +19 -0
  193. package/dist/tokenProcessing.js.map +1 -0
  194. package/dist/types.d.ts +287 -0
  195. package/dist/types.d.ts.map +1 -0
  196. package/dist/types.js +90 -0
  197. package/dist/types.js.map +1 -0
  198. package/dist/utils/arxiv.d.ts +57 -0
  199. package/dist/utils/arxiv.d.ts.map +1 -0
  200. package/dist/utils/arxiv.js +142 -0
  201. package/dist/utils/arxiv.js.map +1 -0
  202. package/dist/utils/citationConverters.d.ts +33 -0
  203. package/dist/utils/citationConverters.d.ts.map +1 -0
  204. package/dist/utils/citationConverters.js +151 -0
  205. package/dist/utils/citationConverters.js.map +1 -0
  206. package/dist/utils.d.ts +14 -0
  207. package/dist/utils.d.ts.map +1 -0
  208. package/dist/utils.js +117 -0
  209. package/dist/utils.js.map +1 -0
  210. package/package.json +44 -0
@@ -0,0 +1,137 @@
1
+ import { AbstractTokenNode } from './AbstractTokenNode';
2
+ import { NodeRoles } from './NodeRoles';
3
+ export class BaseTokenNode extends AbstractTokenNode {
4
+ tokenFactory;
5
+ constructor(token, id, tokenFactory) {
6
+ super(token, id);
7
+ this.tokenFactory = tokenFactory;
8
+ this._initializeChildren();
9
+ }
10
+ get token() {
11
+ return this._token;
12
+ }
13
+ /**
14
+ * Initialize children from token.content.
15
+ * The created child nodes will have their IDs set when added to this parent.
16
+ */
17
+ _initializeChildren() {
18
+ const token = this.token;
19
+ if (Array.isArray(token.content)) {
20
+ this._initializeBaseTokensAsChildren(token.content, NodeRoles.CONTENT);
21
+ }
22
+ }
23
+ _initializeBaseTokensAsChildren(tokens, nodeRole) {
24
+ const nodes = [];
25
+ for (let i = 0; i < tokens.length; i++) {
26
+ const t = tokens[i];
27
+ if (!t)
28
+ continue;
29
+ const childId = t.id ?? `${this.id}/${nodeRole}-${i}`;
30
+ const node = this.tokenFactory?.createNode(t, childId);
31
+ if (node) {
32
+ node.role = nodeRole;
33
+ this.addChild(node);
34
+ nodes.push(node);
35
+ }
36
+ }
37
+ return nodes;
38
+ }
39
+ getCopyContent(options) {
40
+ if (this.hasChildren() && options?.includeChildren) {
41
+ const children = this.getChildren();
42
+ return AbstractTokenNode.GetCopyContent(children, options);
43
+ }
44
+ const content = this.token.content;
45
+ if (typeof content === 'string') {
46
+ return content;
47
+ }
48
+ return '';
49
+ }
50
+ getLatexContent(options) {
51
+ // Default behavior: most tokens just return their getCopyContent
52
+ // Tokens with special LaTeX formatting (equations, styled text, etc.) will override this
53
+ if (this.hasChildren()) {
54
+ const children = this.getChildren();
55
+ return AbstractTokenNode.GetLatexContent(children, options);
56
+ }
57
+ const content = this.token.content;
58
+ if (typeof content === 'string') {
59
+ return content;
60
+ }
61
+ return '';
62
+ }
63
+ getMarkdownContent(options) {
64
+ if (this.hasChildren()) {
65
+ const children = this.getChildren();
66
+ return AbstractTokenNode.GetMarkdownContent(children, options);
67
+ }
68
+ const content = this.token.content;
69
+ if (typeof content === 'string') {
70
+ return content;
71
+ }
72
+ return '';
73
+ }
74
+ getJSONContent(options) {
75
+ const token = this.token;
76
+ if (this.hasChildren()) {
77
+ const title = this.getData(NodeRoles.TITLE);
78
+ const children = this.getData(NodeRoles.CONTENT);
79
+ let titleContent = null;
80
+ let childrenContent = null;
81
+ if (title && title.length > 0) {
82
+ if (Array.isArray(title)) {
83
+ titleContent = AbstractTokenNode.GetJSONContent(title, options);
84
+ }
85
+ else if (typeof title === 'string') {
86
+ titleContent = title;
87
+ }
88
+ }
89
+ if (children && children.length > 0) {
90
+ if (Array.isArray(children)) {
91
+ childrenContent = AbstractTokenNode.GetJSONContent(children, options);
92
+ }
93
+ else if (typeof children === 'string') {
94
+ childrenContent = children;
95
+ }
96
+ }
97
+ return {
98
+ ...token,
99
+ title: titleContent,
100
+ content: childrenContent
101
+ };
102
+ }
103
+ // Return a copy to avoid mutation
104
+ return { ...token };
105
+ }
106
+ getTooltipContent() {
107
+ if (typeof this.token.content === 'string') {
108
+ return this.token.content;
109
+ }
110
+ return null;
111
+ }
112
+ getClosestParentWithLabel() {
113
+ let current = this;
114
+ while (current !== null) {
115
+ if (current.labels.length > 0)
116
+ return current;
117
+ current = current.parent;
118
+ }
119
+ return current;
120
+ }
121
+ getData(nodeRole) {
122
+ if (this.hasChildren()) {
123
+ if (nodeRole) {
124
+ return this.getChildren().filter((child) => child.role === nodeRole);
125
+ }
126
+ return this.getChildren();
127
+ }
128
+ if (typeof this.token.content === 'string') {
129
+ return this.token.content;
130
+ }
131
+ return null;
132
+ }
133
+ getAnchorId() {
134
+ return this.token.anchorId ?? null;
135
+ }
136
+ }
137
+ //# sourceMappingURL=BaseTokenNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"BaseTokenNode.js","sourceRoot":"","sources":["../../src/base/BaseTokenNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,6 @@
1
+ import { IToken } from '../types';
2
+ import { AbstractTokenNode } from './AbstractTokenNode';
3
+ export interface ITokenNodeFactory {
4
+ createNode(token: IToken, id?: string): AbstractTokenNode | null;
5
+ }
6
+ //# sourceMappingURL=ITokenNodeFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITokenNodeFactory.d.ts","sourceRoot":"","sources":["../../src/base/ITokenNodeFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAExD,MAAM,WAAW,iBAAiB;IAChC,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI,CAAC;CAClE"}
@@ -0,0 +1,2 @@
1
+ export {};
2
+ //# sourceMappingURL=ITokenNodeFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ITokenNodeFactory.js","sourceRoot":"","sources":["../../src/base/ITokenNodeFactory.ts"],"names":[],"mappings":""}
@@ -0,0 +1,6 @@
1
+ export declare enum NodeRoles {
2
+ CONTENT = "content",
3
+ TITLE = "title",
4
+ PROOF = "proof"
5
+ }
6
+ //# sourceMappingURL=NodeRoles.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeRoles.d.ts","sourceRoot":"","sources":["../../src/base/NodeRoles.ts"],"names":[],"mappings":"AAAA,oBAAY,SAAS;IACnB,OAAO,YAAY;IACnB,KAAK,UAAU;IACf,KAAK,UAAU;CAChB"}
@@ -0,0 +1,7 @@
1
+ export var NodeRoles;
2
+ (function (NodeRoles) {
3
+ NodeRoles["CONTENT"] = "content";
4
+ NodeRoles["TITLE"] = "title";
5
+ NodeRoles["PROOF"] = "proof";
6
+ })(NodeRoles || (NodeRoles = {}));
7
+ //# sourceMappingURL=NodeRoles.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"NodeRoles.js","sourceRoot":"","sources":["../../src/base/NodeRoles.ts"],"names":[],"mappings":"AAAA,MAAM,CAAN,IAAY,SAIX;AAJD,WAAY,SAAS;IACnB,gCAAmB,CAAA;IACnB,4BAAe,CAAA;IACf,4BAAe,CAAA;AACjB,CAAC,EAJW,SAAS,KAAT,SAAS,QAIpB"}
@@ -0,0 +1,9 @@
1
+ import { TokenType, IToken } from '../types';
2
+ import { AbstractTokenNode } from '..';
3
+ import { ITokenNodeFactory } from './ITokenNodeFactory';
4
+ export declare class TokenNodeFactory implements ITokenNodeFactory {
5
+ private _excludedTokenTypes;
6
+ setExcludedTokenTypes(types: TokenType[]): void;
7
+ createNode(token: IToken, id?: string): AbstractTokenNode | null;
8
+ }
9
+ //# sourceMappingURL=TokenNodeFactory.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenNodeFactory.d.ts","sourceRoot":"","sources":["../../src/base/TokenNodeFactory.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,SAAS,EA6BT,MAAM,EAQP,MAAM,UAAU,CAAC;AAClB,OAAO,EACL,iBAAiB,EAoClB,MAAM,IAAI,CAAC;AACZ,OAAO,EAAE,iBAAiB,EAAE,MAAM,qBAAqB,CAAC;AAIxD,qBAAa,gBAAiB,YAAW,iBAAiB;IACxD,OAAO,CAAC,mBAAmB,CAAmB;IAE9C,qBAAqB,CAAC,KAAK,EAAE,SAAS,EAAE,GAAG,IAAI;IAI/C,UAAU,CAAC,KAAK,EAAE,MAAM,EAAE,EAAE,CAAC,EAAE,MAAM,GAAG,iBAAiB,GAAG,IAAI;CAmFjE"}
@@ -0,0 +1,94 @@
1
+ import { TokenType, METADATA_TOKEN_TYPES } from '../types';
2
+ import { SectionTokenNode, DocumentTokenNode, EquationTokenNode, CodeTokenNode, AlgorithmTokenNode, AlgorithmicTokenNode, TextTokenNode, QuoteTokenNode, CitationTokenNode, ReferenceTokenNode, UrlTokenNode, ListTokenNode, ListItemTokenNode, TableTokenNode, SubTableTokenNode, TabularTokenNode, CaptionTokenNode, GroupTokenNode, FootnoteTokenNode, FigureTokenNode, SubFigureTokenNode, IncludeGraphicsTokenNode, IncludePdfTokenNode, DiagramTokenNode, MathEnvTokenNode, EnvironmentTokenNode, AppendixTokenNode, CommandTokenNode, MetadataTokenNode, AbstractSectionTokenNode, TitleTokenNode, BibitemTokenNode, EquationArrayTokenNode, AuthorTokenNode } from '..';
3
+ // Define metadata token types array
4
+ export class TokenNodeFactory {
5
+ _excludedTokenTypes = [];
6
+ setExcludedTokenTypes(types) {
7
+ this._excludedTokenTypes = types;
8
+ }
9
+ createNode(token, id) {
10
+ if (!token || !token.type)
11
+ return null;
12
+ if (this._excludedTokenTypes.includes(token.type)) {
13
+ return null;
14
+ }
15
+ if (METADATA_TOKEN_TYPES.includes(token.type)) {
16
+ return new MetadataTokenNode(token, id, this);
17
+ }
18
+ else {
19
+ switch (token.type) {
20
+ case TokenType.DOCUMENT:
21
+ return new DocumentTokenNode(token, id, this);
22
+ case TokenType.SECTION:
23
+ return new SectionTokenNode(token, id, this);
24
+ case TokenType.TITLE:
25
+ return new TitleTokenNode(token, id, this);
26
+ case TokenType.AUTHOR:
27
+ return new AuthorTokenNode(token, id, this);
28
+ case TokenType.ABSTRACT:
29
+ return new AbstractSectionTokenNode(token, id, this);
30
+ case TokenType.EQUATION:
31
+ return new EquationTokenNode(token, id, this);
32
+ case TokenType.EQUATION_ARRAY:
33
+ return new EquationArrayTokenNode(token, id, this);
34
+ case TokenType.CODE:
35
+ return new CodeTokenNode(token, id, this);
36
+ case TokenType.ALGORITHM:
37
+ return new AlgorithmTokenNode(token, id, this);
38
+ case TokenType.ALGORITHMIC:
39
+ return new AlgorithmicTokenNode(token, id, this);
40
+ case TokenType.TEXT:
41
+ return new TextTokenNode(token, id, this);
42
+ case TokenType.QUOTE:
43
+ return new QuoteTokenNode(token, id, this);
44
+ case TokenType.CITATION:
45
+ return new CitationTokenNode(token, id, this);
46
+ case TokenType.REF:
47
+ return new ReferenceTokenNode(token, id, this);
48
+ case TokenType.URL:
49
+ return new UrlTokenNode(token, id, this);
50
+ case TokenType.LIST:
51
+ return new ListTokenNode(token, id, this);
52
+ case TokenType.ITEM:
53
+ return new ListItemTokenNode(token, id, this);
54
+ case TokenType.TABLE:
55
+ return new TableTokenNode(token, id, this);
56
+ case TokenType.SUBTABLE:
57
+ return new SubTableTokenNode(token, id, this);
58
+ case TokenType.TABULAR:
59
+ return new TabularTokenNode(token, id, this);
60
+ case TokenType.CAPTION:
61
+ return new CaptionTokenNode(token, id, this);
62
+ case TokenType.GROUP:
63
+ return new GroupTokenNode(token, id, this);
64
+ case TokenType.FOOTNOTE:
65
+ return new FootnoteTokenNode(token, id, this);
66
+ case TokenType.FIGURE:
67
+ return new FigureTokenNode(token, id, this);
68
+ case TokenType.SUBFIGURE:
69
+ return new SubFigureTokenNode(token, id, this);
70
+ case TokenType.INCLUDEGRAPHICS:
71
+ return new IncludeGraphicsTokenNode(token, id, this);
72
+ case TokenType.INCLUDEPDF:
73
+ return new IncludePdfTokenNode(token, id, this);
74
+ case TokenType.DIAGRAM:
75
+ return new DiagramTokenNode(token, id, this);
76
+ case TokenType.MATH_ENV:
77
+ return new MathEnvTokenNode(token, id, this);
78
+ case TokenType.ENVIRONMENT:
79
+ return new EnvironmentTokenNode(token, id, this);
80
+ case TokenType.APPENDIX:
81
+ return new AppendixTokenNode(token, id, this);
82
+ case TokenType.COMMAND:
83
+ return new CommandTokenNode(token, id, this);
84
+ case TokenType.BIBITEM:
85
+ return new BibitemTokenNode(token, id, this);
86
+ default:
87
+ console.warn(`Unhandled token type: ${token.type}`);
88
+ return null;
89
+ // return new BaseTokenNode(token, id);
90
+ }
91
+ }
92
+ }
93
+ }
94
+ //# sourceMappingURL=TokenNodeFactory.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TokenNodeFactory.js","sourceRoot":"","sources":["../../src/base/TokenNodeFactory.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,23 @@
1
+ import { CaptionToken } from '../types';
2
+ import { BaseTokenNode } from '../base/BaseTokenNode';
3
+ import { ITokenNodeFactory } from '../base/ITokenNodeFactory';
4
+ import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
5
+ import { CopyContentOptions, LatexExportOptions } from '../export_types';
6
+ import { AbstractTokenNode } from '../base/AbstractTokenNode';
7
+ import { NodeRoles } from '../base/NodeRoles';
8
+ export declare class CaptionTokenNode extends BaseTokenNode {
9
+ protected tokenFactory?: ITokenNodeFactory | undefined;
10
+ constructor(token: CaptionToken, id?: string, tokenFactory?: ITokenNodeFactory | undefined);
11
+ get token(): CaptionToken;
12
+ get counter_name(): string | undefined;
13
+ get numbering(): string | undefined;
14
+ getData(nodeRole?: NodeRoles): AbstractTokenNode[];
15
+ getCopyContent(options?: CopyContentOptions): string;
16
+ getLatexContent(options?: LatexExportOptions): string;
17
+ getParentFigureOrTable(): BaseTableFigureTokenNode | null;
18
+ isParentSubContainer(): boolean;
19
+ getMarkdownContent(options?: any): string;
20
+ getFullNumbering(): string | null;
21
+ getReferenceText(): string | null;
22
+ }
23
+ //# sourceMappingURL=CaptionTokenNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionTokenNode.d.ts","sourceRoot":"","sources":["../../src/content/CaptionTokenNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,YAAY,EAAa,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,wBAAwB,EAAE,MAAM,kCAAkC,CAAC;AAC5E,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,MAAM,iBAAiB,CAAC;AACzE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,SAAS,EAAE,MAAM,mBAAmB,CAAC;AAE9C,qBAAa,gBAAiB,SAAQ,aAAa;IAI/C,SAAS,CAAC,YAAY,CAAC,EAAE,iBAAiB;gBAF1C,KAAK,EAAE,YAAY,EACnB,EAAE,CAAC,EAAE,MAAM,EACD,YAAY,CAAC,EAAE,iBAAiB,YAAA;IAQ5C,IAAI,KAAK,IAAI,YAAY,CAExB;IAED,IAAI,YAAY,uBAEf;IAED,IAAI,SAAS,uBAEZ;IAED,OAAO,CAAC,QAAQ,CAAC,EAAE,SAAS,GAAG,iBAAiB,EAAE;IAIlD,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAKpD,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAKrD,sBAAsB,IAAI,wBAAwB,GAAG,IAAI;IAWzD,oBAAoB,IAAI,OAAO;IAM/B,kBAAkB,CAAC,OAAO,CAAC,EAAE,GAAG,GAAG,MAAM;IAKzC,gBAAgB,IAAI,MAAM,GAAG,IAAI;IAajC,gBAAgB,IAAI,MAAM,GAAG,IAAI;CAYlC"}
@@ -0,0 +1,79 @@
1
+ import { TokenType } from '../types';
2
+ import { BaseTokenNode } from '../base/BaseTokenNode';
3
+ import { BaseTableFigureTokenNode } from '../base/BaseTableFigureTokenNode';
4
+ export class CaptionTokenNode extends BaseTokenNode {
5
+ tokenFactory;
6
+ constructor(token, id, tokenFactory) {
7
+ super(token, id, tokenFactory);
8
+ this.tokenFactory = tokenFactory;
9
+ // reset styles
10
+ this.token.styles = [];
11
+ }
12
+ get token() {
13
+ return this._token;
14
+ }
15
+ get counter_name() {
16
+ return this.token.counter_name;
17
+ }
18
+ get numbering() {
19
+ return this.token.numbering;
20
+ }
21
+ getData(nodeRole) {
22
+ return (super.getData(nodeRole) ?? []);
23
+ }
24
+ getCopyContent(options) {
25
+ const content = super.getCopyContent(options);
26
+ return content + '\n';
27
+ }
28
+ getLatexContent(options) {
29
+ const content = super.getLatexContent(options);
30
+ return `\\caption{${content}}`;
31
+ }
32
+ getParentFigureOrTable() {
33
+ let parent = this.parent;
34
+ while (parent) {
35
+ if (parent instanceof BaseTableFigureTokenNode) {
36
+ return parent;
37
+ }
38
+ parent = parent.parent;
39
+ }
40
+ return null;
41
+ }
42
+ isParentSubContainer() {
43
+ const parent = this.getParentFigureOrTable();
44
+ if (!parent)
45
+ return false;
46
+ return parent.type === TokenType.SUBTABLE || parent.type === TokenType.SUBFIGURE;
47
+ }
48
+ getMarkdownContent(options) {
49
+ const content = super.getMarkdownContent(options);
50
+ return `Caption: *${content}*`;
51
+ }
52
+ getFullNumbering() {
53
+ if (!this.numbering)
54
+ return null;
55
+ const parent = this.getParentFigureOrTable();
56
+ if (!parent)
57
+ return this.numbering;
58
+ // check if there is even higher parent e.g. table above subtable
59
+ const topParent = parent.findParentMatching((node) => node instanceof BaseTableFigureTokenNode);
60
+ if (!topParent || !topParent.numbering)
61
+ return this.numbering;
62
+ return topParent.numbering + '.' + this.numbering;
63
+ }
64
+ getReferenceText() {
65
+ const numbering = this.getFullNumbering();
66
+ if (!numbering)
67
+ return null;
68
+ let name = this.counter_name;
69
+ if (!name) {
70
+ const parent = this.getParentFigureOrTable();
71
+ if (!parent)
72
+ return null;
73
+ name = parent.getEnvironmentName();
74
+ }
75
+ name = name.charAt(0).toUpperCase() + name.slice(1);
76
+ return `${name} ${numbering}`;
77
+ }
78
+ }
79
+ //# sourceMappingURL=CaptionTokenNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"CaptionTokenNode.js","sourceRoot":"","sources":["../../src/content/CaptionTokenNode.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,12 @@
1
+ import { QuoteToken } from '../types';
2
+ import { BaseTokenNode } from '../base/BaseTokenNode';
3
+ import { ITokenNodeFactory } from '../base/ITokenNodeFactory';
4
+ import { CopyContentOptions, LatexExportOptions, MarkdownExportOptions } from '../export_types';
5
+ export declare class QuoteTokenNode extends BaseTokenNode {
6
+ protected tokenFactory?: ITokenNodeFactory | undefined;
7
+ constructor(token: QuoteToken, id?: string, tokenFactory?: ITokenNodeFactory | undefined);
8
+ getCopyContent(options?: CopyContentOptions): string;
9
+ getLatexContent(options?: LatexExportOptions): string;
10
+ getMarkdownContent(options?: MarkdownExportOptions): string;
11
+ }
12
+ //# sourceMappingURL=QuoteTokenNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteTokenNode.d.ts","sourceRoot":"","sources":["../../src/content/QuoteTokenNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,UAAU,CAAC;AACtC,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAEhG,qBAAa,cAAe,SAAQ,aAAa;IAI7C,SAAS,CAAC,YAAY,CAAC,EAAE,iBAAiB;gBAF1C,KAAK,EAAE,UAAU,EACjB,EAAE,CAAC,EAAE,MAAM,EACD,YAAY,CAAC,EAAE,iBAAiB,YAAA;IAK5C,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAMpD,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAOrD,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM;CAS5D"}
@@ -0,0 +1,27 @@
1
+ import { BaseTokenNode } from '../base/BaseTokenNode';
2
+ export class QuoteTokenNode extends BaseTokenNode {
3
+ tokenFactory;
4
+ constructor(token, id, tokenFactory) {
5
+ super(token, id, tokenFactory);
6
+ this.tokenFactory = tokenFactory;
7
+ }
8
+ getCopyContent(options) {
9
+ const content = super.getCopyContent(options);
10
+ return '`\n' + content + '\n`';
11
+ }
12
+ getLatexContent(options) {
13
+ const content = super.getLatexContent(options);
14
+ const prefix = '\\begin{quote}';
15
+ const suffix = '\\end{quote}';
16
+ return `${prefix}\n${content}\n${suffix}\n`;
17
+ }
18
+ getMarkdownContent(options) {
19
+ const content = super.getMarkdownContent(options);
20
+ const anchorId = this.getAnchorId();
21
+ const anchor = anchorId ? `<a id="${anchorId}"></a>\n\n` : '';
22
+ // Convert content to blockquote format with line breaks preserved
23
+ const quotedContent = content.replace(/\n/g, ' \n> ');
24
+ return `${anchor}> ${quotedContent}`;
25
+ }
26
+ }
27
+ //# sourceMappingURL=QuoteTokenNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"QuoteTokenNode.js","sourceRoot":"","sources":["../../src/content/QuoteTokenNode.ts"],"names":[],"mappings":"AACA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAItD,MAAM,OAAO,cAAe,SAAQ,aAAa;IAInC;IAHZ,YACE,KAAiB,EACjB,EAAW,EACD,YAAgC;QAE1C,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;QAFrB,iBAAY,GAAZ,YAAY,CAAoB;IAG5C,CAAC;IAED,cAAc,CAAC,OAA4B;QACzC,MAAM,OAAO,GAAG,KAAK,CAAC,cAAc,CAAC,OAAO,CAAC,CAAC;QAE9C,OAAO,KAAK,GAAG,OAAO,GAAG,KAAK,CAAC;IACjC,CAAC;IAED,eAAe,CAAC,OAA4B;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAC/C,MAAM,MAAM,GAAG,gBAAgB,CAAC;QAChC,MAAM,MAAM,GAAG,cAAc,CAAC;QAC9B,OAAO,GAAG,MAAM,KAAK,OAAO,KAAK,MAAM,IAAI,CAAC;IAC9C,CAAC;IAED,kBAAkB,CAAC,OAA+B;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,kEAAkE;QAClE,MAAM,aAAa,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,CAAC;QACvD,OAAO,GAAG,MAAM,KAAK,aAAa,EAAE,CAAC;IACvC,CAAC;CACF"}
@@ -0,0 +1,26 @@
1
+ import { TextToken } from '../types';
2
+ import { CopyContentOptions, LatexExportOptions, MarkdownExportOptions } from '../export_types';
3
+ import { BaseTokenNode } from '../base/BaseTokenNode';
4
+ import { ITokenNodeFactory } from '../base/ITokenNodeFactory';
5
+ export declare class TextTokenNode extends BaseTokenNode {
6
+ protected tokenFactory?: ITokenNodeFactory | undefined;
7
+ constructor(token: TextToken, id?: string, tokenFactory?: ITokenNodeFactory | undefined);
8
+ get token(): TextToken;
9
+ getData(): string;
10
+ /**
11
+ * Gets raw text content with optional character-based offset selection.
12
+ * Returns unescaped, unstyled text - used for text selection and annotations.
13
+ * @param options Optional startOffset/endOffset for partial extraction
14
+ * @returns The raw text content
15
+ */
16
+ getCopyContent(options?: CopyContentOptions): string;
17
+ /**
18
+ * Gets LaTeX-formatted content with proper escaping and styling.
19
+ * Always returns full content (no partial extraction).
20
+ * @param options Options for LaTeX export (currently unused)
21
+ * @returns The LaTeX-formatted text content
22
+ */
23
+ getLatexContent(options?: LatexExportOptions): string;
24
+ getMarkdownContent(options?: MarkdownExportOptions): string;
25
+ }
26
+ //# sourceMappingURL=TextTokenNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextTokenNode.d.ts","sourceRoot":"","sources":["../../src/content/TextTokenNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,SAAS,EAAE,MAAM,UAAU,CAAC;AACrC,OAAO,EAAE,kBAAkB,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAChG,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AACtD,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAI9D,qBAAa,aAAc,SAAQ,aAAa;IAI5C,SAAS,CAAC,YAAY,CAAC,EAAE,iBAAiB;gBAF1C,KAAK,EAAE,SAAS,EAChB,EAAE,CAAC,EAAE,MAAM,EACD,YAAY,CAAC,EAAE,iBAAiB,YAAA;IAM5C,IAAI,KAAK,IAAI,SAAS,CAErB;IAED,OAAO;IAIP;;;;;OAKG;IACH,cAAc,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAkBpD;;;;;OAKG;IACH,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAerD,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM;CAa5D"}
@@ -0,0 +1,70 @@
1
+ import { BaseTokenNode } from '../base/BaseTokenNode';
2
+ import { escapeLatexSpecialChars } from '../utils';
3
+ import { wrapStylesToLatex, wrapStylesToMarkdown } from '../styles';
4
+ export class TextTokenNode extends BaseTokenNode {
5
+ tokenFactory;
6
+ constructor(token, id, tokenFactory) {
7
+ super(token, id, tokenFactory);
8
+ this.tokenFactory = tokenFactory;
9
+ }
10
+ // Getters
11
+ get token() {
12
+ return this._token;
13
+ }
14
+ getData() {
15
+ return this.token.content;
16
+ }
17
+ /**
18
+ * Gets raw text content with optional character-based offset selection.
19
+ * Returns unescaped, unstyled text - used for text selection and annotations.
20
+ * @param options Optional startOffset/endOffset for partial extraction
21
+ * @returns The raw text content
22
+ */
23
+ getCopyContent(options) {
24
+ const rawStr = this.getData();
25
+ const N = rawStr.length;
26
+ if (N === 0) {
27
+ return '';
28
+ }
29
+ // Default to full string if no offsets provided
30
+ const startOffset = options?.startOffset ?? 0;
31
+ const endOffset = options?.endOffset ?? N;
32
+ // Ensure offsets are within bounds
33
+ const start = Math.max(0, Math.min(startOffset, N));
34
+ const end = Math.max(0, Math.min(endOffset, N));
35
+ return rawStr.substring(start, end);
36
+ }
37
+ /**
38
+ * Gets LaTeX-formatted content with proper escaping and styling.
39
+ * Always returns full content (no partial extraction).
40
+ * @param options Options for LaTeX export (currently unused)
41
+ * @returns The LaTeX-formatted text content
42
+ */
43
+ getLatexContent(options) {
44
+ const rawStr = this.getData();
45
+ if (rawStr.length === 0) {
46
+ return '';
47
+ }
48
+ let content = escapeLatexSpecialChars(rawStr);
49
+ // Replace newlines with double newlines for latex
50
+ content = content.replace(/\n/g, '\n\n');
51
+ if (this.styles) {
52
+ content = wrapStylesToLatex(content, this.styles);
53
+ }
54
+ return content;
55
+ }
56
+ getMarkdownContent(options) {
57
+ const rawStr = this.getData();
58
+ const N = rawStr.length;
59
+ if (N === 0) {
60
+ return '';
61
+ }
62
+ // Replace newlines with double newlines for markdown
63
+ let content = rawStr.replace(/\n/g, '\n\n');
64
+ // Apply markdown styling
65
+ if (this.styles)
66
+ content = wrapStylesToMarkdown(content, this.styles);
67
+ return content;
68
+ }
69
+ }
70
+ //# sourceMappingURL=TextTokenNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"TextTokenNode.js","sourceRoot":"","sources":["../../src/content/TextTokenNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,aAAa,EAAE,MAAM,uBAAuB,CAAC;AAEtD,OAAO,EAAE,uBAAuB,EAAE,MAAM,UAAU,CAAC;AACnD,OAAO,EAAE,iBAAiB,EAAE,oBAAoB,EAAE,MAAM,WAAW,CAAC;AAEpE,MAAM,OAAO,aAAc,SAAQ,aAAa;IAIlC;IAHZ,YACE,KAAgB,EAChB,EAAW,EACD,YAAgC;QAE1C,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;QAFrB,iBAAY,GAAZ,YAAY,CAAoB;IAG5C,CAAC;IAED,UAAU;IACV,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAmB,CAAC;IAClC,CAAC;IAED,OAAO;QACL,OAAO,IAAI,CAAC,KAAK,CAAC,OAAO,CAAC;IAC5B,CAAC;IAED;;;;;OAKG;IACH,cAAc,CAAC,OAA4B;QACzC,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,gDAAgD;QAChD,MAAM,WAAW,GAAG,OAAO,EAAE,WAAW,IAAI,CAAC,CAAC;QAC9C,MAAM,SAAS,GAAG,OAAO,EAAE,SAAS,IAAI,CAAC,CAAC;QAE1C,mCAAmC;QACnC,MAAM,KAAK,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,WAAW,EAAE,CAAC,CAAC,CAAC,CAAC;QACpD,MAAM,GAAG,GAAG,IAAI,CAAC,GAAG,CAAC,CAAC,EAAE,IAAI,CAAC,GAAG,CAAC,SAAS,EAAE,CAAC,CAAC,CAAC,CAAC;QAEhD,OAAO,MAAM,CAAC,SAAS,CAAC,KAAK,EAAE,GAAG,CAAC,CAAC;IACtC,CAAC;IAED;;;;;OAKG;IACH,eAAe,CAAC,OAA4B;QAC1C,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,IAAI,MAAM,CAAC,MAAM,KAAK,CAAC,EAAE,CAAC;YACxB,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,IAAI,OAAO,GAAG,uBAAuB,CAAC,MAAM,CAAC,CAAC;QAC9C,kDAAkD;QAClD,OAAO,GAAG,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QACzC,IAAI,IAAI,CAAC,MAAM,EAAE,CAAC;YAChB,OAAO,GAAG,iBAAiB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACpD,CAAC;QACD,OAAO,OAAO,CAAC;IACjB,CAAC;IAED,kBAAkB,CAAC,OAA+B;QAChD,MAAM,MAAM,GAAG,IAAI,CAAC,OAAO,EAAE,CAAC;QAC9B,MAAM,CAAC,GAAG,MAAM,CAAC,MAAM,CAAC;QACxB,IAAI,CAAC,KAAK,CAAC,EAAE,CAAC;YACZ,OAAO,EAAE,CAAC;QACZ,CAAC;QAED,qDAAqD;QACrD,IAAI,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC,KAAK,EAAE,MAAM,CAAC,CAAC;QAC5C,yBAAyB;QACzB,IAAI,IAAI,CAAC,MAAM;YAAE,OAAO,GAAG,oBAAoB,CAAC,OAAO,EAAE,IAAI,CAAC,MAAM,CAAC,CAAC;QACtE,OAAO,OAAO,CAAC;IACjB,CAAC;CACF"}
@@ -0,0 +1,12 @@
1
+ import { AbstractToken } from '../types';
2
+ import { ITokenNodeFactory } from '../base/ITokenNodeFactory';
3
+ import { BaseEnvTokenNode } from './BaseEnvTokenNode';
4
+ import { LatexExportOptions, MarkdownExportOptions } from '../export_types';
5
+ export declare class AbstractSectionTokenNode extends BaseEnvTokenNode {
6
+ protected tokenFactory?: ITokenNodeFactory | undefined;
7
+ constructor(token: AbstractToken, id?: string, tokenFactory?: ITokenNodeFactory | undefined);
8
+ get token(): AbstractToken;
9
+ getLatexContent(options?: LatexExportOptions): string;
10
+ getMarkdownContent(options?: MarkdownExportOptions): string;
11
+ }
12
+ //# sourceMappingURL=AbstractSectionTokenNode.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSectionTokenNode.d.ts","sourceRoot":"","sources":["../../src/document/AbstractSectionTokenNode.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,aAAa,EAA2B,MAAM,UAAU,CAAC;AAClE,OAAO,EAAE,iBAAiB,EAAE,MAAM,2BAA2B,CAAC;AAC9D,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AACtD,OAAO,EAAE,kBAAkB,EAAE,qBAAqB,EAAE,MAAM,iBAAiB,CAAC;AAE5E,qBAAa,wBAAyB,SAAQ,gBAAgB;IAI1D,SAAS,CAAC,YAAY,CAAC,EAAE,iBAAiB;gBAF1C,KAAK,EAAE,aAAa,EACpB,EAAE,CAAC,EAAE,MAAM,EACD,YAAY,CAAC,EAAE,iBAAiB,YAAA;IAK5C,IAAI,KAAK,IAAI,aAAa,CAEzB;IAED,eAAe,CAAC,OAAO,CAAC,EAAE,kBAAkB,GAAG,MAAM;IAMrD,kBAAkB,CAAC,OAAO,CAAC,EAAE,qBAAqB,GAAG,MAAM;CAO5D"}
@@ -0,0 +1,22 @@
1
+ import { BaseEnvTokenNode } from './BaseEnvTokenNode';
2
+ export class AbstractSectionTokenNode extends BaseEnvTokenNode {
3
+ tokenFactory;
4
+ constructor(token, id, tokenFactory) {
5
+ super(token, id, tokenFactory);
6
+ this.tokenFactory = tokenFactory;
7
+ }
8
+ get token() {
9
+ return this._token;
10
+ }
11
+ getLatexContent(options) {
12
+ const content = super.getLatexContent(options);
13
+ return `\\begin{abstract}\n${content}\n\\end{abstract}`;
14
+ }
15
+ getMarkdownContent(options) {
16
+ const content = super.getMarkdownContent(options);
17
+ const anchorId = this.getAnchorId();
18
+ const anchor = anchorId ? `<a id="${anchorId}"></a>\n\n` : '';
19
+ return `${anchor}## Abstract\n\n> ${content.replace(/\n/g, ' \n> ')}`;
20
+ }
21
+ }
22
+ //# sourceMappingURL=AbstractSectionTokenNode.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"AbstractSectionTokenNode.js","sourceRoot":"","sources":["../../src/document/AbstractSectionTokenNode.ts"],"names":[],"mappings":"AAEA,OAAO,EAAE,gBAAgB,EAAE,MAAM,oBAAoB,CAAC;AAGtD,MAAM,OAAO,wBAAyB,SAAQ,gBAAgB;IAIhD;IAHZ,YACE,KAAoB,EACpB,EAAW,EACD,YAAgC;QAE1C,KAAK,CAAC,KAAK,EAAE,EAAE,EAAE,YAAY,CAAC,CAAC;QAFrB,iBAAY,GAAZ,YAAY,CAAoB;IAG5C,CAAC;IAED,IAAI,KAAK;QACP,OAAO,IAAI,CAAC,MAAuB,CAAC;IACtC,CAAC;IAED,eAAe,CAAC,OAA4B;QAC1C,MAAM,OAAO,GAAG,KAAK,CAAC,eAAe,CAAC,OAAO,CAAC,CAAC;QAE/C,OAAO,sBAAsB,OAAO,mBAAmB,CAAC;IAC1D,CAAC;IAED,kBAAkB,CAAC,OAA+B;QAChD,MAAM,OAAO,GAAG,KAAK,CAAC,kBAAkB,CAAC,OAAO,CAAC,CAAC;QAClD,MAAM,QAAQ,GAAG,IAAI,CAAC,WAAW,EAAE,CAAC;QACpC,MAAM,MAAM,GAAG,QAAQ,CAAC,CAAC,CAAC,UAAU,QAAQ,YAAY,CAAC,CAAC,CAAC,EAAE,CAAC;QAE9D,OAAO,GAAG,MAAM,oBAAoB,OAAO,CAAC,OAAO,CAAC,KAAK,EAAE,QAAQ,CAAC,EAAE,CAAC;IACzE,CAAC;CACF"}