@knpkv/confluence-to-markdown 0.5.0 → 0.7.0

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (395) hide show
  1. package/CHANGELOG.md +61 -0
  2. package/README.md +58 -14
  3. package/dist/AdfPlaceholders.d.ts +42 -0
  4. package/dist/AdfPlaceholders.d.ts.map +1 -0
  5. package/dist/AdfPlaceholders.js +547 -0
  6. package/dist/AdfPlaceholders.js.map +1 -0
  7. package/dist/AdfSchemaValidator.d.ts +37 -0
  8. package/dist/AdfSchemaValidator.d.ts.map +1 -0
  9. package/dist/AdfSchemaValidator.js +37 -0
  10. package/dist/AdfSchemaValidator.js.map +1 -0
  11. package/dist/AdfWalker.d.ts +39 -0
  12. package/dist/AdfWalker.d.ts.map +1 -0
  13. package/dist/AdfWalker.js +527 -0
  14. package/dist/AdfWalker.js.map +1 -0
  15. package/dist/AtlaskitTransformers.d.ts +35 -0
  16. package/dist/AtlaskitTransformers.d.ts.map +1 -0
  17. package/dist/AtlaskitTransformers.js +48 -0
  18. package/dist/AtlaskitTransformers.js.map +1 -0
  19. package/dist/Brand.d.ts +6 -6
  20. package/dist/Brand.d.ts.map +1 -1
  21. package/dist/Brand.js +8 -6
  22. package/dist/Brand.js.map +1 -1
  23. package/dist/ConfluenceAuth.d.ts +4 -4
  24. package/dist/ConfluenceAuth.d.ts.map +1 -1
  25. package/dist/ConfluenceAuth.js +15 -27
  26. package/dist/ConfluenceAuth.js.map +1 -1
  27. package/dist/ConfluenceClient.d.ts +4 -4
  28. package/dist/ConfluenceClient.d.ts.map +1 -1
  29. package/dist/ConfluenceClient.js +21 -14
  30. package/dist/ConfluenceClient.js.map +1 -1
  31. package/dist/ConfluenceConfig.d.ts +3 -3
  32. package/dist/ConfluenceConfig.d.ts.map +1 -1
  33. package/dist/ConfluenceConfig.js +13 -11
  34. package/dist/ConfluenceConfig.js.map +1 -1
  35. package/dist/ConfluenceError.d.ts +56 -4
  36. package/dist/ConfluenceError.d.ts.map +1 -1
  37. package/dist/ConfluenceError.js +30 -1
  38. package/dist/ConfluenceError.js.map +1 -1
  39. package/dist/GitService.d.ts +11 -3
  40. package/dist/GitService.d.ts.map +1 -1
  41. package/dist/GitService.js +19 -27
  42. package/dist/GitService.js.map +1 -1
  43. package/dist/LocalFileSystem.d.ts +3 -3
  44. package/dist/LocalFileSystem.d.ts.map +1 -1
  45. package/dist/LocalFileSystem.js +6 -6
  46. package/dist/LocalFileSystem.js.map +1 -1
  47. package/dist/MarkdownConverter.d.ts +16 -65
  48. package/dist/MarkdownConverter.d.ts.map +1 -1
  49. package/dist/MarkdownConverter.js +64 -85
  50. package/dist/MarkdownConverter.js.map +1 -1
  51. package/dist/Schemas.d.ts +128 -141
  52. package/dist/Schemas.d.ts.map +1 -1
  53. package/dist/Schemas.js +21 -23
  54. package/dist/Schemas.js.map +1 -1
  55. package/dist/SyncEngine.d.ts +8 -5
  56. package/dist/SyncEngine.d.ts.map +1 -1
  57. package/dist/SyncEngine.js +189 -113
  58. package/dist/SyncEngine.js.map +1 -1
  59. package/dist/bin.js +23 -35
  60. package/dist/bin.js.map +1 -1
  61. package/dist/commands/auth.d.ts +2 -14
  62. package/dist/commands/auth.d.ts.map +1 -1
  63. package/dist/commands/auth.js +11 -16
  64. package/dist/commands/auth.js.map +1 -1
  65. package/dist/commands/clone.d.ts +4 -6
  66. package/dist/commands/clone.d.ts.map +1 -1
  67. package/dist/commands/clone.js +34 -32
  68. package/dist/commands/clone.js.map +1 -1
  69. package/dist/commands/delete.d.ts +2 -10
  70. package/dist/commands/delete.d.ts.map +1 -1
  71. package/dist/commands/delete.js +5 -4
  72. package/dist/commands/delete.js.map +1 -1
  73. package/dist/commands/errorHandler.d.ts +2 -1
  74. package/dist/commands/errorHandler.d.ts.map +1 -1
  75. package/dist/commands/errorHandler.js +22 -15
  76. package/dist/commands/errorHandler.js.map +1 -1
  77. package/dist/commands/fetch.d.ts +27 -0
  78. package/dist/commands/fetch.d.ts.map +1 -0
  79. package/dist/commands/fetch.js +48 -0
  80. package/dist/commands/fetch.js.map +1 -0
  81. package/dist/commands/git.d.ts +7 -10
  82. package/dist/commands/git.d.ts.map +1 -1
  83. package/dist/commands/git.js +6 -6
  84. package/dist/commands/git.js.map +1 -1
  85. package/dist/commands/index.d.ts +1 -0
  86. package/dist/commands/index.d.ts.map +1 -1
  87. package/dist/commands/index.js +1 -0
  88. package/dist/commands/index.js.map +1 -1
  89. package/dist/commands/layers.d.ts +10 -9
  90. package/dist/commands/layers.d.ts.map +1 -1
  91. package/dist/commands/layers.js +41 -30
  92. package/dist/commands/layers.js.map +1 -1
  93. package/dist/commands/new.d.ts +2 -6
  94. package/dist/commands/new.d.ts.map +1 -1
  95. package/dist/commands/new.js +5 -4
  96. package/dist/commands/new.js.map +1 -1
  97. package/dist/commands/pageInput.d.ts +19 -0
  98. package/dist/commands/pageInput.d.ts.map +1 -0
  99. package/dist/commands/pageInput.js +68 -0
  100. package/dist/commands/pageInput.js.map +1 -0
  101. package/dist/commands/root.d.ts +8 -0
  102. package/dist/commands/root.d.ts.map +1 -0
  103. package/dist/commands/root.js +29 -0
  104. package/dist/commands/root.js.map +1 -0
  105. package/dist/commands/sync.d.ts +6 -9
  106. package/dist/commands/sync.d.ts.map +1 -1
  107. package/dist/commands/sync.js +5 -6
  108. package/dist/commands/sync.js.map +1 -1
  109. package/dist/index.d.ts +3 -8
  110. package/dist/index.d.ts.map +1 -1
  111. package/dist/index.js +2 -13
  112. package/dist/index.js.map +1 -1
  113. package/dist/internal/NodeLayers.d.ts.map +1 -1
  114. package/dist/internal/NodeLayers.js +1 -2
  115. package/dist/internal/NodeLayers.js.map +1 -1
  116. package/dist/internal/adfMetadata.d.ts +30 -0
  117. package/dist/internal/adfMetadata.d.ts.map +1 -0
  118. package/dist/internal/adfMetadata.js +126 -0
  119. package/dist/internal/adfMetadata.js.map +1 -0
  120. package/dist/internal/cleanMarkdown.d.ts +5 -0
  121. package/dist/internal/cleanMarkdown.d.ts.map +1 -0
  122. package/dist/internal/cleanMarkdown.js +13 -0
  123. package/dist/internal/cleanMarkdown.js.map +1 -0
  124. package/dist/internal/frontmatter.d.ts.map +1 -1
  125. package/dist/internal/frontmatter.js +41 -8
  126. package/dist/internal/frontmatter.js.map +1 -1
  127. package/dist/internal/gitCommands.d.ts +9 -3
  128. package/dist/internal/gitCommands.d.ts.map +1 -1
  129. package/dist/internal/gitCommands.js +18 -9
  130. package/dist/internal/gitCommands.js.map +1 -1
  131. package/dist/internal/hashUtils.d.ts +1 -1
  132. package/dist/internal/hashUtils.d.ts.map +1 -1
  133. package/dist/internal/hashUtils.js +1 -1
  134. package/dist/internal/hashUtils.js.map +1 -1
  135. package/dist/internal/oauthServer.d.ts +10 -5
  136. package/dist/internal/oauthServer.d.ts.map +1 -1
  137. package/dist/internal/oauthServer.js +19 -40
  138. package/dist/internal/oauthServer.js.map +1 -1
  139. package/dist/internal/pathUtils.d.ts +1 -1
  140. package/dist/internal/pathUtils.d.ts.map +1 -1
  141. package/dist/internal/pathUtils.js +1 -1
  142. package/dist/internal/pathUtils.js.map +1 -1
  143. package/dist/internal/process.d.ts +15 -0
  144. package/dist/internal/process.d.ts.map +1 -0
  145. package/dist/internal/process.js +10 -0
  146. package/dist/internal/process.js.map +1 -0
  147. package/dist/internal/stdio.d.ts +6 -0
  148. package/dist/internal/stdio.d.ts.map +1 -0
  149. package/dist/internal/stdio.js +15 -0
  150. package/dist/internal/stdio.js.map +1 -0
  151. package/dist/internal/tokenStorage.d.ts +3 -13
  152. package/dist/internal/tokenStorage.d.ts.map +1 -1
  153. package/dist/internal/tokenStorage.js +26 -24
  154. package/dist/internal/tokenStorage.js.map +1 -1
  155. package/dist/internal/userCache.d.ts +1 -1
  156. package/dist/internal/userCache.d.ts.map +1 -1
  157. package/dist/internal/userCache.js +1 -1
  158. package/dist/internal/userCache.js.map +1 -1
  159. package/package.json +29 -20
  160. package/skills/confluence/SKILL.md +143 -0
  161. package/skills/confluence/agents/openai.yaml +4 -0
  162. package/src/AdfPlaceholders.ts +563 -0
  163. package/src/AdfSchemaValidator.ts +65 -0
  164. package/src/AdfWalker.ts +591 -0
  165. package/src/AtlaskitTransformers.ts +70 -0
  166. package/src/Brand.ts +11 -16
  167. package/src/ConfluenceAuth.ts +22 -30
  168. package/src/ConfluenceClient.ts +28 -24
  169. package/src/ConfluenceConfig.ts +14 -14
  170. package/src/ConfluenceError.ts +65 -3
  171. package/src/GitService.ts +39 -49
  172. package/src/LocalFileSystem.ts +7 -9
  173. package/src/MarkdownConverter.ts +108 -143
  174. package/src/Schemas.ts +17 -16
  175. package/src/SyncEngine.ts +272 -127
  176. package/src/atlaskit-adf-schema.d.ts +3 -0
  177. package/src/bin.ts +30 -56
  178. package/src/commands/auth.ts +21 -18
  179. package/src/commands/clone.ts +46 -38
  180. package/src/commands/delete.ts +5 -4
  181. package/src/commands/errorHandler.ts +25 -18
  182. package/src/commands/fetch.ts +90 -0
  183. package/src/commands/git.ts +6 -6
  184. package/src/commands/index.ts +1 -0
  185. package/src/commands/layers.ts +64 -37
  186. package/src/commands/new.ts +5 -4
  187. package/src/commands/pageInput.ts +103 -0
  188. package/src/commands/root.ts +59 -0
  189. package/src/commands/sync.ts +7 -6
  190. package/src/index.ts +3 -18
  191. package/src/internal/NodeLayers.ts +1 -2
  192. package/src/internal/adfMetadata.ts +145 -0
  193. package/src/internal/cleanMarkdown.ts +15 -0
  194. package/src/internal/frontmatter.ts +45 -8
  195. package/src/internal/gitCommands.ts +23 -17
  196. package/src/internal/hashUtils.ts +2 -2
  197. package/src/internal/oauthServer.ts +84 -105
  198. package/src/internal/pathUtils.ts +1 -1
  199. package/src/internal/process.ts +15 -0
  200. package/src/internal/stdio.ts +22 -0
  201. package/src/internal/tokenStorage.ts +39 -29
  202. package/src/internal/userCache.ts +2 -2
  203. package/test/AdfPlaceholders.test.ts +508 -0
  204. package/test/AdfSchemaValidator.test.ts +34 -0
  205. package/test/AdfWalker.test.ts +676 -0
  206. package/test/AtlaskitTransformers.test.ts +25 -0
  207. package/test/Brand.test.ts +11 -11
  208. package/test/GitService.test.ts +6 -2
  209. package/test/MarkdownConverter.test.ts +121 -105
  210. package/test/RoundTrip.test.ts +521 -0
  211. package/test/Schemas.test.ts +40 -40
  212. package/test/adfMetadata.test.ts +110 -0
  213. package/test/cleanMarkdown.test.ts +36 -0
  214. package/test/commandHarness.test.ts +79 -0
  215. package/test/commandHarness.ts +147 -0
  216. package/test/fetch.test.ts +61 -0
  217. package/test/frontmatter.test.ts +41 -0
  218. package/test/integration.test.ts +569 -156
  219. package/test/layers.test.ts +12 -0
  220. package/test/oauthServer.test.ts +4 -5
  221. package/test/pageInput.test.ts +83 -0
  222. package/test/tokenStorage.test.ts +17 -17
  223. package/dist/SchemaConverterError.d.ts +0 -108
  224. package/dist/SchemaConverterError.d.ts.map +0 -1
  225. package/dist/SchemaConverterError.js +0 -84
  226. package/dist/SchemaConverterError.js.map +0 -1
  227. package/dist/ast/BlockNode.d.ts +0 -453
  228. package/dist/ast/BlockNode.d.ts.map +0 -1
  229. package/dist/ast/BlockNode.js +0 -310
  230. package/dist/ast/BlockNode.js.map +0 -1
  231. package/dist/ast/Document.d.ts +0 -216
  232. package/dist/ast/Document.d.ts.map +0 -1
  233. package/dist/ast/Document.js +0 -69
  234. package/dist/ast/Document.js.map +0 -1
  235. package/dist/ast/InlineNode.d.ts +0 -477
  236. package/dist/ast/InlineNode.d.ts.map +0 -1
  237. package/dist/ast/InlineNode.js +0 -263
  238. package/dist/ast/InlineNode.js.map +0 -1
  239. package/dist/ast/MacroNode.d.ts +0 -267
  240. package/dist/ast/MacroNode.d.ts.map +0 -1
  241. package/dist/ast/MacroNode.js +0 -164
  242. package/dist/ast/MacroNode.js.map +0 -1
  243. package/dist/ast/index.d.ts +0 -10
  244. package/dist/ast/index.d.ts.map +0 -1
  245. package/dist/ast/index.js +0 -14
  246. package/dist/ast/index.js.map +0 -1
  247. package/dist/parsers/ConfluenceParser.d.ts +0 -26
  248. package/dist/parsers/ConfluenceParser.d.ts.map +0 -1
  249. package/dist/parsers/ConfluenceParser.js +0 -797
  250. package/dist/parsers/ConfluenceParser.js.map +0 -1
  251. package/dist/parsers/MarkdownParser.d.ts +0 -26
  252. package/dist/parsers/MarkdownParser.d.ts.map +0 -1
  253. package/dist/parsers/MarkdownParser.js +0 -982
  254. package/dist/parsers/MarkdownParser.js.map +0 -1
  255. package/dist/parsers/index.d.ts +0 -8
  256. package/dist/parsers/index.d.ts.map +0 -1
  257. package/dist/parsers/index.js +0 -8
  258. package/dist/parsers/index.js.map +0 -1
  259. package/dist/schemas/ConfluenceSchema.d.ts +0 -21
  260. package/dist/schemas/ConfluenceSchema.d.ts.map +0 -1
  261. package/dist/schemas/ConfluenceSchema.js +0 -38
  262. package/dist/schemas/ConfluenceSchema.js.map +0 -1
  263. package/dist/schemas/ConversionSchema.d.ts +0 -35
  264. package/dist/schemas/ConversionSchema.d.ts.map +0 -1
  265. package/dist/schemas/ConversionSchema.js +0 -208
  266. package/dist/schemas/ConversionSchema.js.map +0 -1
  267. package/dist/schemas/MarkdownSchema.d.ts +0 -21
  268. package/dist/schemas/MarkdownSchema.d.ts.map +0 -1
  269. package/dist/schemas/MarkdownSchema.js +0 -38
  270. package/dist/schemas/MarkdownSchema.js.map +0 -1
  271. package/dist/schemas/hast/HastFromHtml.d.ts +0 -27
  272. package/dist/schemas/hast/HastFromHtml.d.ts.map +0 -1
  273. package/dist/schemas/hast/HastFromHtml.js +0 -107
  274. package/dist/schemas/hast/HastFromHtml.js.map +0 -1
  275. package/dist/schemas/hast/HastSchema.d.ts +0 -195
  276. package/dist/schemas/hast/HastSchema.d.ts.map +0 -1
  277. package/dist/schemas/hast/HastSchema.js +0 -183
  278. package/dist/schemas/hast/HastSchema.js.map +0 -1
  279. package/dist/schemas/hast/index.d.ts +0 -9
  280. package/dist/schemas/hast/index.d.ts.map +0 -1
  281. package/dist/schemas/hast/index.js +0 -3
  282. package/dist/schemas/hast/index.js.map +0 -1
  283. package/dist/schemas/index.d.ts +0 -14
  284. package/dist/schemas/index.d.ts.map +0 -1
  285. package/dist/schemas/index.js +0 -16
  286. package/dist/schemas/index.js.map +0 -1
  287. package/dist/schemas/mdast/MdastFromMarkdown.d.ts +0 -30
  288. package/dist/schemas/mdast/MdastFromMarkdown.d.ts.map +0 -1
  289. package/dist/schemas/mdast/MdastFromMarkdown.js +0 -79
  290. package/dist/schemas/mdast/MdastFromMarkdown.js.map +0 -1
  291. package/dist/schemas/mdast/MdastSchema.d.ts +0 -385
  292. package/dist/schemas/mdast/MdastSchema.d.ts.map +0 -1
  293. package/dist/schemas/mdast/MdastSchema.js +0 -266
  294. package/dist/schemas/mdast/MdastSchema.js.map +0 -1
  295. package/dist/schemas/mdast/index.d.ts +0 -10
  296. package/dist/schemas/mdast/index.d.ts.map +0 -1
  297. package/dist/schemas/mdast/index.js +0 -4
  298. package/dist/schemas/mdast/index.js.map +0 -1
  299. package/dist/schemas/mdast/mdastToString.d.ts +0 -13
  300. package/dist/schemas/mdast/mdastToString.d.ts.map +0 -1
  301. package/dist/schemas/mdast/mdastToString.js +0 -85
  302. package/dist/schemas/mdast/mdastToString.js.map +0 -1
  303. package/dist/schemas/nodes/block/BlockSchema.d.ts +0 -43
  304. package/dist/schemas/nodes/block/BlockSchema.d.ts.map +0 -1
  305. package/dist/schemas/nodes/block/BlockSchema.js +0 -634
  306. package/dist/schemas/nodes/block/BlockSchema.js.map +0 -1
  307. package/dist/schemas/nodes/block/index.d.ts +0 -7
  308. package/dist/schemas/nodes/block/index.d.ts.map +0 -1
  309. package/dist/schemas/nodes/block/index.js +0 -7
  310. package/dist/schemas/nodes/block/index.js.map +0 -1
  311. package/dist/schemas/nodes/index.d.ts +0 -9
  312. package/dist/schemas/nodes/index.d.ts.map +0 -1
  313. package/dist/schemas/nodes/index.js +0 -12
  314. package/dist/schemas/nodes/index.js.map +0 -1
  315. package/dist/schemas/nodes/inline/InlineSchema.d.ts +0 -48
  316. package/dist/schemas/nodes/inline/InlineSchema.d.ts.map +0 -1
  317. package/dist/schemas/nodes/inline/InlineSchema.js +0 -436
  318. package/dist/schemas/nodes/inline/InlineSchema.js.map +0 -1
  319. package/dist/schemas/nodes/inline/index.d.ts +0 -7
  320. package/dist/schemas/nodes/inline/index.d.ts.map +0 -1
  321. package/dist/schemas/nodes/inline/index.js +0 -7
  322. package/dist/schemas/nodes/inline/index.js.map +0 -1
  323. package/dist/schemas/nodes/macro/MacroSchema.d.ts +0 -27
  324. package/dist/schemas/nodes/macro/MacroSchema.d.ts.map +0 -1
  325. package/dist/schemas/nodes/macro/MacroSchema.js +0 -162
  326. package/dist/schemas/nodes/macro/MacroSchema.js.map +0 -1
  327. package/dist/schemas/nodes/macro/index.d.ts +0 -7
  328. package/dist/schemas/nodes/macro/index.d.ts.map +0 -1
  329. package/dist/schemas/nodes/macro/index.js +0 -7
  330. package/dist/schemas/nodes/macro/index.js.map +0 -1
  331. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts +0 -24
  332. package/dist/schemas/preprocessing/ConfluencePreprocessor.d.ts.map +0 -1
  333. package/dist/schemas/preprocessing/ConfluencePreprocessor.js +0 -359
  334. package/dist/schemas/preprocessing/ConfluencePreprocessor.js.map +0 -1
  335. package/dist/schemas/preprocessing/index.d.ts +0 -8
  336. package/dist/schemas/preprocessing/index.d.ts.map +0 -1
  337. package/dist/schemas/preprocessing/index.js +0 -2
  338. package/dist/schemas/preprocessing/index.js.map +0 -1
  339. package/dist/serializers/ConfluenceSerializer.d.ts +0 -30
  340. package/dist/serializers/ConfluenceSerializer.d.ts.map +0 -1
  341. package/dist/serializers/ConfluenceSerializer.js +0 -560
  342. package/dist/serializers/ConfluenceSerializer.js.map +0 -1
  343. package/dist/serializers/MarkdownSerializer.d.ts +0 -34
  344. package/dist/serializers/MarkdownSerializer.d.ts.map +0 -1
  345. package/dist/serializers/MarkdownSerializer.js +0 -395
  346. package/dist/serializers/MarkdownSerializer.js.map +0 -1
  347. package/dist/serializers/index.d.ts +0 -8
  348. package/dist/serializers/index.d.ts.map +0 -1
  349. package/dist/serializers/index.js +0 -8
  350. package/dist/serializers/index.js.map +0 -1
  351. package/src/SchemaConverterError.ts +0 -108
  352. package/src/ast/BlockNode.ts +0 -469
  353. package/src/ast/Document.ts +0 -90
  354. package/src/ast/InlineNode.ts +0 -323
  355. package/src/ast/MacroNode.ts +0 -245
  356. package/src/ast/index.ts +0 -83
  357. package/src/parsers/ConfluenceParser.ts +0 -956
  358. package/src/parsers/MarkdownParser.ts +0 -1338
  359. package/src/parsers/index.ts +0 -8
  360. package/src/schemas/ConfluenceSchema.ts +0 -56
  361. package/src/schemas/ConversionSchema.ts +0 -318
  362. package/src/schemas/MarkdownSchema.ts +0 -56
  363. package/src/schemas/hast/HastFromHtml.ts +0 -153
  364. package/src/schemas/hast/HastSchema.ts +0 -274
  365. package/src/schemas/hast/index.ts +0 -35
  366. package/src/schemas/index.ts +0 -20
  367. package/src/schemas/mdast/MdastFromMarkdown.ts +0 -118
  368. package/src/schemas/mdast/MdastSchema.ts +0 -566
  369. package/src/schemas/mdast/index.ts +0 -59
  370. package/src/schemas/mdast/mdastToString.ts +0 -102
  371. package/src/schemas/nodes/block/BlockSchema.ts +0 -773
  372. package/src/schemas/nodes/block/index.ts +0 -13
  373. package/src/schemas/nodes/index.ts +0 -20
  374. package/src/schemas/nodes/inline/InlineSchema.ts +0 -523
  375. package/src/schemas/nodes/inline/index.ts +0 -14
  376. package/src/schemas/nodes/macro/MacroSchema.ts +0 -226
  377. package/src/schemas/nodes/macro/index.ts +0 -6
  378. package/src/schemas/preprocessing/ConfluencePreprocessor.ts +0 -455
  379. package/src/schemas/preprocessing/index.ts +0 -8
  380. package/src/serializers/ConfluenceSerializer.ts +0 -737
  381. package/src/serializers/MarkdownSerializer.ts +0 -543
  382. package/src/serializers/index.ts +0 -8
  383. package/test/ast/BlockNode.test.ts +0 -265
  384. package/test/ast/Document.test.ts +0 -126
  385. package/test/ast/InlineNode.test.ts +0 -161
  386. package/test/fixtures/integration-test.html.fixture +0 -103
  387. package/test/fixtures/integration-test.md.expected +0 -257
  388. package/test/parsers/ConfluenceParser.test.ts +0 -452
  389. package/test/schemas/ConfluencePreprocessor.test.ts +0 -180
  390. package/test/schemas/ConversionSchema.test.ts +0 -159
  391. package/test/schemas/HastSchema.test.ts +0 -138
  392. package/test/schemas/MdastSchema.test.ts +0 -145
  393. package/test/schemas/nodes/block/BlockSchema.test.ts +0 -173
  394. package/test/schemas/nodes/inline/InlineSchema.test.ts +0 -198
  395. package/test/schemas/nodes/macro/MacroSchema.test.ts +0 -142
@@ -1,30 +0,0 @@
1
- /**
2
- * Serializer for AST to Confluence storage format (HTML).
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- import type { Document } from "../ast/Document.js";
8
- import type { SerializeError } from "../SchemaConverterError.js";
9
- /**
10
- * Serialize Document AST to Confluence storage format HTML.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { serializeToConfluence } from "@knpkv/confluence-to-markdown/serializers/ConfluenceSerializer"
15
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
16
- * import { Effect } from "effect"
17
- *
18
- * Effect.gen(function* () {
19
- * const doc = makeDocument([
20
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
21
- * ])
22
- * const html = yield* serializeToConfluence(doc)
23
- * console.log(html) // <h1>Title</h1>
24
- * })
25
- * ```
26
- *
27
- * @category Serializers
28
- */
29
- export declare const serializeToConfluence: (doc: Document) => Effect.Effect<string, SerializeError>;
30
- //# sourceMappingURL=ConfluenceSerializer.d.ts.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfluenceSerializer.d.ts","sourceRoot":"","sources":["../../src/serializers/ConfluenceSerializer.ts"],"names":[],"mappings":"AAAA;;;;GAIG;AACH,OAAO,KAAK,MAAM,MAAM,eAAe,CAAA;AAEvC,OAAO,KAAK,EAAE,QAAQ,EAAgB,MAAM,oBAAoB,CAAA;AAEhE,OAAO,KAAK,EAAE,cAAc,EAAE,MAAM,4BAA4B,CAAA;AAEhE;;;;;;;;;;;;;;;;;;;GAmBG;AACH,eAAO,MAAM,qBAAqB,GAAI,KAAK,QAAQ,KAAG,MAAM,CAAC,MAAM,CAAC,MAAM,EAAE,cAAc,CAetF,CAAA"}
@@ -1,560 +0,0 @@
1
- /**
2
- * Serializer for AST to Confluence storage format (HTML).
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- /**
8
- * Serialize Document AST to Confluence storage format HTML.
9
- *
10
- * @example
11
- * ```typescript
12
- * import { serializeToConfluence } from "@knpkv/confluence-to-markdown/serializers/ConfluenceSerializer"
13
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
14
- * import { Effect } from "effect"
15
- *
16
- * Effect.gen(function* () {
17
- * const doc = makeDocument([
18
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
19
- * ])
20
- * const html = yield* serializeToConfluence(doc)
21
- * console.log(html) // <h1>Title</h1>
22
- * })
23
- * ```
24
- *
25
- * @category Serializers
26
- */
27
- export const serializeToConfluence = (doc) => Effect.gen(function* () {
28
- // 1-to-1 roundtrip: if rawConfluence is available, return it as-is
29
- if (doc.rawConfluence !== undefined) {
30
- return doc.rawConfluence;
31
- }
32
- const parts = [];
33
- for (const node of doc.children) {
34
- const serialized = yield* serializeDocumentNode(node);
35
- parts.push(serialized);
36
- }
37
- const raw = parts.join("\n");
38
- // Post-process to reconstruct layouts from markers
39
- return reconstructLayouts(raw);
40
- });
41
- /**
42
- * Reconstruct layouts from marker comments.
43
- *
44
- * Markers:
45
- * - <!--cf:layout-start-->
46
- * - <!--cf:section:index;type;breakoutMode;breakoutWidth;cellCount-->
47
- * - <!--cf:cell:sectionIndex;cellIndex-->
48
- * - <!--cf:section-end:index-->
49
- * - <!--cf:layout-end-->
50
- */
51
- const reconstructLayouts = (html) => {
52
- // Check if there are any layout markers
53
- if (!html.includes("<!--cf:layout-start-->")) {
54
- return html;
55
- }
56
- let result = html;
57
- // Process each layout block
58
- const layoutRegex = /<!--cf:layout-start-->([\s\S]*?)<!--cf:layout-end-->/g;
59
- result = result.replace(layoutRegex, (_, layoutContent) => {
60
- // Parse sections from the content
61
- const sections = [];
62
- // Find all section markers
63
- const sectionRegex = /<!--cf:section:(\d+);([^;]*);([^;]*);([^;]*);(\d+)-->/g;
64
- let sectionMatch;
65
- const sectionMeta = [];
66
- while ((sectionMatch = sectionRegex.exec(layoutContent)) !== null) {
67
- sectionMeta.push({
68
- index: parseInt(sectionMatch[1] ?? "0"),
69
- type: decodeURIComponent(sectionMatch[2] ?? "fixed-width"),
70
- breakoutMode: decodeURIComponent(sectionMatch[3] ?? ""),
71
- breakoutWidth: decodeURIComponent(sectionMatch[4] ?? ""),
72
- cellCount: parseInt(sectionMatch[5] ?? "0")
73
- });
74
- }
75
- // For each section, extract cell content
76
- for (const meta of sectionMeta) {
77
- const cells = [];
78
- for (let cellIndex = 0; cellIndex < meta.cellCount; cellIndex++) {
79
- const cellStartMarker = `<!--cf:cell:${meta.index};${cellIndex}-->`;
80
- const nextCellMarker = `<!--cf:cell:${meta.index};${cellIndex + 1}-->`;
81
- const sectionEndMarker = `<!--cf:section-end:${meta.index}-->`;
82
- const nextSectionMarker = `<!--cf:section:${meta.index + 1};`;
83
- const cellStart = layoutContent.indexOf(cellStartMarker);
84
- if (cellStart === -1)
85
- continue;
86
- const contentStart = cellStart + cellStartMarker.length;
87
- // Find where this cell ends - either next cell, section end, or next section
88
- let cellEnd = layoutContent.length;
89
- const nextCell = layoutContent.indexOf(nextCellMarker, contentStart);
90
- const secEnd = layoutContent.indexOf(sectionEndMarker, contentStart);
91
- const nextSec = layoutContent.indexOf(nextSectionMarker, contentStart);
92
- if (nextCell !== -1 && nextCell < cellEnd)
93
- cellEnd = nextCell;
94
- if (secEnd !== -1 && secEnd < cellEnd)
95
- cellEnd = secEnd;
96
- if (nextSec !== -1 && nextSec < cellEnd)
97
- cellEnd = nextSec;
98
- const cellContent = layoutContent.slice(contentStart, cellEnd).trim();
99
- cells.push(cellContent);
100
- }
101
- sections.push({
102
- type: meta.type,
103
- breakoutMode: meta.breakoutMode,
104
- breakoutWidth: meta.breakoutWidth,
105
- cells
106
- });
107
- }
108
- // Build the layout HTML
109
- const sectionHtml = sections.map((section) => {
110
- const typeAttr = ` ac:type="${escapeHtml(section.type)}"`;
111
- const breakoutModeAttr = section.breakoutMode ? ` ac:breakout-mode="${escapeHtml(section.breakoutMode)}"` : "";
112
- const breakoutWidthAttr = section.breakoutWidth ? ` ac:breakout-width="${escapeHtml(section.breakoutWidth)}"` : "";
113
- const cellsHtml = section.cells.map((c) => `<ac:layout-cell>${c}</ac:layout-cell>`).join("");
114
- return `<ac:layout-section${typeAttr}${breakoutModeAttr}${breakoutWidthAttr}>${cellsHtml}</ac:layout-section>`;
115
- }).join("");
116
- return `<ac:layout>${sectionHtml}</ac:layout>`;
117
- });
118
- return result;
119
- };
120
- /**
121
- * Serialize a document node to Confluence HTML.
122
- */
123
- const serializeDocumentNode = (node) => Effect.gen(function* () {
124
- switch (node._tag) {
125
- // Block nodes
126
- case "Heading":
127
- return yield* serializeHeading({ level: node.level, children: node.children });
128
- case "Paragraph":
129
- return yield* serializeParagraph({
130
- children: node.children,
131
- alignment: node.alignment,
132
- indent: node.indent
133
- });
134
- case "CodeBlock":
135
- return serializeCodeBlock({ code: node.code, language: node.language });
136
- case "ThematicBreak":
137
- return "<hr/>";
138
- case "Image":
139
- return serializeImage({
140
- src: node.src,
141
- attachment: node.attachment,
142
- alt: node.alt,
143
- title: node.title,
144
- align: node.align,
145
- width: node.width
146
- });
147
- case "Table":
148
- return yield* serializeTable({ header: node.header, rows: node.rows });
149
- case "List":
150
- return yield* serializeList({
151
- ordered: node.ordered,
152
- start: node.start,
153
- children: node.children
154
- });
155
- case "BlockQuote":
156
- return yield* serializeBlockQuote({ children: node.children });
157
- case "UnsupportedBlock": {
158
- const raw = node.rawHtml || node.rawMarkdown || "";
159
- // Check for comment-encoded decision list
160
- const decisionMatch = raw.match(/<!--cf:decision:(.*)-->/);
161
- if (decisionMatch) {
162
- const itemsStr = decisionMatch[1] ?? "";
163
- const items = itemsStr.split("|").map((item) => {
164
- const parts = item.split(";");
165
- return {
166
- localId: decodeURIComponent(parts[0] ?? ""),
167
- state: decodeURIComponent(parts[1] ?? ""),
168
- content: decodeURIComponent(parts[2] ?? "")
169
- };
170
- });
171
- const decisionItems = items.map((item) => `<ac:adf-node type="decision-item"><ac:adf-attribute key="local-id">${escapeHtml(item.localId)}</ac:adf-attribute><ac:adf-attribute key="state">${escapeHtml(item.state)}</ac:adf-attribute><ac:adf-content>${escapeHtml(item.content)}</ac:adf-content></ac:adf-node>`).join("");
172
- const fallbackItems = items.map((item) => `<li>${escapeHtml(item.content)}</li>`).join("");
173
- return `<ac:adf-extension><ac:adf-node type="decision-list">${decisionItems}</ac:adf-node><ac:adf-fallback><ul class="decision-list">${fallbackItems}</ul></ac:adf-fallback></ac:adf-extension>`;
174
- }
175
- // Layout markers are passed through - reconstructLayouts will process them
176
- return raw;
177
- }
178
- // Macro nodes - serialize to Confluence macros
179
- case "InfoPanel":
180
- return yield* serializeInfoPanel({
181
- panelType: node.panelType,
182
- title: node.title,
183
- children: node.children
184
- });
185
- case "ExpandMacro":
186
- return yield* serializeExpandMacro({
187
- title: node.title,
188
- children: node.children
189
- });
190
- case "TocMacro":
191
- return serializeTocMacro({ minLevel: node.minLevel, maxLevel: node.maxLevel });
192
- case "CodeMacro":
193
- return serializeCodeMacro({
194
- language: node.language,
195
- title: node.title,
196
- code: node.code,
197
- lineNumbers: node.lineNumbers,
198
- collapse: node.collapse,
199
- firstLine: node.firstLine
200
- });
201
- case "StatusMacro":
202
- return serializeStatusMacro({ text: node.text, color: node.color });
203
- case "TaskList":
204
- return yield* serializeTaskList(node.children);
205
- default:
206
- return "";
207
- }
208
- });
209
- /**
210
- * Serialize heading.
211
- */
212
- const serializeHeading = (node) => Effect.gen(function* () {
213
- const content = yield* serializeInlineNodes(node.children);
214
- return `<h${node.level}>${content}</h${node.level}>`;
215
- });
216
- /**
217
- * Serialize paragraph (with optional alignment and indent).
218
- */
219
- const serializeParagraph = (node) => Effect.gen(function* () {
220
- const content = yield* serializeInlineNodes(node.children);
221
- const styles = [];
222
- if (node.alignment) {
223
- styles.push(`text-align: ${node.alignment};`);
224
- }
225
- if (node.indent) {
226
- styles.push(`margin-left: ${node.indent}px;`);
227
- }
228
- const styleAttr = styles.length > 0 ? ` style="${styles.join(" ")}"` : "";
229
- return `<p${styleAttr}>${content}</p>`;
230
- });
231
- /**
232
- * Serialize code block as Confluence code macro.
233
- */
234
- const serializeCodeBlock = (node) => {
235
- const lang = node.language ? `<ac:parameter ac:name="language">${escapeHtml(node.language)}</ac:parameter>` : "";
236
- return `<ac:structured-macro ac:name="code">${lang}<ac:plain-text-body><![CDATA[${node.code}]]></ac:plain-text-body></ac:structured-macro>`;
237
- };
238
- /**
239
- * Serialize image (supports both URL and Confluence attachments).
240
- */
241
- const serializeImage = (node) => {
242
- // Confluence attachment
243
- if (node.attachment) {
244
- const alignAttr = node.align ? ` ac:align="${node.align}"` : "";
245
- const widthAttr = node.width ? ` ac:width="${node.width}"` : "";
246
- const altAttr = node.alt ? ` ac:alt="${escapeHtml(node.alt)}"` : "";
247
- const versionAttr = node.attachment.version ? ` ri:version-at-save="${node.attachment.version}"` : "";
248
- return `<ac:image${alignAttr}${widthAttr}${altAttr}><ri:attachment ri:filename="${escapeHtml(node.attachment.filename)}"${versionAttr}/></ac:image>`;
249
- }
250
- // URL-based image
251
- const src = node.src ?? "";
252
- const alt = node.alt ? ` alt="${escapeHtml(node.alt)}"` : "";
253
- const title = node.title ? ` title="${escapeHtml(node.title)}"` : "";
254
- return `<img src="${escapeHtml(src)}"${alt}${title}/>`;
255
- };
256
- /**
257
- * Serialize table.
258
- */
259
- const serializeTable = (node) => Effect.gen(function* () {
260
- const parts = ["<table>"];
261
- // Header
262
- if (node.header) {
263
- parts.push("<thead><tr>");
264
- for (const cell of node.header.cells) {
265
- const content = yield* serializeInlineNodes(cell.children);
266
- parts.push(`<th>${content}</th>`);
267
- }
268
- parts.push("</tr></thead>");
269
- }
270
- // Body
271
- if (node.rows.length > 0) {
272
- parts.push("<tbody>");
273
- for (const row of node.rows) {
274
- parts.push("<tr>");
275
- for (const cell of row.cells) {
276
- const tag = cell.isHeader ? "th" : "td";
277
- const content = yield* serializeInlineNodes(cell.children);
278
- parts.push(`<${tag}>${content}</${tag}>`);
279
- }
280
- parts.push("</tr>");
281
- }
282
- parts.push("</tbody>");
283
- }
284
- parts.push("</table>");
285
- return parts.join("");
286
- });
287
- /**
288
- * Serialize list.
289
- */
290
- const serializeList = (node) => Effect.gen(function* () {
291
- const tag = node.ordered ? "ol" : "ul";
292
- const startAttr = node.ordered && node.start && node.start !== 1 ? ` start="${node.start}"` : "";
293
- const parts = [`<${tag}${startAttr}>`];
294
- for (const item of node.children) {
295
- parts.push("<li>");
296
- if (item.checked !== undefined) {
297
- const checked = item.checked ? " checked" : "";
298
- parts.push(`<input type="checkbox"${checked}/>`);
299
- }
300
- for (const child of item.children) {
301
- parts.push(yield* serializeSimpleBlock(child));
302
- }
303
- parts.push("</li>");
304
- }
305
- parts.push(`</${tag}>`);
306
- return parts.join("");
307
- });
308
- /**
309
- * Serialize simple block.
310
- */
311
- const serializeSimpleBlock = (node) => Effect.gen(function* () {
312
- switch (node._tag) {
313
- case "Heading":
314
- return yield* serializeHeading(node);
315
- case "Paragraph":
316
- return yield* serializeParagraph(node);
317
- case "CodeBlock":
318
- return serializeCodeBlock(node);
319
- case "ThematicBreak":
320
- return "<hr/>";
321
- case "Image":
322
- return serializeImage(node);
323
- case "Table":
324
- return yield* serializeTable(node);
325
- case "UnsupportedBlock": {
326
- const unsupported = node;
327
- return unsupported.rawHtml || unsupported.rawMarkdown || "";
328
- }
329
- case "List":
330
- return yield* serializeList(node);
331
- default:
332
- return "";
333
- }
334
- });
335
- /**
336
- * Serialize block quote.
337
- */
338
- const serializeBlockQuote = (node) => Effect.gen(function* () {
339
- const parts = ["<blockquote>"];
340
- for (const child of node.children) {
341
- parts.push(yield* serializeSimpleBlock(child));
342
- }
343
- parts.push("</blockquote>");
344
- return parts.join("");
345
- });
346
- /**
347
- * Serialize info panel as Confluence macro.
348
- */
349
- const serializeInfoPanel = (node) => Effect.gen(function* () {
350
- const titleParam = node.title
351
- ? `<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`
352
- : "";
353
- const parts = [
354
- `<ac:structured-macro ac:name="${node.panelType}">`,
355
- titleParam,
356
- "<ac:rich-text-body>"
357
- ];
358
- for (const child of node.children) {
359
- parts.push(yield* serializeSimpleBlock(child));
360
- }
361
- parts.push("</ac:rich-text-body>");
362
- parts.push("</ac:structured-macro>");
363
- return parts.join("");
364
- });
365
- /**
366
- * Serialize expand macro as Confluence macro.
367
- */
368
- const serializeExpandMacro = (node) => Effect.gen(function* () {
369
- const titleParam = node.title
370
- ? `<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`
371
- : "";
372
- const parts = [
373
- `<ac:structured-macro ac:name="expand">`,
374
- titleParam,
375
- "<ac:rich-text-body>"
376
- ];
377
- for (const child of node.children) {
378
- parts.push(yield* serializeSimpleBlock(child));
379
- }
380
- parts.push("</ac:rich-text-body>");
381
- parts.push("</ac:structured-macro>");
382
- return parts.join("");
383
- });
384
- /**
385
- * Serialize TOC macro.
386
- */
387
- const serializeTocMacro = (node) => {
388
- const params = [];
389
- if (node.minLevel) {
390
- params.push(`<ac:parameter ac:name="minLevel">${node.minLevel}</ac:parameter>`);
391
- }
392
- if (node.maxLevel) {
393
- params.push(`<ac:parameter ac:name="maxLevel">${node.maxLevel}</ac:parameter>`);
394
- }
395
- return `<ac:structured-macro ac:name="toc">${params.join("")}</ac:structured-macro>`;
396
- };
397
- /**
398
- * Serialize code macro with full options.
399
- */
400
- const serializeCodeMacro = (node) => {
401
- const params = [];
402
- if (node.language) {
403
- params.push(`<ac:parameter ac:name="language">${escapeHtml(node.language)}</ac:parameter>`);
404
- }
405
- if (node.title) {
406
- params.push(`<ac:parameter ac:name="title">${escapeHtml(node.title)}</ac:parameter>`);
407
- }
408
- if (node.lineNumbers) {
409
- params.push(`<ac:parameter ac:name="linenumbers">true</ac:parameter>`);
410
- }
411
- if (node.collapse) {
412
- params.push(`<ac:parameter ac:name="collapse">true</ac:parameter>`);
413
- }
414
- if (node.firstLine) {
415
- params.push(`<ac:parameter ac:name="firstline">${node.firstLine}</ac:parameter>`);
416
- }
417
- return `<ac:structured-macro ac:name="code">${params.join("")}<ac:plain-text-body><![CDATA[${node.code}]]></ac:plain-text-body></ac:structured-macro>`;
418
- };
419
- /**
420
- * Serialize status macro.
421
- */
422
- const serializeStatusMacro = (node) => {
423
- return `<ac:structured-macro ac:name="status"><ac:parameter ac:name="colour">${escapeHtml(node.color)}</ac:parameter><ac:parameter ac:name="title">${escapeHtml(node.text)}</ac:parameter></ac:structured-macro>`;
424
- };
425
- /**
426
- * Serialize task list to Confluence storage format.
427
- */
428
- const serializeTaskList = (children) => Effect.gen(function* () {
429
- const parts = [`<ac:task-list>`];
430
- for (const item of children) {
431
- const body = yield* serializeInlineNodes(item.body);
432
- parts.push(`<ac:task>` +
433
- `<ac:task-id>${item.id}</ac:task-id>` +
434
- `<ac:task-uuid>${item.uuid}</ac:task-uuid>` +
435
- `<ac:task-status>${item.status}</ac:task-status>` +
436
- `<ac:task-body><span class="placeholder-inline-tasks">${body}</span></ac:task-body>` +
437
- `</ac:task>`);
438
- }
439
- parts.push(`</ac:task-list>`);
440
- return parts.join("\n");
441
- });
442
- /**
443
- * Serialize inline nodes to HTML.
444
- */
445
- const serializeInlineNodes = (nodes) => Effect.gen(function* () {
446
- const parts = [];
447
- for (const node of nodes) {
448
- parts.push(yield* serializeInlineNode(node));
449
- }
450
- return parts.join("");
451
- });
452
- /**
453
- * Serialize inline node to HTML.
454
- */
455
- const serializeInlineNode = (node) => Effect.gen(function* () {
456
- switch (node._tag) {
457
- case "Text":
458
- return escapeHtml(node.value);
459
- case "Strong": {
460
- const content = yield* serializeInlineNodes(node.children);
461
- return `<strong>${content}</strong>`;
462
- }
463
- case "Emphasis": {
464
- const content = yield* serializeInlineNodes(node.children);
465
- return `<em>${content}</em>`;
466
- }
467
- case "Underline": {
468
- const content = yield* serializeInlineNodes(node.children);
469
- return `<u>${content}</u>`;
470
- }
471
- case "Strikethrough": {
472
- const content = yield* serializeInlineNodes(node.children);
473
- return `<del>${content}</del>`;
474
- }
475
- case "Subscript": {
476
- const content = yield* serializeInlineNodes(node.children);
477
- return `<sub>${content}</sub>`;
478
- }
479
- case "Superscript": {
480
- const content = yield* serializeInlineNodes(node.children);
481
- return `<sup>${content}</sup>`;
482
- }
483
- case "InlineCode":
484
- return `<code>${escapeHtml(node.value)}</code>`;
485
- 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
- const content = yield* serializeInlineNodes(node.children);
494
- const title = node.title ? ` title="${escapeHtml(node.title)}"` : "";
495
- return `<a href="${escapeHtml(node.href)}"${title}>${content}</a>`;
496
- }
497
- case "LineBreak":
498
- return "<br/>";
499
- case "Emoticon":
500
- return `<ac:emoticon ac:emoji-shortname="${escapeHtml(node.shortname)}" ac:emoji-id="${escapeHtml(node.emojiId)}" ac:emoji-fallback="${escapeHtml(node.fallback)}"/>`;
501
- case "UserMention":
502
- return `<ac:link><ri:user ri:account-id="${escapeHtml(node.accountId)}"/></ac:link>`;
503
- case "DateTime":
504
- return `<time datetime="${escapeHtml(node.datetime)}"/>`;
505
- case "ColoredText": {
506
- const content = yield* serializeInlineNodes(node.children);
507
- return `<span style="color: ${escapeHtml(node.color)};">${content}</span>`;
508
- }
509
- case "Highlight": {
510
- const content = yield* serializeInlineNodes(node.children);
511
- return `<span style="background-color: ${escapeHtml(node.backgroundColor)};">${content}</span>`;
512
- }
513
- case "UnsupportedInline": {
514
- // Check for comment-encoded TOC and convert back to Confluence macro
515
- const tocMatch = node.raw.match(/<!--cf:toc:([^;]*);([^;]*)-->/);
516
- if (tocMatch) {
517
- const minLevel = tocMatch[1];
518
- const maxLevel = tocMatch[2];
519
- let params = "";
520
- if (minLevel)
521
- params += `<ac:parameter ac:name="minLevel">${minLevel}</ac:parameter>`;
522
- if (maxLevel)
523
- params += `<ac:parameter ac:name="maxLevel">${maxLevel}</ac:parameter>`;
524
- return `<ac:structured-macro ac:name="toc">${params}</ac:structured-macro>`;
525
- }
526
- // Check for comment-encoded Status macro
527
- const statusMatch = node.raw.match(/<!--cf:status:([^;]*);([^;]*)-->/);
528
- if (statusMatch) {
529
- const title = decodeURIComponent(statusMatch[1] ?? "");
530
- const color = decodeURIComponent(statusMatch[2] ?? "");
531
- let params = "";
532
- if (title)
533
- params += `<ac:parameter ac:name="title">${escapeHtml(title)}</ac:parameter>`;
534
- if (color)
535
- params += `<ac:parameter ac:name="colour">${escapeHtml(color)}</ac:parameter>`;
536
- return `<ac:structured-macro ac:name="status">${params}</ac:structured-macro>`;
537
- }
538
- // Check for comment-encoded Smart link (Jira, etc.)
539
- const smartLinkMatch = node.raw.match(/<!--cf:smartlink:([^;]*);([^;]*);(.*)-->/);
540
- if (smartLinkMatch) {
541
- const href = decodeURIComponent(smartLinkMatch[1] ?? "");
542
- const appearance = decodeURIComponent(smartLinkMatch[2] ?? "");
543
- const datasource = decodeURIComponent(smartLinkMatch[3] ?? "");
544
- return `<a href="${escapeHtml(href)}" data-card-appearance="${escapeHtml(appearance)}" data-datasource="${escapeHtml(datasource)}">${escapeHtml(href)}</a>`;
545
- }
546
- return node.raw;
547
- }
548
- default:
549
- return "";
550
- }
551
- });
552
- /**
553
- * Escape HTML special characters.
554
- */
555
- const escapeHtml = (str) => str
556
- .replace(/&/g, "&amp;")
557
- .replace(/</g, "&lt;")
558
- .replace(/>/g, "&gt;")
559
- .replace(/"/g, "&quot;");
560
- //# sourceMappingURL=ConfluenceSerializer.js.map
@@ -1 +0,0 @@
1
- {"version":3,"file":"ConfluenceSerializer.js","sourceRoot":"","sources":["../../src/serializers/ConfluenceSerializer.ts"],"names":[],"mappings":"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"}
@@ -1,34 +0,0 @@
1
- /**
2
- * Serializer for AST to Markdown.
3
- *
4
- * @module
5
- */
6
- import * as Effect from "effect/Effect";
7
- import type { Document } from "../ast/Document.js";
8
- import type { SerializeError } from "../SchemaConverterError.js";
9
- /**
10
- * Serialize Document AST to Markdown.
11
- *
12
- * @example
13
- * ```typescript
14
- * import { serializeToMarkdown } from "@knpkv/confluence-to-markdown/serializers/MarkdownSerializer"
15
- * import { makeDocument, Heading, Text } from "@knpkv/confluence-to-markdown/ast"
16
- * import { Effect } from "effect"
17
- *
18
- * Effect.gen(function* () {
19
- * const doc = makeDocument([
20
- * new Heading({ level: 1, children: [new Text({ value: "Title" })] })
21
- * ])
22
- * const md = yield* serializeToMarkdown(doc)
23
- * console.log(md) // # Title
24
- * })
25
- * ```
26
- *
27
- * @category Serializers
28
- */
29
- export interface SerializeOptions {
30
- /** Include raw Confluence HTML for lossless roundtrip. Default: true */
31
- readonly includeRawSource?: boolean;
32
- }
33
- export declare const serializeToMarkdown: (doc: Document, options?: SerializeOptions) => Effect.Effect<string, SerializeError>;
34
- //# sourceMappingURL=MarkdownSerializer.d.ts.map