@knpkv/confluence-to-markdown 0.5.0 → 0.6.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 (108) hide show
  1. package/CHANGELOG.md +22 -0
  2. package/README.md +45 -10
  3. package/dist/ConfluenceAuth.d.ts.map +1 -1
  4. package/dist/ConfluenceAuth.js +12 -22
  5. package/dist/ConfluenceAuth.js.map +1 -1
  6. package/dist/ConfluenceClient.d.ts +13 -3
  7. package/dist/ConfluenceClient.d.ts.map +1 -1
  8. package/dist/ConfluenceClient.js +34 -70
  9. package/dist/ConfluenceClient.js.map +1 -1
  10. package/dist/ConfluenceError.d.ts +12 -12
  11. package/dist/GitError.d.ts +5 -5
  12. package/dist/GitService.d.ts.map +1 -1
  13. package/dist/GitService.js +0 -3
  14. package/dist/GitService.js.map +1 -1
  15. package/dist/SchemaConverterError.d.ts +3 -3
  16. package/dist/ast/BlockNode.d.ts +48 -33
  17. package/dist/ast/BlockNode.d.ts.map +1 -1
  18. package/dist/ast/BlockNode.js +11 -2
  19. package/dist/ast/BlockNode.js.map +1 -1
  20. package/dist/ast/Document.d.ts +30 -2
  21. package/dist/ast/Document.d.ts.map +1 -1
  22. package/dist/parsers/ConfluenceParser.d.ts.map +1 -1
  23. package/dist/parsers/ConfluenceParser.js +7 -12
  24. package/dist/parsers/ConfluenceParser.js.map +1 -1
  25. package/dist/parsers/MarkdownParser.js +8 -117
  26. package/dist/parsers/MarkdownParser.js.map +1 -1
  27. package/dist/parsers/preprocessing/ConfluencePreprocessing.d.ts +23 -0
  28. package/dist/parsers/preprocessing/ConfluencePreprocessing.d.ts.map +1 -0
  29. package/dist/parsers/preprocessing/ConfluencePreprocessing.js +323 -0
  30. package/dist/parsers/preprocessing/ConfluencePreprocessing.js.map +1 -0
  31. package/dist/parsers/preprocessing/index.d.ts +7 -0
  32. package/dist/parsers/preprocessing/index.d.ts.map +1 -0
  33. package/dist/parsers/preprocessing/index.js +7 -0
  34. package/dist/parsers/preprocessing/index.js.map +1 -0
  35. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +29 -0
  36. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +1 -1
  37. package/dist/schemas/preprocessing/ConfluencePreprocessor.js +5 -15
  38. package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +1 -1
  39. package/dist/serializers/ConfluenceSerializer.js +0 -9
  40. package/dist/serializers/ConfluenceSerializer.js.map +1 -1
  41. package/dist/serializers/MarkdownSerializer.js +9 -49
  42. package/dist/serializers/MarkdownSerializer.js.map +1 -1
  43. package/package.json +35 -26
  44. package/src/AdfPlaceholders.ts +266 -0
  45. package/src/AdfSchemaValidator.ts +67 -0
  46. package/src/AdfWalker.ts +511 -0
  47. package/src/AtlaskitTransformers.ts +72 -0
  48. package/src/ConfluenceClient.ts +4 -4
  49. package/src/ConfluenceError.ts +65 -3
  50. package/src/MarkdownConverter.ts +106 -139
  51. package/src/Schemas.ts +4 -4
  52. package/src/SyncEngine.ts +130 -83
  53. package/src/atlaskit-adf-schema.d.ts +3 -0
  54. package/src/commands/clone.ts +8 -1
  55. package/src/commands/layers.ts +11 -4
  56. package/src/index.ts +3 -18
  57. package/test/AdfPlaceholders.test.ts +295 -0
  58. package/test/AdfSchemaValidator.test.ts +34 -0
  59. package/test/AdfWalker.test.ts +530 -0
  60. package/test/AtlaskitTransformers.test.ts +25 -0
  61. package/test/MarkdownConverter.test.ts +120 -105
  62. package/test/RoundTrip.test.ts +266 -0
  63. package/LICENSE +0 -21
  64. package/src/SchemaConverterError.ts +0 -108
  65. package/src/ast/BlockNode.ts +0 -469
  66. package/src/ast/Document.ts +0 -90
  67. package/src/ast/InlineNode.ts +0 -323
  68. package/src/ast/MacroNode.ts +0 -245
  69. package/src/ast/index.ts +0 -83
  70. package/src/parsers/ConfluenceParser.ts +0 -956
  71. package/src/parsers/MarkdownParser.ts +0 -1338
  72. package/src/parsers/index.ts +0 -8
  73. package/src/schemas/ConfluenceSchema.ts +0 -56
  74. package/src/schemas/ConversionSchema.ts +0 -318
  75. package/src/schemas/MarkdownSchema.ts +0 -56
  76. package/src/schemas/hast/HastFromHtml.ts +0 -153
  77. package/src/schemas/hast/HastSchema.ts +0 -274
  78. package/src/schemas/hast/index.ts +0 -35
  79. package/src/schemas/index.ts +0 -20
  80. package/src/schemas/mdast/MdastFromMarkdown.ts +0 -118
  81. package/src/schemas/mdast/MdastSchema.ts +0 -566
  82. package/src/schemas/mdast/index.ts +0 -59
  83. package/src/schemas/mdast/mdastToString.ts +0 -102
  84. package/src/schemas/nodes/block/BlockSchema.ts +0 -773
  85. package/src/schemas/nodes/block/index.ts +0 -13
  86. package/src/schemas/nodes/index.ts +0 -20
  87. package/src/schemas/nodes/inline/InlineSchema.ts +0 -523
  88. package/src/schemas/nodes/inline/index.ts +0 -14
  89. package/src/schemas/nodes/macro/MacroSchema.ts +0 -226
  90. package/src/schemas/nodes/macro/index.ts +0 -6
  91. package/src/schemas/preprocessing/ConfluencePreprocessor.ts +0 -455
  92. package/src/schemas/preprocessing/index.ts +0 -8
  93. package/src/serializers/ConfluenceSerializer.ts +0 -737
  94. package/src/serializers/MarkdownSerializer.ts +0 -543
  95. package/src/serializers/index.ts +0 -8
  96. package/test/ast/BlockNode.test.ts +0 -265
  97. package/test/ast/Document.test.ts +0 -126
  98. package/test/ast/InlineNode.test.ts +0 -161
  99. package/test/fixtures/integration-test.html.fixture +0 -103
  100. package/test/fixtures/integration-test.md.expected +0 -257
  101. package/test/parsers/ConfluenceParser.test.ts +0 -452
  102. package/test/schemas/ConfluencePreprocessor.test.ts +0 -180
  103. package/test/schemas/ConversionSchema.test.ts +0 -159
  104. package/test/schemas/HastSchema.test.ts +0 -138
  105. package/test/schemas/MdastSchema.test.ts +0 -145
  106. package/test/schemas/nodes/block/BlockSchema.test.ts +0 -173
  107. package/test/schemas/nodes/inline/InlineSchema.test.ts +0 -198
  108. package/test/schemas/nodes/macro/MacroSchema.test.ts +0 -142
@@ -0,0 +1,323 @@
1
+ /**
2
+ * Preprocessing functions for Confluence HTML.
3
+ *
4
+ * Converts Confluence-specific markup (ac: tags, macros, layouts) to standard HTML
5
+ * before parsing with rehype.
6
+ *
7
+ * @module
8
+ */
9
+ import * as Effect from "effect/Effect";
10
+ import { PanelTypes } from "../../ast/MacroNode.js";
11
+ /**
12
+ * Pre-process Confluence macros into parseable HTML.
13
+ *
14
+ * @category Preprocessing
15
+ */
16
+ export const preprocessConfluenceMacros = (html) => Effect.gen(function* () {
17
+ let result = html;
18
+ // Process layouts FIRST - before any other preprocessing to preserve raw cell content
19
+ result = preprocessLayouts(result);
20
+ let iterations = 0;
21
+ const maxIterations = 100;
22
+ // Process structured macros iteratively
23
+ while (iterations < maxIterations) {
24
+ const macroStart = result.indexOf("<ac:structured-macro");
25
+ if (macroStart === -1)
26
+ break;
27
+ // First, find the end of the opening tag to check if self-closing
28
+ const openingTagEnd = result.indexOf(">", macroStart);
29
+ if (openingTagEnd === -1)
30
+ break;
31
+ // Check if self-closing (ends with />)
32
+ const isSelfClosing = result[openingTagEnd - 1] === "/";
33
+ let endPos;
34
+ if (isSelfClosing) {
35
+ // Self-closing macro: <ac:structured-macro ... />
36
+ endPos = openingTagEnd + 1;
37
+ }
38
+ else {
39
+ // Regular macro with body: find matching closing tag
40
+ let depth = 1;
41
+ let pos = openingTagEnd + 1;
42
+ endPos = -1;
43
+ while (pos < result.length && depth > 0) {
44
+ if (result.slice(pos, pos + 20) === "<ac:structured-macro") {
45
+ // Check if this nested opening is also self-closing
46
+ const nestedEnd = result.indexOf(">", pos);
47
+ if (nestedEnd !== -1 && result[nestedEnd - 1] === "/") {
48
+ // Self-closing nested macro - don't change depth
49
+ pos = nestedEnd + 1;
50
+ }
51
+ else {
52
+ depth++;
53
+ pos += 20;
54
+ }
55
+ }
56
+ else if (result.slice(pos, pos + 21) === "</ac:structured-macro") {
57
+ depth--;
58
+ if (depth === 0) {
59
+ endPos = result.indexOf(">", pos) + 1;
60
+ }
61
+ pos += 21;
62
+ }
63
+ else {
64
+ pos++;
65
+ }
66
+ }
67
+ if (endPos === -1)
68
+ break;
69
+ }
70
+ const macroContent = result.slice(macroStart, endPos);
71
+ const replacement = yield* processMacro(macroContent);
72
+ result = result.slice(0, macroStart) + replacement + result.slice(endPos);
73
+ iterations++;
74
+ }
75
+ // Process task lists BEFORE stripping ac: tags
76
+ result = preprocessTaskLists(result);
77
+ // Process images with attachments BEFORE stripping
78
+ result = preprocessImages(result);
79
+ // Process emoticons BEFORE stripping
80
+ result = preprocessEmoticons(result);
81
+ // Process user mentions BEFORE stripping
82
+ result = preprocessUserMentions(result);
83
+ // Process ADF extensions (decision lists) BEFORE stripping
84
+ result = preprocessAdfExtensions(result);
85
+ // Remove remaining ac/ri tags
86
+ result = result
87
+ .replace(/<ac:parameter[^>]{0,1000}>[^<]{0,10000}<\/ac:parameter>/gi, "")
88
+ .replace(/<\/?ac:[a-z-]{1,50}[^>]{0,1000}>/gi, "")
89
+ .replace(/<\/?ri:[a-z-]{1,50}[^>]{0,1000}\/?>/gi, "");
90
+ return result;
91
+ });
92
+ /**
93
+ * Preprocess task lists.
94
+ * <ac:task-list><ac:task><ac:task-id>43</ac:task-id><ac:task-status>incomplete</ac:task-status><ac:task-body>text</ac:task-body></ac:task></ac:task-list>
95
+ * -> <ul data-macro="task-list"><li data-task-id="43" data-task-status="incomplete">text</li></ul>
96
+ */
97
+ const preprocessTaskLists = (html) => {
98
+ // Process individual tasks - use a more flexible approach
99
+ let result = html;
100
+ const taskRegex = /<ac:task>([\s\S]*?)<\/ac:task>/gi;
101
+ result = result.replace(taskRegex, (_, taskContent) => {
102
+ const idMatch = taskContent.match(/<ac:task-id>([^<]*)<\/ac:task-id>/);
103
+ const uuidMatch = taskContent.match(/<ac:task-uuid>([^<]*)<\/ac:task-uuid>/);
104
+ const statusMatch = taskContent.match(/<ac:task-status>([^<]*)<\/ac:task-status>/);
105
+ const bodyMatch = taskContent.match(/<ac:task-body>([\s\S]*?)<\/ac:task-body>/);
106
+ const id = idMatch?.[1] ?? "";
107
+ const uuid = uuidMatch?.[1] ?? "";
108
+ const status = statusMatch?.[1] ?? "incomplete";
109
+ const body = bodyMatch?.[1] ?? "";
110
+ // Strip inner HTML tags from body
111
+ const cleanBody = body.replace(/<[^>]+>/g, "").trim();
112
+ return `<li data-task-id="${id}" data-task-uuid="${uuid}" data-task-status="${status}">${cleanBody}</li>`;
113
+ });
114
+ // Wrap task-list
115
+ result = result.replace(/<ac:task-list[^>]*>/gi, "<ul data-macro=\"task-list\">");
116
+ result = result.replace(/<\/ac:task-list>/gi, "</ul>");
117
+ return result;
118
+ };
119
+ /**
120
+ * Preprocess images with attachments.
121
+ * <ac:image ac:align="center" ac:width="250"><ri:attachment ri:filename="foo.svg"/></ac:image>
122
+ * -> <img data-attachment="foo.svg" data-align="center" data-width="250">
123
+ */
124
+ const preprocessImages = (html) => {
125
+ return html.replace(/<ac:image([^>]*)>[\s\S]*?<ri:attachment([^>]*)\/>[\s\S]*?<\/ac:image>/gi, (_, imageAttrs, attachmentAttrs) => {
126
+ const filename = attachmentAttrs.match(/ri:filename="([^"]*)"/)?.[1] ?? "";
127
+ const align = imageAttrs.match(/ac:align="([^"]*)"/)?.[1] ?? "";
128
+ const width = imageAttrs.match(/ac:width="([^"]*)"/)?.[1] ?? "";
129
+ const alt = imageAttrs.match(/ac:alt="([^"]*)"/)?.[1] ?? "";
130
+ const attrs = [
131
+ `data-attachment="${escapeHtml(filename)}"`,
132
+ align && `data-align="${align}"`,
133
+ width && `data-width="${width}"`,
134
+ alt && `alt="${escapeHtml(alt)}"`
135
+ ].filter(Boolean).join(" ");
136
+ return `<img ${attrs}>`;
137
+ });
138
+ };
139
+ /**
140
+ * Preprocess emoticons.
141
+ * <ac:emoticon ac:emoji-shortname=":grinning:" ac:emoji-id="1f600" ac:emoji-fallback="😀"/>
142
+ * -> <span data-emoji=":grinning:" data-emoji-id="1f600">😀</span>
143
+ */
144
+ const preprocessEmoticons = (html) => {
145
+ return html.replace(/<ac:emoticon([^>]*)\/?>/gi, (_, attrs) => {
146
+ const shortname = attrs.match(/ac:emoji-shortname="([^"]*)"/)?.[1] ?? "";
147
+ const emojiId = attrs.match(/ac:emoji-id="([^"]*)"/)?.[1] ?? "";
148
+ const fallback = attrs.match(/ac:emoji-fallback="([^"]*)"/)?.[1] ?? "";
149
+ return `<span data-emoji="${escapeHtml(shortname)}" data-emoji-id="${emojiId}">${fallback}</span>`;
150
+ });
151
+ };
152
+ /**
153
+ * Preprocess user mentions.
154
+ * <ac:link><ri:user ri:account-id="557058:..."/></ac:link>
155
+ * -> <span data-user-mention="557058:..."></span>
156
+ */
157
+ const preprocessUserMentions = (html) => {
158
+ return html.replace(/<ac:link>\s*<ri:user([^>]*)\/?>\s*<\/ac:link>/gi, (_, attrs) => {
159
+ const accountId = attrs.match(/ri:account-id="([^"]*)"/)?.[1] ?? "";
160
+ return `<span data-user-mention="${escapeHtml(accountId)}"></span>`;
161
+ });
162
+ };
163
+ /**
164
+ * Preprocess ADF extensions (decision lists).
165
+ * Extracts decision items and encodes them for roundtrip.
166
+ */
167
+ const preprocessAdfExtensions = (html) => {
168
+ // Match ADF extension blocks
169
+ return html.replace(/<ac:adf-extension>([\s\S]*?)<\/ac:adf-extension>/gi, (_, content) => {
170
+ // Check if it's a decision list - extract items directly from the content
171
+ // since decision-item nodes are nested inside decision-list
172
+ if (content.includes("type=\"decision-list\"")) {
173
+ const items = [];
174
+ // Match decision items - use greedy match to get full content
175
+ const itemRegex = /<ac:adf-node\s+type="decision-item">([\s\S]*?)<\/ac:adf-node>/gi;
176
+ let itemMatch;
177
+ while ((itemMatch = itemRegex.exec(content)) !== null) {
178
+ const itemContent = itemMatch[1] ?? "";
179
+ const localIdMatch = itemContent.match(/<ac:adf-attribute\s+key="local-id">([^<]*)<\/ac:adf-attribute>/);
180
+ const stateMatch = itemContent.match(/<ac:adf-attribute\s+key="state">([^<]*)<\/ac:adf-attribute>/);
181
+ const textMatch = itemContent.match(/<ac:adf-content>([^<]*)<\/ac:adf-content>/);
182
+ items.push({
183
+ localId: localIdMatch?.[1] ?? "",
184
+ state: stateMatch?.[1] ?? "UNDECIDED",
185
+ content: textMatch?.[1] ?? ""
186
+ });
187
+ }
188
+ if (items.length > 0) {
189
+ // Encode as comment for roundtrip
190
+ const encoded = items.map((item) => `${encodeURIComponent(item.localId)};${encodeURIComponent(item.state)};${encodeURIComponent(item.content)}`).join("|");
191
+ return `<!--cf:decision:${encoded}-->`;
192
+ }
193
+ }
194
+ // Check if it's an ADF panel (note, info, warning, etc.)
195
+ if (content.includes("type=\"panel\"")) {
196
+ const panelTypeMatch = content.match(/<ac:adf-attribute\s+key="panel-type">([^<]*)<\/ac:adf-attribute>/);
197
+ const panelType = panelTypeMatch?.[1] ?? "info";
198
+ const contentMatch = content.match(/<ac:adf-content>([\s\S]*?)<\/ac:adf-content>/);
199
+ const innerContent = contentMatch?.[1] ?? "";
200
+ // Convert to standard panel div format
201
+ return `<div data-macro="${panelType}" data-title="">${innerContent}</div>`;
202
+ }
203
+ // Unknown ADF extension - use fallback if available
204
+ const fallbackMatch = content.match(/<ac:adf-fallback>([\s\S]*?)<\/ac:adf-fallback>/);
205
+ if (fallbackMatch) {
206
+ return fallbackMatch[1] ?? "";
207
+ }
208
+ return "";
209
+ });
210
+ };
211
+ /**
212
+ * Preprocess layouts.
213
+ * Strips Confluence layout wrappers but preserves structure metadata for roundtrip.
214
+ *
215
+ * Strategy:
216
+ * 1. Insert cell boundary markers (<!--cf:cell:N-->) to track which content belongs to which cell
217
+ * 2. Insert section start markers (<!--cf:section:type;breakoutMode;breakoutWidth;cellCount-->)
218
+ * 3. Insert layout start/end markers
219
+ * 4. Let content parse normally - markdown remains readable
220
+ *
221
+ * Note: We wrap markers in <div> to ensure they're at root level after parsing.
222
+ */
223
+ const preprocessLayouts = (html) => {
224
+ // Match entire ac:layout blocks
225
+ return html.replace(/<ac:layout>([\s\S]*?)<\/ac:layout>/gi, (_, layoutContent) => {
226
+ // Use divs to ensure markers are at root level after parsing
227
+ let result = "<div data-cf-marker><!--cf:layout-start--></div>";
228
+ let sectionIndex = 0;
229
+ // Extract layout sections
230
+ const sectionRegex = /<ac:layout-section([^>]*)>([\s\S]*?)<\/ac:layout-section>/gi;
231
+ let sectionMatch;
232
+ while ((sectionMatch = sectionRegex.exec(layoutContent)) !== null) {
233
+ const sectionAttrs = sectionMatch[1] ?? "";
234
+ const sectionContent = sectionMatch[2] ?? "";
235
+ // Extract section type
236
+ const typeMatch = sectionAttrs.match(/ac:type="([^"]*)"/);
237
+ const sectionType = typeMatch?.[1] ?? "fixed-width";
238
+ // Extract breakout attributes
239
+ const breakoutModeMatch = sectionAttrs.match(/ac:breakout-mode="([^"]*)"/);
240
+ const breakoutWidthMatch = sectionAttrs.match(/ac:breakout-width="([^"]*)"/);
241
+ const breakoutMode = breakoutModeMatch?.[1] ?? "";
242
+ const breakoutWidth = breakoutWidthMatch?.[1] ?? "";
243
+ // Count and extract cells
244
+ const cellContents = [];
245
+ const cellRegex = /<ac:layout-cell[^>]*>([\s\S]*?)<\/ac:layout-cell>/gi;
246
+ let cellMatch;
247
+ while ((cellMatch = cellRegex.exec(sectionContent)) !== null) {
248
+ cellContents.push(cellMatch[1] ?? "");
249
+ }
250
+ // Add section marker with metadata (wrapped in div)
251
+ result += `<div data-cf-marker><!--cf:section:${sectionIndex};${encodeURIComponent(sectionType)};${encodeURIComponent(breakoutMode)};${encodeURIComponent(breakoutWidth)};${cellContents.length}--></div>`;
252
+ // Add cell markers and content (wrapped in divs)
253
+ cellContents.forEach((cellContent, cellIndex) => {
254
+ result += `<div data-cf-marker><!--cf:cell:${sectionIndex};${cellIndex}--></div>${cellContent}`;
255
+ });
256
+ result += `<div data-cf-marker><!--cf:section-end:${sectionIndex}--></div>`;
257
+ sectionIndex++;
258
+ }
259
+ result += "<div data-cf-marker><!--cf:layout-end--></div>";
260
+ return result;
261
+ });
262
+ };
263
+ /**
264
+ * Process a single Confluence macro to HTML.
265
+ */
266
+ const processMacro = (macroContent) => Effect.succeed((() => {
267
+ // Extract macro name
268
+ const nameMatch = macroContent.match(/ac:name="([^"]+)"/);
269
+ const macroName = nameMatch?.[1] ?? "";
270
+ // Extract plain-text body (for code macros)
271
+ const plainBodyStart = macroContent.indexOf("<ac:plain-text-body><![CDATA[");
272
+ const plainBodyEnd = macroContent.indexOf("]]></ac:plain-text-body>");
273
+ if (plainBodyStart !== -1 && plainBodyEnd !== -1) {
274
+ const content = macroContent.slice(plainBodyStart + 29, plainBodyEnd);
275
+ const langMatch = macroContent.match(/ac:name="code".*?<ac:parameter[^>]*ac:name="language"[^>]*>([^<]+)/);
276
+ const language = langMatch?.[1] ?? "";
277
+ return `<pre data-macro="code" data-language="${language}"><code>${escapeHtml(content)}</code></pre>`;
278
+ }
279
+ // Extract rich-text body
280
+ const richBodyStart = macroContent.indexOf("<ac:rich-text-body>");
281
+ const richBodyEnd = macroContent.indexOf("</ac:rich-text-body>");
282
+ if (richBodyStart !== -1 && richBodyEnd !== -1) {
283
+ const content = macroContent.slice(richBodyStart + 19, richBodyEnd);
284
+ // Info/warning/note/panel panels
285
+ if (PanelTypes.includes(macroName)) {
286
+ const titleMatch = macroContent.match(/<ac:parameter[^>]*ac:name="title"[^>]*>([^<]+)/);
287
+ const title = titleMatch?.[1] ?? "";
288
+ return `<div data-macro="${macroName}" data-title="${escapeHtml(title)}">${content}</div>`;
289
+ }
290
+ // Expand macro
291
+ if (macroName === "expand") {
292
+ const titleMatch = macroContent.match(/<ac:parameter[^>]*ac:name="title"[^>]*>([^<]+)/);
293
+ const title = titleMatch?.[1] ?? "";
294
+ return `<details data-macro="expand"><summary>${escapeHtml(title)}</summary>${content}</details>`;
295
+ }
296
+ return content;
297
+ }
298
+ // TOC macro
299
+ if (macroName === "toc") {
300
+ const minMatch = macroContent.match(/<ac:parameter[^>]*ac:name="minLevel"[^>]*>(\d+)/);
301
+ const maxMatch = macroContent.match(/<ac:parameter[^>]*ac:name="maxLevel"[^>]*>(\d+)/);
302
+ return `<nav data-macro="toc" data-min="${minMatch?.[1] ?? ""}" data-max="${maxMatch?.[1] ?? ""}"></nav>`;
303
+ }
304
+ // Status macro
305
+ if (macroName === "status") {
306
+ const colorMatch = macroContent.match(/<ac:parameter[^>]*ac:name="colour"[^>]*>([^<]+)/);
307
+ const titleMatch = macroContent.match(/<ac:parameter[^>]*ac:name="title"[^>]*>([^<]+)/);
308
+ return `<span data-macro="status" data-color="${colorMatch?.[1] ?? ""}">${escapeHtml(titleMatch?.[1] ?? "")}</span>`;
309
+ }
310
+ // Unknown macro - preserve as unsupported
311
+ return `<div data-unsupported-macro="${macroName}">${macroContent}</div>`;
312
+ })());
313
+ /**
314
+ * Escape HTML special characters.
315
+ *
316
+ * @category Utilities
317
+ */
318
+ export const escapeHtml = (str) => str
319
+ .replace(/&/g, "&amp;")
320
+ .replace(/</g, "&lt;")
321
+ .replace(/>/g, "&gt;")
322
+ .replace(/"/g, "&quot;");
323
+ //# sourceMappingURL=ConfluencePreprocessing.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"ConfluencePreprocessing.js","sourceRoot":"","sources":["../../../src/parsers/preprocessing/ConfluencePreprocessing.ts"],"names":[],"mappings":"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"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Preprocessing utilities for Confluence HTML.
3
+ *
4
+ * @module
5
+ */
6
+ export { escapeHtml, preprocessConfluenceMacros } from "./ConfluencePreprocessing.js";
7
+ //# sourceMappingURL=index.d.ts.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../../../src/parsers/preprocessing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA"}
@@ -0,0 +1,7 @@
1
+ /**
2
+ * Preprocessing utilities for Confluence HTML.
3
+ *
4
+ * @module
5
+ */
6
+ export { escapeHtml, preprocessConfluenceMacros } from "./ConfluencePreprocessing.js";
7
+ //# sourceMappingURL=index.js.map
@@ -0,0 +1 @@
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../../../src/parsers/preprocessing/index.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,EAAE,UAAU,EAAE,0BAA0B,EAAE,MAAM,8BAA8B,CAAA"}
@@ -20,5 +20,34 @@ export type PreprocessedHtml = string & Brand.Brand<"PreprocessedHtml">;
20
20
  * @category Schemas
21
21
  */
22
22
  export declare const PreprocessedHtmlSchema: Schema.brand<typeof Schema.String, "PreprocessedHtml">;
23
+ /**
24
+ * Transform raw Confluence HTML to preprocessed HTML.
25
+ *
26
+ * Applies the following transformations:
27
+ * - Layout section extraction with markers
28
+ * - Structured macro expansion (code, info panels, expand, TOC, status)
29
+ * - Task list normalization
30
+ * - Image attachment processing
31
+ * - Emoticon conversion
32
+ * - User mention extraction
33
+ * - ADF extension handling
34
+ * - Namespace stripping (ac:, ri: tags)
35
+ *
36
+ * @example
37
+ * ```typescript
38
+ * import { PreprocessedHtmlFromConfluence } from "@knpkv/confluence-to-markdown/schemas/preprocessing"
39
+ * import * as Schema from "effect/Schema"
40
+ * import { Effect } from "effect"
41
+ *
42
+ * const program = Effect.gen(function* () {
43
+ * const html = yield* Schema.decode(PreprocessedHtmlFromConfluence)(
44
+ * '<ac:structured-macro ac:name="info"><ac:rich-text-body>Content</ac:rich-text-body></ac:structured-macro>'
45
+ * )
46
+ * // html contains: <div data-macro="info">Content</div>
47
+ * })
48
+ * ```
49
+ *
50
+ * @category Schemas
51
+ */
23
52
  export declare const PreprocessedHtmlFromConfluence: Schema.transformOrFail<typeof Schema.String, Schema.brand<typeof Schema.String, "PreprocessedHtml">, never>;
24
53
  //# sourceMappingURL=ConfluencePreprocessor.d.ts.map
@@ -1 +1 @@
1
- {"version":3,"file":"ConfluencePreprocessor.d.ts","sourceRoot":"","sources":["../../../src/schemas/preprocessing/ConfluencePreprocessor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAI1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAEvE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wDAElC,CAAA;AAiCD,eAAO,MAAM,8BAA8B,6GAsB1C,CAAA"}
1
+ {"version":3,"file":"ConfluencePreprocessor.d.ts","sourceRoot":"","sources":["../../../src/schemas/preprocessing/ConfluencePreprocessor.ts"],"names":[],"mappings":"AAAA;;;;;;;GAOG;AACH,OAAO,KAAK,KAAK,KAAK,MAAM,cAAc,CAAA;AAG1C,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAMvC;;;;GAIG;AACH,MAAM,MAAM,gBAAgB,GAAG,MAAM,GAAG,KAAK,CAAC,KAAK,CAAC,kBAAkB,CAAC,CAAA;AAEvE;;;;GAIG;AACH,eAAO,MAAM,sBAAsB,wDAElC,CAAA;AAED;;;;;;;;;;;;;;;;;;;;;;;;;;;;GA4BG;AACH,eAAO,MAAM,8BAA8B,6GAsB1C,CAAA"}
@@ -1,5 +1,4 @@
1
1
  import * as Effect from "effect/Effect";
2
- import { pipe } from "effect/Function";
3
2
  import * as ParseResult from "effect/ParseResult";
4
3
  import * as Schema from "effect/Schema";
5
4
  import { PanelTypes } from "../../ast/MacroNode.js";
@@ -40,17 +39,16 @@ export const PreprocessedHtmlSchema = Schema.String.pipe(Schema.brand("Preproces
40
39
  *
41
40
  * @category Schemas
42
41
  */
43
- const makePreprocessedHtml = Schema.decodeSync(PreprocessedHtmlSchema);
44
42
  export const PreprocessedHtmlFromConfluence = Schema.transformOrFail(Schema.String, PreprocessedHtmlSchema, {
45
43
  strict: true,
46
44
  decode: (html, _options, ast) => Effect.gen(function* () {
47
45
  if (html.length > MAX_HTML_SIZE) {
48
46
  return yield* Effect.fail(new ParseResult.Type(ast, html, `HTML input too large: ${html.length} bytes (max ${MAX_HTML_SIZE})`));
49
47
  }
50
- return pipe(html, preprocessConfluenceHtml, makePreprocessedHtml);
48
+ return preprocessConfluenceHtml(html);
51
49
  }),
52
- encode: (preprocessed) =>
53
- // Identity - branded string is already a string
50
+ encode: (preprocessed, _options, _ast) =>
51
+ // Identity - we can't reverse preprocessing
54
52
  Effect.succeed(preprocessed)
55
53
  });
56
54
  /**
@@ -221,16 +219,8 @@ const processSingleMacro = (macroContent) => {
221
219
  const titleMatch = macroContent.match(/<ac:parameter[^>]*ac:name="title"[^>]*>([^<]+)/);
222
220
  return `<span data-macro="status" data-color="${colorMatch?.[1] ?? ""}">${escapeHtml(titleMatch?.[1] ?? "")}</span>`;
223
221
  }
224
- // view-file macro: render as a visible anchor pointing at the attachment.
225
- if (macroName === "view-file") {
226
- const filenameMatch = macroContent.match(/ri:filename="([^"]+)"/);
227
- const filename = filenameMatch?.[1] ?? "";
228
- return `<a data-macro="view-file" href="attachment:${escapeHtml(filename)}">${escapeHtml(filename)}</a>`;
229
- }
230
- // Unknown macro - preserve as unsupported. The body is HTML-escaped so the
231
- // next iteration of processStructuredMacros doesn't re-match the same
232
- // <ac:structured-macro> tag and loop forever.
233
- return `<div data-unsupported-macro="${macroName}">${escapeHtml(macroContent)}</div>`;
222
+ // Unknown macro - preserve as unsupported
223
+ return `<div data-unsupported-macro="${macroName}">${macroContent}</div>`;
234
224
  };
235
225
  /**
236
226
  * Preprocess task lists.
@@ -1 +1 @@
1
- {"version":3,"file":"ConfluencePreprocessor.js","sourceRoot":"","sources":["../../../src/schemas/preprocessing/ConfluencePreprocessor.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"ConfluencePreprocessor.js","sourceRoot":"","sources":["../../../src/schemas/preprocessing/ConfluencePreprocessor.ts"],"names":[],"mappings":"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"}
@@ -326,8 +326,6 @@ const serializeSimpleBlock = (node) => Effect.gen(function* () {
326
326
  const unsupported = node;
327
327
  return unsupported.rawHtml || unsupported.rawMarkdown || "";
328
328
  }
329
- case "List":
330
- return yield* serializeList(node);
331
329
  default:
332
330
  return "";
333
331
  }
@@ -483,13 +481,6 @@ const serializeInlineNode = (node) => Effect.gen(function* () {
483
481
  case "InlineCode":
484
482
  return `<code>${escapeHtml(node.value)}</code>`;
485
483
  case "Link": {
486
- // Round-trip view-file macro: a Link with href="attachment:FILENAME"
487
- // came from a Confluence ac:structured-macro name="view-file".
488
- const attachmentMatch = node.href.match(/^attachment:(.+)$/);
489
- if (attachmentMatch) {
490
- const filename = attachmentMatch[1] ?? "";
491
- return `<ac:structured-macro ac:name="view-file"><ac:parameter ac:name="name"><ri:attachment ri:filename="${escapeHtml(filename)}"/></ac:parameter></ac:structured-macro>`;
492
- }
493
484
  const content = yield* serializeInlineNodes(node.children);
494
485
  const title = node.title ? ` title="${escapeHtml(node.title)}"` : "";
495
486
  return `<a href="${escapeHtml(node.href)}"${title}>${content}</a>`;