@xpack/doxygen2docusaurus 1.1.0 → 2.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 (329) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +4 -3
  3. package/bin/doxygen2docusaurus.js +1 -1
  4. package/dist/cli/main.d.ts +0 -8
  5. package/dist/cli/main.d.ts.map +1 -1
  6. package/dist/cli/main.js +1 -29
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/docusaurus/cli-options.d.ts +4 -65
  9. package/dist/docusaurus/cli-options.d.ts.map +1 -1
  10. package/dist/docusaurus/cli-options.js +16 -91
  11. package/dist/docusaurus/cli-options.js.map +1 -1
  12. package/dist/docusaurus/generator.d.ts +7 -4
  13. package/dist/docusaurus/generator.d.ts.map +1 -1
  14. package/dist/docusaurus/generator.js +50 -140
  15. package/dist/docusaurus/generator.js.map +1 -1
  16. package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
  17. package/dist/docusaurus/renderers/descriptiontype.js +11 -138
  18. package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
  19. package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
  20. package/dist/docusaurus/renderers/docinternalstype.js +0 -24
  21. package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
  22. package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
  23. package/dist/docusaurus/renderers/doclisttype.js +0 -22
  24. package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
  25. package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
  26. package/dist/docusaurus/renderers/doctabletype.js +1 -25
  27. package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
  28. package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
  29. package/dist/docusaurus/renderers/doctitletype.js +0 -20
  30. package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
  31. package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
  32. package/dist/docusaurus/renderers/docvariablelisttype.js +1 -25
  33. package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
  34. package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
  35. package/dist/docusaurus/renderers/docxrefsecttype.js +0 -16
  36. package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
  37. package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
  38. package/dist/docusaurus/renderers/element-renderer-base.js +0 -12
  39. package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
  40. package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
  41. package/dist/docusaurus/renderers/inctype.js +0 -18
  42. package/dist/docusaurus/renderers/inctype.js.map +1 -1
  43. package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
  44. package/dist/docusaurus/renderers/linkedtexttype.js +0 -23
  45. package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
  46. package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
  47. package/dist/docusaurus/renderers/listingtype.js +1 -24
  48. package/dist/docusaurus/renderers/listingtype.js.map +1 -1
  49. package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
  50. package/dist/docusaurus/renderers/paramtype.js +2 -29
  51. package/dist/docusaurus/renderers/paramtype.js.map +1 -1
  52. package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
  53. package/dist/docusaurus/renderers/referencetype.js +0 -17
  54. package/dist/docusaurus/renderers/referencetype.js.map +1 -1
  55. package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
  56. package/dist/docusaurus/renderers/reftexttype.js +0 -16
  57. package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
  58. package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
  59. package/dist/docusaurus/renderers/reftype.js +0 -16
  60. package/dist/docusaurus/renderers/reftype.js.map +1 -1
  61. package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
  62. package/dist/docusaurus/renderers/renderers.js +4 -33
  63. package/dist/docusaurus/renderers/renderers.js.map +1 -1
  64. package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
  65. package/dist/docusaurus/renderers/substringtype.js +0 -17
  66. package/dist/docusaurus/renderers/substringtype.js.map +1 -1
  67. package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
  68. package/dist/docusaurus/renderers/tableofcontentstype.js +0 -17
  69. package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
  70. package/dist/docusaurus/types.d.ts +4 -8
  71. package/dist/docusaurus/types.d.ts.map +1 -1
  72. package/dist/docusaurus/types.js +0 -11
  73. package/dist/docusaurus/types.js.map +1 -1
  74. package/dist/docusaurus/utils.d.ts.map +1 -1
  75. package/dist/docusaurus/utils.js +0 -82
  76. package/dist/docusaurus/utils.js.map +1 -1
  77. package/dist/docusaurus/view-model/classes-vm.d.ts +2 -2
  78. package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
  79. package/dist/docusaurus/view-model/classes-vm.js +12 -87
  80. package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
  81. package/dist/docusaurus/view-model/collection-base.d.ts +2 -2
  82. package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
  83. package/dist/docusaurus/view-model/collection-base.js +11 -23
  84. package/dist/docusaurus/view-model/collection-base.js.map +1 -1
  85. package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -32
  86. package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
  87. package/dist/docusaurus/view-model/compound-base-vm.js +47 -129
  88. package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
  89. package/dist/docusaurus/view-model/concepts-vm.d.ts +26 -0
  90. package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
  91. package/dist/docusaurus/view-model/concepts-vm.js +329 -0
  92. package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
  93. package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
  94. package/dist/docusaurus/view-model/description-anchors.js +0 -13
  95. package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
  96. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +2 -2
  97. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
  98. package/dist/docusaurus/view-model/files-and-folders-vm.js +64 -110
  99. package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
  100. package/dist/docusaurus/view-model/groups-vm.d.ts +2 -2
  101. package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
  102. package/dist/docusaurus/view-model/groups-vm.js +7 -80
  103. package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
  104. package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
  105. package/dist/docusaurus/view-model/members-vm.js +17 -154
  106. package/dist/docusaurus/view-model/members-vm.js.map +1 -1
  107. package/dist/docusaurus/view-model/namespaces-vm.d.ts +6 -2
  108. package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
  109. package/dist/docusaurus/view-model/namespaces-vm.js +82 -89
  110. package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
  111. package/dist/docusaurus/view-model/options.d.ts.map +1 -1
  112. package/dist/docusaurus/view-model/options.js +0 -14
  113. package/dist/docusaurus/view-model/options.js.map +1 -1
  114. package/dist/docusaurus/view-model/pages-vm.d.ts +2 -2
  115. package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
  116. package/dist/docusaurus/view-model/pages-vm.js +3 -50
  117. package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
  118. package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -22
  119. package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
  120. package/dist/docusaurus/view-model/tree-entries-vm.js +54 -54
  121. package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
  122. package/dist/docusaurus/view-model/view-model.d.ts +0 -6
  123. package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
  124. package/dist/docusaurus/view-model/view-model.js +20 -63
  125. package/dist/docusaurus/view-model/view-model.js.map +1 -1
  126. package/dist/docusaurus/workspace.d.ts +1 -20
  127. package/dist/docusaurus/workspace.d.ts.map +1 -1
  128. package/dist/docusaurus/workspace.js +9 -116
  129. package/dist/docusaurus/workspace.js.map +1 -1
  130. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +5 -7
  131. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
  132. package/dist/doxygen/data-model/compounds/compounddef-dm.js +23 -187
  133. package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
  134. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -9
  135. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
  136. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -47
  137. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
  138. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +0 -39
  139. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
  140. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +36 -1308
  141. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
  142. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
  143. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -64
  144. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
  145. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
  146. package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -35
  147. package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
  148. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -6
  149. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
  150. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -44
  151. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
  152. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -9
  153. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
  154. package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -48
  155. package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
  156. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -15
  157. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
  158. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -57
  159. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
  160. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -6
  161. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
  162. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -38
  163. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
  164. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -6
  165. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
  166. package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -52
  167. package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
  168. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -10
  169. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
  170. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -64
  171. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
  172. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -6
  173. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
  174. package/dist/doxygen/data-model/compounds/memberreftype-dm.js +1 -45
  175. package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
  176. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -6
  177. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
  178. package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -43
  179. package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
  180. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -6
  181. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
  182. package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -51
  183. package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
  184. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -9
  185. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
  186. package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -47
  187. package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
  188. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
  189. package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -38
  190. package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
  191. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -21
  192. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
  193. package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -82
  194. package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
  195. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -6
  196. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
  197. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -42
  198. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
  199. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -9
  200. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
  201. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -53
  202. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
  203. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -12
  204. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
  205. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -105
  206. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
  207. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -6
  208. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
  209. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -38
  210. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
  211. package/dist/doxygen/data-model/data-model.d.ts +0 -65
  212. package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
  213. package/dist/doxygen/data-model/data-model.js +4 -115
  214. package/dist/doxygen/data-model/data-model.js.map +1 -1
  215. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -6
  216. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
  217. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -47
  218. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
  219. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -6
  220. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
  221. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -40
  222. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
  223. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -236
  224. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
  225. package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -289
  226. package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
  227. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -6
  228. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
  229. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -45
  230. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
  231. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -6
  232. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
  233. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -41
  234. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
  235. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -6
  236. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
  237. package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -43
  238. package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
  239. package/dist/doxygen/data-model/types.d.ts +1 -10
  240. package/dist/doxygen/data-model/types.d.ts.map +1 -1
  241. package/dist/doxygen/data-model/types.js +0 -15
  242. package/dist/doxygen/data-model/types.js.map +1 -1
  243. package/dist/index.d.ts +4 -16
  244. package/dist/index.d.ts.map +1 -1
  245. package/dist/index.js +4 -42
  246. package/dist/index.js.map +1 -1
  247. package/package.json +53 -56
  248. package/src/cli/main.ts +122 -0
  249. package/src/docusaurus/cli-options.ts +560 -0
  250. package/src/docusaurus/generator.ts +788 -0
  251. package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
  252. package/src/docusaurus/renderers/docinternalstype.ts +354 -0
  253. package/src/docusaurus/renderers/doclisttype.ts +134 -0
  254. package/src/docusaurus/renderers/doctabletype.ts +220 -0
  255. package/src/docusaurus/renderers/doctitletype.ts +77 -0
  256. package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
  257. package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
  258. package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
  259. package/src/docusaurus/renderers/inctype.ts +75 -0
  260. package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
  261. package/src/docusaurus/renderers/listingtype.ts +235 -0
  262. package/src/docusaurus/renderers/paramtype.ts +116 -0
  263. package/src/docusaurus/renderers/referencetype.ts +83 -0
  264. package/src/docusaurus/renderers/reftexttype.ts +81 -0
  265. package/src/docusaurus/renderers/reftype.ts +77 -0
  266. package/src/docusaurus/renderers/renderers.ts +756 -0
  267. package/src/docusaurus/renderers/substringtype.ts +53 -0
  268. package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
  269. package/src/docusaurus/types.ts +187 -0
  270. package/src/docusaurus/utils.ts +409 -0
  271. package/src/docusaurus/view-model/README.md +12 -0
  272. package/src/docusaurus/view-model/classes-vm.ts +1088 -0
  273. package/src/docusaurus/view-model/collection-base.ts +352 -0
  274. package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
  275. package/src/docusaurus/view-model/concepts-vm.ts +719 -0
  276. package/src/docusaurus/view-model/description-anchors.ts +107 -0
  277. package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
  278. package/src/docusaurus/view-model/groups-vm.ts +548 -0
  279. package/src/docusaurus/view-model/members-vm.ts +1943 -0
  280. package/src/docusaurus/view-model/namespaces-vm.ts +1018 -0
  281. package/src/docusaurus/view-model/options.ts +95 -0
  282. package/src/docusaurus/view-model/pages-vm.ts +342 -0
  283. package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
  284. package/src/docusaurus/view-model/view-model.ts +513 -0
  285. package/src/docusaurus/workspace.ts +588 -0
  286. package/src/doxygen/data-model/README.md +13 -0
  287. package/src/doxygen/data-model/compounds/compounddef-dm.ts +1156 -0
  288. package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
  289. package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10107 -0
  290. package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
  291. package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
  292. package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
  293. package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
  294. package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
  295. package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
  296. package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
  297. package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +874 -0
  298. package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
  299. package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
  300. package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
  301. package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
  302. package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
  303. package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
  304. package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
  305. package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
  306. package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +563 -0
  307. package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
  308. package/src/doxygen/data-model/data-model.ts +377 -0
  309. package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
  310. package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
  311. package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
  312. package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
  313. package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
  314. package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
  315. package/src/doxygen/data-model/types.ts +175 -0
  316. package/src/doxygen/data-model/xsds/README.md +6 -0
  317. package/src/doxygen/data-model/xsds/compound.xsd +1699 -0
  318. package/src/doxygen/data-model/xsds/doxyfile.xsd +355 -0
  319. package/src/doxygen/data-model/xsds/index.xsd +72 -0
  320. package/src/doxygen/data-model/xsds/xml.xsd +23 -0
  321. package/src/index.ts +261 -0
  322. package/src/tsconfig.json +10 -0
  323. package/dist/doxygen2docusaurus.d.ts +0 -1147
  324. package/dist/tsconfig.tsbuildinfo +0 -1
  325. package/dist/tsdoc-metadata.json +0 -11
  326. /package/{template → templates}/css/custom.css +0 -0
  327. /package/{template → templates}/img/README.md +0 -0
  328. /package/{template → templates}/img/document-svgrepo-com.svg +0 -0
  329. /package/{template → templates}/img/folder-svgrepo-com.svg +0 -0
@@ -0,0 +1,1299 @@
1
+ /* eslint-disable @typescript-eslint/no-unused-vars */
2
+ /*
3
+ * This file is part of the xPack project (http://xpack.github.io).
4
+ * Copyright (c) 2025-2026 Liviu Ionescu. All rights reserved.
5
+ *
6
+ * Permission to use, copy, modify, and/or distribute this software
7
+ * for any purpose is hereby granted, under the terms of the MIT license.
8
+ *
9
+ * If a copy of the license was not distributed with this file, it can
10
+ * be obtained from https://opensource.org/licenses/MIT.
11
+ */
12
+
13
+ // ----------------------------------------------------------------------------
14
+
15
+ import assert from 'node:assert'
16
+ import util from 'node:util'
17
+
18
+ import {
19
+ ElementLinesRendererBase,
20
+ ElementStringRendererBase,
21
+ } from './element-renderer-base.js'
22
+ import {
23
+ AbstractDocAnchorType,
24
+ type AbstractDocBlockQuoteType,
25
+ AbstractDocEmptyType,
26
+ AbstractDocFormulaType,
27
+ type AbstractDocHeadingType,
28
+ AbstractDocImageType,
29
+ AbstractDocMarkupType,
30
+ type AbstractDocParamListType,
31
+ type AbstractDocParaType,
32
+ AbstractDocRefTextType,
33
+ type AbstractDocSimpleSectType,
34
+ AbstractDocURLLink,
35
+ AbstractEmojiType,
36
+ type AbstractPreformattedType,
37
+ type AbstractSpType,
38
+ type AbstractVerbatimType,
39
+ ParameterNameDataModel,
40
+ ParameterTypeDataModel,
41
+ type AbstractDescriptionType,
42
+ HrulerDataModel,
43
+ } from '../../doxygen/data-model/compounds/descriptiontype-dm.js'
44
+ import { AbstractRefTextType } from '../../doxygen/data-model/compounds/reftexttype-dm.js'
45
+ import {
46
+ getPermalinkAnchor,
47
+ isUrl,
48
+ stripLeadingAndTrailingNewLines,
49
+ } from '../utils.js'
50
+ import {
51
+ AbstractDocHtmlOnlyType,
52
+ LatexOnlyDataModel,
53
+ ManOnlyDataModel,
54
+ RtfOnlyDataModel,
55
+ XmlOnlyDataModel,
56
+ } from '../../doxygen/data-model/compounds/compounddef-dm.js'
57
+ import { renderParagraphs } from '../cli-options.js'
58
+ import { AbstractDataModelBase } from '../../doxygen/data-model/types.js'
59
+
60
+ // ----------------------------------------------------------------------------
61
+
62
+ /**
63
+ * Primary renderer for description type elements in documentation.
64
+ *
65
+ * @remarks
66
+ * Handles the rendering of Doxygen description elements that contain
67
+ * formatted text, converting them into appropriate output lines for
68
+ * documentation generation. Supports both brief and detailed descriptions.
69
+ *
70
+ * @public
71
+ */
72
+ export class DescriptionTypeLinesRenderer extends ElementLinesRendererBase {
73
+ /**
74
+ * Renders a description type element to formatted output lines.
75
+ *
76
+ * @remarks
77
+ * Passes the element's children to the workspace array renderer,
78
+ * producing one or more output lines. An optional title on the element
79
+ * is currently not rendered and triggers a console error if present.
80
+ *
81
+ * @param element - The description element to render
82
+ * @param type - The rendering context type
83
+ * @returns Array of formatted output lines
84
+ */
85
+ renderToLines(element: AbstractDescriptionType, type: string): string[] {
86
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
87
+
88
+ if (element.title !== undefined && element.title.length > 0) {
89
+ console.error('title ignored in', element.constructor.name)
90
+ }
91
+
92
+ const lines: string[] = []
93
+ lines.push(
94
+ ...this.workspace.renderElementsArrayToLines(element.children, type)
95
+ )
96
+
97
+ return lines
98
+ }
99
+ }
100
+
101
+ // ----------------------------------------------------------------------------
102
+
103
+ /**
104
+ * Renderer for Doxygen paragraph elements in documentation.
105
+ *
106
+ * @remarks
107
+ * Handles the complex rendering of paragraph elements that can contain
108
+ * mixed content including text, markup, links, and block-level elements.
109
+ * Manages paragraph boundaries and applies appropriate HTML wrapping.
110
+ *
111
+ * @public
112
+ */
113
+ export class DocParaTypeLinesRenderer extends ElementLinesRendererBase {
114
+ /**
115
+ * Renders a paragraph element to formatted output lines.
116
+ *
117
+ * @remarks
118
+ * Processes child elements to determine paragraph boundaries and applies
119
+ * appropriate HTML paragraph tags when enabled. Handles mixed content
120
+ * including inline elements and block-level elements with proper spacing.
121
+ *
122
+ * @param element - The paragraph element to render
123
+ * @param type - The rendering context type
124
+ * @returns Array of formatted output lines with paragraph structure
125
+ */
126
+ renderToLines(element: AbstractDocParaType, type: string): string[] {
127
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
128
+ // console.log(element)
129
+
130
+ const lines: string[] = []
131
+
132
+ let inParagraph = false
133
+ let text = ''
134
+ assert(element.children !== undefined)
135
+ for (const child of element.children) {
136
+ // console.log(child)
137
+ if (this.isParagraph(child)) {
138
+ inParagraph = true
139
+ text += this.workspace.renderElementToString(
140
+ child,
141
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
142
+ renderParagraphs ? 'html' : type
143
+ )
144
+ } else {
145
+ if (inParagraph) {
146
+ text = text.trim()
147
+ // console.log(text)
148
+ if (text.length > 0) {
149
+ lines.push('')
150
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
151
+ if ((element.skipPara ?? false) || !renderParagraphs) {
152
+ lines.push(text)
153
+ } else {
154
+ lines.push(`<p>${text}</p>`)
155
+ lines.push('')
156
+ }
157
+ }
158
+ inParagraph = false
159
+ text = ''
160
+ }
161
+ lines.push(...this.workspace.renderElementToLines(child, type))
162
+ }
163
+ }
164
+
165
+ if (inParagraph) {
166
+ text = text.trim()
167
+ // console.log(text)
168
+ if (text.length > 0) {
169
+ lines.push('')
170
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
171
+ if ((element.skipPara ?? false) || !renderParagraphs) {
172
+ lines.push(text)
173
+ } else {
174
+ lines.push(`<p>${text}</p>`)
175
+ lines.push('')
176
+ }
177
+ }
178
+ }
179
+
180
+ // console.log(lines)
181
+ return lines
182
+ }
183
+
184
+ // docCmdGroup: 2109
185
+
186
+ /**
187
+ * Determines if an element should be rendered within a paragraph context.
188
+ *
189
+ * @remarks
190
+ * Classifies documentation elements as either inline (paragraph content)
191
+ * or block-level elements. This classification controls whether elements
192
+ * are wrapped in paragraph tags or rendered as standalone blocks.
193
+ *
194
+ * @param element - The element to classify
195
+ * @returns True if the element should be rendered within a paragraph
196
+ */
197
+ isParagraph(element: string | AbstractDataModelBase): boolean {
198
+ if (typeof element === 'string') {
199
+ return true
200
+ } else if (element instanceof HrulerDataModel) {
201
+ return false // Explicitly not inside a paragraph.
202
+ // } else if (element instanceof LineBreakDataModel) {
203
+ // return false // Explicitly not inside a paragraph.
204
+ } else if (element instanceof AbstractDocHtmlOnlyType) {
205
+ return false // Explicitly not inside a paragraph.
206
+ } else if (element instanceof ManOnlyDataModel) {
207
+ return false // Explicitly not inside a paragraph.
208
+ } else if (element instanceof XmlOnlyDataModel) {
209
+ return false // Explicitly not inside a paragraph.
210
+ } else if (element instanceof RtfOnlyDataModel) {
211
+ return false // Explicitly not inside a paragraph.
212
+ } else if (element instanceof LatexOnlyDataModel) {
213
+ return false // Explicitly not inside a paragraph.
214
+ } else if (element instanceof AbstractDocURLLink) {
215
+ return true
216
+ } else if (element instanceof AbstractDocMarkupType) {
217
+ return true
218
+ } else if (element instanceof AbstractDocImageType) {
219
+ return true
220
+ // Not defined yet.
221
+ // <xsd:element name="dot" type="docDotMscType" />
222
+ // <xsd:element name="msc" type="docDotMscType" />
223
+ // <xsd:element name="plantuml" type="docPlantumlType" />
224
+ } else if (element instanceof AbstractDocAnchorType) {
225
+ return true
226
+ } else if (element instanceof AbstractDocFormulaType) {
227
+ return true
228
+ } else if (element instanceof AbstractDocRefTextType) {
229
+ return true
230
+ } else if (element instanceof AbstractEmojiType) {
231
+ return true
232
+ } else if (element instanceof AbstractDocEmptyType) {
233
+ return true
234
+ }
235
+
236
+ // The rest, from "programlisting" on, are not paragraphs.
237
+ return false
238
+ }
239
+ }
240
+
241
+ // ----------------------------------------------------------------------------
242
+
243
+ /**
244
+ * Renderer for URL link elements in documentation.
245
+ *
246
+ * @remarks
247
+ * Converts Doxygen URL link elements to HTML anchor tags with proper
248
+ * href attributes. Processes child elements to generate the link text
249
+ * content while preserving formatting.
250
+ *
251
+ * @public
252
+ */
253
+ export class DocURLLinkStringRenderer extends ElementStringRendererBase {
254
+ /**
255
+ * Renders a URL link element to a formatted HTML anchor string.
256
+ *
257
+ * @remarks
258
+ * Creates an HTML anchor element with the specified URL and renders
259
+ * child elements as the link text content. Maintains proper link
260
+ * structure for external and internal references.
261
+ *
262
+ * @param element - The URL link element to render
263
+ * @param type - The rendering context type
264
+ * @returns The formatted HTML anchor string
265
+ */
266
+ renderToString(element: AbstractDocURLLink, type: string): string {
267
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
268
+
269
+ let text = ''
270
+ text += `<a href="${element.url}">`
271
+ text += this.workspace.renderElementsArrayToString(element.children, type)
272
+ text += '</a>'
273
+
274
+ return text
275
+ }
276
+ }
277
+
278
+ // ----------------------------------------------------------------------------
279
+
280
+ const htmlElements: Record<string, string> = {
281
+ BoldDataModel: 'b',
282
+ EmphasisDataModel: 'em',
283
+ UnderlineDataModel: 'u',
284
+ SubscriptDataModel: 'sub',
285
+ SuperscriptDataModel: 'sup',
286
+ }
287
+
288
+ /**
289
+ * Renderer for text markup elements in documentation.
290
+ *
291
+ * @remarks
292
+ * Handles common text formatting elements such as bold, emphasis, underline,
293
+ * subscript, and superscript. Maps Doxygen markup types to appropriate
294
+ * HTML elements for consistent text formatting.
295
+ *
296
+ * @public
297
+ */
298
+ export class DocMarkupTypeStringRenderer extends ElementStringRendererBase {
299
+ /**
300
+ * Renders a markup element to a formatted HTML string.
301
+ *
302
+ * @remarks
303
+ * Converts Doxygen markup elements to their corresponding HTML tags
304
+ * and processes child content. Supports standard formatting elements
305
+ * with error handling for unrecognised markup types.
306
+ *
307
+ * @param element - The markup element to render
308
+ * @param type - The rendering context type
309
+ * @returns The formatted HTML string with markup tags
310
+ */
311
+ renderToString(element: AbstractDocMarkupType, type: string): string {
312
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
313
+
314
+ const htmlElement: string | undefined =
315
+ htmlElements[element.constructor.name]
316
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
317
+ if (htmlElement === undefined) {
318
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
319
+ console.error(
320
+ element.constructor.name,
321
+ 'not yet rendered in',
322
+ this.constructor.name
323
+ )
324
+ return ''
325
+ }
326
+
327
+ let text = ''
328
+ text += `<${htmlElement}>`
329
+ text += this.workspace.renderElementsArrayToString(element.children, type)
330
+ text += `</${htmlElement}>`
331
+
332
+ return text
333
+ }
334
+ }
335
+
336
+ /**
337
+ * Renderer for computer output or code text elements.
338
+ *
339
+ * @remarks
340
+ * Formats text as computer output using CSS styling rather than code blocks.
341
+ * Handles inline code formatting that may contain HTML elements while
342
+ * maintaining compatibility with Docusaurus rendering.
343
+ *
344
+ * @public
345
+ */
346
+ export class ComputerOutputDataModelStringRenderer extends ElementStringRendererBase {
347
+ /**
348
+ * Renders computer output text to a formatted HTML string.
349
+ *
350
+ * @remarks
351
+ * Wraps content in a styled span element for computer output formatting.
352
+ * Uses CSS classes instead of code blocks to handle mixed content
353
+ * including HTML elements like anchors.
354
+ *
355
+ * @param element - The computer output element to render
356
+ * @param type - The rendering context type
357
+ * @returns The formatted HTML string with computer output styling
358
+ */
359
+ renderToString(element: AbstractDocMarkupType, type: string): string {
360
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
361
+
362
+ let text = ''
363
+
364
+ // Cannot use `...` since it may include html code (like <a>).
365
+ // Cannot use <code> since Docusaurus renders it as a block if it includes
366
+ // other elements like <a>.
367
+ text += '<span class="doxyComputerOutput">'
368
+ // Inherit type, do not use 'html' since Docusaurus may parse
369
+ // it as markdown.
370
+ text += this.workspace.renderElementsArrayToString(element.children, type)
371
+ text += '</span>'
372
+
373
+ return text
374
+ }
375
+ }
376
+
377
+ // ----------------------------------------------------------------------------
378
+
379
+ /**
380
+ * Renderer for reference text elements within descriptions.
381
+ *
382
+ * @remarks
383
+ * Handles cross-references to other documentation elements by generating
384
+ * appropriate links when permalinks are available. Provides fallback
385
+ * text rendering for unresolved references.
386
+ *
387
+ * @public
388
+ */
389
+ export class DocRefTextTypeStringRenderer extends ElementStringRendererBase {
390
+ /**
391
+ * Renders a reference text element to a formatted string with linking.
392
+ *
393
+ * @remarks
394
+ * Creates HTML anchor tags for valid references with permalinks,
395
+ * otherwise renders as plain text. Logs warnings for unsupported
396
+ * external references that are not yet implemented.
397
+ *
398
+ * @param element - The reference text element to render
399
+ * @param type - The rendering context type
400
+ * @returns The formatted string with optional link
401
+ */
402
+ renderToString(element: AbstractDocRefTextType, type: string): string {
403
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
404
+
405
+ if (element.external !== undefined && element.external.length > 0) {
406
+ console.error('external ignored in', element.constructor.name)
407
+ }
408
+
409
+ let text = ''
410
+
411
+ let permalink: string | undefined = undefined
412
+
413
+ if (element.refid.length > 0) {
414
+ permalink = this.workspace.getPermalink({
415
+ refid: element.refid,
416
+ kindref: element.kindref,
417
+ })
418
+ }
419
+
420
+ if (permalink !== undefined && permalink.length > 1) {
421
+ text += `<a href="${permalink}">`
422
+ text += this.workspace.renderElementsArrayToString(element.children, type)
423
+ text += '</a>'
424
+ } else {
425
+ text += this.workspace.renderElementsArrayToString(element.children, type)
426
+ }
427
+
428
+ return text
429
+ }
430
+ }
431
+
432
+ // ----------------------------------------------------------------------------
433
+
434
+ // <xsd:simpleType name="DoxSimpleSectKind">
435
+ // <xsd:restriction base="xsd:string">
436
+ // <xsd:enumeration value="see" />
437
+ // <xsd:enumeration value="return" />
438
+ // <xsd:enumeration value="author" />
439
+ // <xsd:enumeration value="authors" />
440
+ // <xsd:enumeration value="version" />
441
+ // <xsd:enumeration value="since" />
442
+ // <xsd:enumeration value="date" />
443
+ // <xsd:enumeration value="note" />
444
+ // <xsd:enumeration value="warning" />
445
+ // <xsd:enumeration value="pre" />
446
+ // <xsd:enumeration value="post" />
447
+ // <xsd:enumeration value="copyright" />
448
+ // <xsd:enumeration value="invariant" />
449
+ // <xsd:enumeration value="remark" />
450
+ // <xsd:enumeration value="attention" />
451
+ // <xsd:enumeration value="important" />
452
+ // <xsd:enumeration value="par" />
453
+ // <xsd:enumeration value="rcs" />
454
+ // </xsd:restriction>
455
+ // </xsd:simpleType>
456
+
457
+ /**
458
+ * Renderer for simple section elements in documentation.
459
+ *
460
+ * @remarks
461
+ * Handles various types of documentation sections including returns,
462
+ * authors, notes, warnings, and custom sections. Maps section types
463
+ * to appropriate HTML structures and Docusaurus admonitions.
464
+ *
465
+ * @public
466
+ */
467
+ export class DocSimpleSectTypeLinesRenderer extends ElementLinesRendererBase {
468
+ /**
469
+ * Renders a simple section element to formatted output lines.
470
+ *
471
+ * @remarks
472
+ * Converts Doxygen simple sections to HTML definition lists or
473
+ * Docusaurus admonitions based on section type. Supports standard
474
+ * sections like returns and notes, plus custom paragraph sections.
475
+ *
476
+ * @param element - The simple section element to render
477
+ * @param type - The rendering context type
478
+ * @returns Array of formatted output lines for the section
479
+ */
480
+ renderToLines(element: AbstractDocSimpleSectType, type: string): string[] {
481
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
482
+
483
+ const lines: string[] = []
484
+
485
+ // doxygen.git/src/translator_en.h
486
+ const DoxSimpleSectKind: Record<string, string> = {
487
+ see: 'See Also',
488
+ return: 'Returns',
489
+ author: 'Author',
490
+ authors: 'Authors',
491
+ version: 'Version',
492
+ since: 'Since',
493
+ date: 'Date',
494
+ // note -> :::info (note is white in Docusaurus)
495
+ // warning -> :::warning
496
+ pre: 'Precondition',
497
+ post: 'Postcondition',
498
+ copyright: 'Copyright',
499
+ invariant: 'Invariant',
500
+ remark: 'Remarks',
501
+ // attention: -> :::danger
502
+ // important: -> :::tip
503
+ // par: - paragraph with custom title
504
+ // rcs: - apparently ignored
505
+ }
506
+
507
+ lines.push('')
508
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
509
+ if (DoxSimpleSectKind[element.kind] !== undefined) {
510
+ const { kind } = element
511
+
512
+ const title = DoxSimpleSectKind[kind]
513
+ const body = this.workspace
514
+ .renderElementsArrayToString(element.children, 'html')
515
+ .trim()
516
+ lines.push('<dl class="doxySectionUser">')
517
+ lines.push(`<dt>${title}</dt>`)
518
+ if (body.length === 0) {
519
+ lines.push('<dd></dd>')
520
+ } else {
521
+ if (!body.includes('\n')) {
522
+ lines.push(`<dd>${body}</dd>`)
523
+ } else {
524
+ lines.push('<dd>')
525
+ lines.push(...body.split('\n'))
526
+ lines.push('</dd>')
527
+ }
528
+ }
529
+ lines.push('</dl>')
530
+ } else if (element.kind === 'par') {
531
+ assert(element.title !== undefined)
532
+ const title = element.title.replace(/\.$/, '')
533
+ const body = this.workspace
534
+ .renderElementsArrayToString(element.children, 'html')
535
+ .trim()
536
+ lines.push('<dl class="doxySectionUser">')
537
+ lines.push(`<dt>${title}</dt>`)
538
+ if (body.length === 0) {
539
+ lines.push('<dd></dd>')
540
+ } else {
541
+ if (!body.includes('\n')) {
542
+ lines.push(`<dd>${body}</dd>`)
543
+ } else {
544
+ lines.push('<dd>')
545
+ lines.push(...body.split('\n'))
546
+ lines.push('</dd>')
547
+ }
548
+ }
549
+ lines.push('</dl>')
550
+ } else if (element.kind === 'note') {
551
+ // https://docusaurus.io/docs/markdown-features/admonitions
552
+ lines.push('')
553
+ lines.push(':::info')
554
+ lines.push(
555
+ this.workspace
556
+ .renderElementToString(
557
+ element.children,
558
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
559
+ renderParagraphs ? 'html' : 'markdown'
560
+ )
561
+ .trim()
562
+ )
563
+ lines.push(':::')
564
+ } else if (element.kind === 'warning') {
565
+ lines.push('')
566
+ lines.push(':::warning')
567
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
568
+ lines.push(
569
+ this.workspace
570
+ .renderElementToString(
571
+ element.children,
572
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
573
+ renderParagraphs ? 'html' : 'markdown'
574
+ )
575
+ .trim()
576
+ )
577
+ lines.push(':::')
578
+ } else if (element.kind === 'attention') {
579
+ lines.push('')
580
+ lines.push(':::danger')
581
+ lines.push(
582
+ this.workspace
583
+ .renderElementToString(
584
+ element.children,
585
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
586
+ renderParagraphs ? 'html' : 'markdown'
587
+ )
588
+ .trim()
589
+ )
590
+ lines.push(':::')
591
+ } else if (element.kind === 'important') {
592
+ lines.push('')
593
+ lines.push(':::tip')
594
+ lines.push(
595
+ this.workspace
596
+ .renderElementToString(
597
+ element.children,
598
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
599
+ renderParagraphs ? 'html' : 'markdown'
600
+ )
601
+ .trim()
602
+ )
603
+ lines.push(':::')
604
+ } else {
605
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
606
+ console.error(
607
+ element.constructor.name,
608
+ 'kind',
609
+ element.kind,
610
+ 'not yet rendered in',
611
+ this.constructor.name
612
+ )
613
+ }
614
+ lines.push('')
615
+
616
+ return lines
617
+ }
618
+ }
619
+
620
+ // ----------------------------------------------------------------------------
621
+
622
+ /**
623
+ * Renderer for space elements in documentation.
624
+ *
625
+ * @remarks
626
+ * Handles spacing elements that insert a specified number of space
627
+ * characters into the output. Supports both single spaces and
628
+ * multiple space sequences for formatting control.
629
+ *
630
+ * @public
631
+ */
632
+ export class SpTypeStringRenderer extends ElementStringRendererBase {
633
+ /**
634
+ * Renders a space element to a string of space characters.
635
+ *
636
+ * @remarks
637
+ * Generates the specified number of space characters based on the
638
+ * element's value attribute. Defaults to a single space if no
639
+ * value is specified.
640
+ *
641
+ * @param element - The space element to render
642
+ * @param type - The rendering context type (unused in implementation)
643
+ * @returns String containing the specified number of spaces
644
+ */
645
+ renderToString(element: AbstractSpType, type: string): string {
646
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
647
+
648
+ let text = ''
649
+ let spaces = 1
650
+
651
+ if (element.value !== undefined && element.value.valueOf() > 1) {
652
+ spaces = element.value.valueOf()
653
+ }
654
+
655
+ for (let i = 0; i < spaces; i++) {
656
+ text += ' '
657
+ }
658
+
659
+ return text
660
+ }
661
+ }
662
+
663
+ // ----------------------------------------------------------------------------
664
+
665
+ /**
666
+ * Renderer for empty or structural elements in documentation.
667
+ *
668
+ * @remarks
669
+ * Handles various empty elements that provide structural formatting
670
+ * including horizontal rules, line breaks, and non-breakable spaces.
671
+ * Maps element types to appropriate HTML equivalents.
672
+ *
673
+ * @public
674
+ */
675
+ export class DocEmptyTypeStringRenderer extends ElementStringRendererBase {
676
+ /**
677
+ * Renders an empty element to its HTML equivalent.
678
+ *
679
+ * @remarks
680
+ * Converts structural elements like horizontal rules and line breaks
681
+ * to their corresponding HTML tags. Provides error handling for
682
+ * unrecognised empty element types.
683
+ *
684
+ * @param element - The empty element to render
685
+ * @param type - The rendering context type (unused in implementation)
686
+ * @returns The formatted HTML string for the structural element
687
+ */
688
+ renderToString(element: AbstractDocEmptyType, type: string): string {
689
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
690
+
691
+ let text = ''
692
+
693
+ switch (element.constructor.name) {
694
+ case 'HrulerDataModel':
695
+ text += '\n'
696
+ text += '<hr/>'
697
+ text += '\n'
698
+ break
699
+
700
+ case 'LineBreakDataModel':
701
+ text += '\n'
702
+ text += '<br/>'
703
+ break
704
+
705
+ case 'NonBreakableSpaceDataModel':
706
+ text += '&nbsp;'
707
+ break
708
+
709
+ default:
710
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
711
+ console.error(
712
+ element.constructor.name,
713
+ 'not yet rendered in',
714
+ this.constructor.name
715
+ )
716
+ }
717
+
718
+ return text
719
+ }
720
+ }
721
+
722
+ // ----------------------------------------------------------------------------
723
+
724
+ /**
725
+ * Renderer for parameter list elements in documentation.
726
+ *
727
+ * @remarks
728
+ * Handles complex parameter documentation including template parameters,
729
+ * function parameters, return values, and exceptions. Generates structured
730
+ * HTML tables for organised parameter presentation.
731
+ *
732
+ * @public
733
+ */
734
+ export class DocParamListTypeLinesRenderer extends ElementLinesRendererBase {
735
+ /**
736
+ * Renders a parameter list element to formatted output lines.
737
+ *
738
+ * @remarks
739
+ * Creates HTML definition lists and tables for parameter documentation.
740
+ * Processes parameter names, types, directions, and descriptions to
741
+ * generate comprehensive parameter documentation with proper formatting.
742
+ *
743
+ * @param element - The parameter list element to render
744
+ * @param type - The rendering context type
745
+ * @returns Array of HTML strings forming the parameter documentation
746
+ */
747
+ renderToLines(element: AbstractDocParamListType, type: string): string[] {
748
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
749
+
750
+ const lines: string[] = []
751
+
752
+ if (element.parameterItems !== undefined) {
753
+ const titlesByKind: Record<string, string> = {
754
+ templateparam: 'Template Parameters',
755
+ retval: 'Return Values',
756
+ param: 'Parameters',
757
+ exception: 'Exceptions',
758
+ }
759
+
760
+ const { kind } = element
761
+
762
+ const title = titlesByKind[kind]
763
+ // eslint-disable-next-line @typescript-eslint/no-unnecessary-condition
764
+ if (title === undefined) {
765
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
766
+ console.error(
767
+ element.constructor.name,
768
+ 'kind',
769
+ kind,
770
+ 'not yet rendered in',
771
+ this.constructor.name
772
+ )
773
+ }
774
+
775
+ switch (element.constructor.name) {
776
+ case 'ParameterListDataModel':
777
+ lines.push('')
778
+ lines.push('<dl class="doxyParamsList">')
779
+ lines.push(`<dt class="doxyParamsTableTitle">${title}</dt>`)
780
+ lines.push('<dd>')
781
+ lines.push('<table class="doxyParamsTable">')
782
+
783
+ for (const parameterItem of element.parameterItems) {
784
+ // console.log(util.inspect(parameterItem,
785
+ // { compact: false, depth: 999 }))
786
+
787
+ const names: string[] = []
788
+ if (parameterItem.parameterNameList !== undefined) {
789
+ for (const parameterName of parameterItem.parameterNameList) {
790
+ // console.log(util.inspect(parameterName.children,
791
+ // { compact: false, depth: 999 }))
792
+ assert(parameterName.children !== undefined)
793
+ for (const child of parameterName.children) {
794
+ assert(child instanceof AbstractDataModelBase)
795
+ assert(child.children !== undefined)
796
+ for (const subChild of child.children) {
797
+ if (typeof subChild === 'string') {
798
+ if (child instanceof ParameterNameDataModel) {
799
+ if (child.direction !== undefined) {
800
+ names.push(`[${child.direction}] ${subChild}`)
801
+ } else {
802
+ names.push(subChild)
803
+ }
804
+ } else if (child instanceof ParameterTypeDataModel) {
805
+ console.error(
806
+ util.inspect(parameterName.children, {
807
+ compact: false,
808
+ depth: 999,
809
+ })
810
+ )
811
+ console.error(
812
+ element.constructor.name,
813
+ 'ParameterType not yet rendered in',
814
+ this.constructor.name
815
+ )
816
+ } else {
817
+ names.push(subChild)
818
+ }
819
+ } else if (subChild instanceof AbstractRefTextType) {
820
+ const name = this.workspace.renderElementToString(
821
+ subChild,
822
+ 'html'
823
+ )
824
+ names.push(name)
825
+ } else {
826
+ console.error(
827
+ util.inspect(subChild, { compact: false, depth: 999 })
828
+ )
829
+ console.error(
830
+ element.constructor.name,
831
+ 'sub child not yet rendered in',
832
+ this.constructor.name
833
+ )
834
+ }
835
+ }
836
+ }
837
+ }
838
+ }
839
+
840
+ const parameters = this.workspace
841
+ .renderElementToString(parameterItem.parameterDescription, 'html')
842
+ .trim()
843
+ const escapedName = this.workspace.renderString(
844
+ names.join(', '),
845
+ 'html'
846
+ )
847
+ lines.push('<tr class="doxyParamItem">')
848
+ lines.push(`<td class="doxyParamItemName">${escapedName}</td>`)
849
+ lines.push(
850
+ `<td class="doxyParamItemDescription">${parameters}</td>`
851
+ )
852
+ lines.push('</tr>')
853
+ }
854
+ lines.push('</table>')
855
+ lines.push('</dd>')
856
+ lines.push('</dl>')
857
+
858
+ break
859
+
860
+ default:
861
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
862
+ console.error(
863
+ element.constructor.name,
864
+ 'not yet rendered in',
865
+ this.constructor.name
866
+ )
867
+ }
868
+ }
869
+
870
+ return lines
871
+ }
872
+ }
873
+
874
+ // ----------------------------------------------------------------------------
875
+
876
+ /**
877
+ * Renderer for anchor elements in documentation.
878
+ *
879
+ * @remarks
880
+ * Creates HTML anchor elements for cross-referencing within documents.
881
+ * Generates sanitised anchor IDs that can be used for permalink
882
+ * navigation and internal linking.
883
+ *
884
+ * @public
885
+ */
886
+ export class DocAnchorTypeLinesRenderer extends ElementLinesRendererBase {
887
+ /**
888
+ * Renders an anchor element to formatted output lines.
889
+ *
890
+ * @remarks
891
+ * Creates an HTML anchor element with a sanitised ID attribute
892
+ * for use in permalink generation and cross-referencing within
893
+ * the documentation.
894
+ *
895
+ * @param element - The anchor element to render
896
+ * @param type - The rendering context type (unused in implementation)
897
+ * @returns Array containing the HTML anchor element
898
+ */
899
+ renderToLines(element: AbstractDocAnchorType, type: string): string[] {
900
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
901
+
902
+ const lines: string[] = []
903
+
904
+ const anchor = getPermalinkAnchor(element.id)
905
+ lines.push(`<a id="${anchor}"></a>`)
906
+
907
+ return lines
908
+ }
909
+ }
910
+
911
+ // ----------------------------------------------------------------------------
912
+
913
+ /**
914
+ * Renderer for verbatim text elements in documentation.
915
+ *
916
+ * @remarks
917
+ * Handles verbatim text blocks that should be displayed exactly as
918
+ * written without interpretation. Generates HTML pre and code elements
919
+ * with proper formatting for code snippets and literal text.
920
+ *
921
+ * @public
922
+ */
923
+ export class VerbatimStringRenderer extends ElementStringRendererBase {
924
+ /**
925
+ * Renders a verbatim element to formatted HTML code block.
926
+ *
927
+ * @remarks
928
+ * Creates HTML pre and code elements for literal text display.
929
+ * Strips leading and trailing newlines while preserving internal
930
+ * formatting and enables copy functionality through Docusaurus.
931
+ *
932
+ * @param element - The verbatim element to render
933
+ * @param type - The rendering context type
934
+ * @returns The formatted HTML code block string
935
+ */
936
+ renderToString(element: AbstractVerbatimType, type: string): string {
937
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
938
+
939
+ let text = ''
940
+
941
+ text += '\n'
942
+
943
+ // Docusaurus adds the copy button.
944
+ // The content must be on the same line.
945
+ text += '\n'
946
+ text += '<pre><code>'
947
+ text += stripLeadingAndTrailingNewLines(
948
+ this.workspace.renderElementsArrayToString(element.children, 'html')
949
+ )
950
+ text += '\n'
951
+ text += '</code></pre>'
952
+ text += '\n'
953
+ // text += '\n'
954
+
955
+ return text
956
+ }
957
+ }
958
+
959
+ /**
960
+ * Renderer for preformatted text elements in documentation.
961
+ *
962
+ * @remarks
963
+ * Similar to verbatim rendering but specifically for preformatted content.
964
+ * Maintains exact spacing and formatting while providing HTML code block
965
+ * structure compatible with Docusaurus features.
966
+ *
967
+ * @public
968
+ */
969
+ export class PreformattedStringRenderer extends ElementStringRendererBase {
970
+ /**
971
+ * Renders a preformatted element to formatted HTML code block.
972
+ *
973
+ * @remarks
974
+ * Creates HTML pre and code elements for preformatted text display.
975
+ * Preserves exact formatting while stripping unnecessary newlines
976
+ * and enabling Docusaurus copy button functionality.
977
+ *
978
+ * @param element - The preformatted element to render
979
+ * @param type - The rendering context type
980
+ * @returns The formatted HTML code block string
981
+ */
982
+ renderToString(element: AbstractPreformattedType, type: string): string {
983
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
984
+
985
+ let text = ''
986
+
987
+ text += '\n'
988
+
989
+ // Docusaurus adds the copy button.
990
+ // The content must be on the same line.
991
+ text += '\n'
992
+ text += '<pre><code>'
993
+ text += stripLeadingAndTrailingNewLines(
994
+ this.workspace.renderElementsArrayToString(element.children, 'html')
995
+ )
996
+ text += '\n'
997
+ text += '</code></pre>'
998
+ text += '\n'
999
+ // text += '\n'
1000
+
1001
+ return text
1002
+ }
1003
+ }
1004
+
1005
+ // ----------------------------------------------------------------------------
1006
+
1007
+ /**
1008
+ * Renderer for mathematical formula elements in documentation.
1009
+ *
1010
+ * @remarks
1011
+ * Handles LaTeX mathematical formulae by converting them to HTML code
1012
+ * elements. Provides warnings for limited formula rendering capabilities
1013
+ * and maintains formula content for basic display.
1014
+ *
1015
+ * @public
1016
+ */
1017
+ export class FormulaStringRenderer extends ElementStringRendererBase {
1018
+ /**
1019
+ * Renders a formula element to formatted HTML code.
1020
+ *
1021
+ * @remarks
1022
+ * Converts LaTeX formulae to HTML code elements with basic formatting.
1023
+ * Logs warnings about limited rendering capabilities and ignores
1024
+ * formula IDs while preserving mathematical content.
1025
+ *
1026
+ * @param element - The formula element to render
1027
+ * @param type - The rendering context type
1028
+ * @returns The formatted HTML code string containing the formula
1029
+ */
1030
+ renderToString(element: AbstractDocFormulaType, type: string): string {
1031
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1032
+
1033
+ let text = ''
1034
+
1035
+ const formula = this.workspace.renderString(element.text, 'html')
1036
+ if (this.workspace.options.verbose) {
1037
+ console.warn('LaTeX formula', formula, 'not rendered properly')
1038
+ }
1039
+
1040
+ // element.id is ignored.
1041
+ // Docusaurus renders it as a div with copy button.
1042
+ text += `<code>${formula}</code>`
1043
+
1044
+ return text
1045
+ }
1046
+ }
1047
+
1048
+ // ----------------------------------------------------------------------------
1049
+
1050
+ /**
1051
+ * Renderer for image elements in documentation.
1052
+ *
1053
+ * @remarks
1054
+ * Handles image rendering with support for various attributes including
1055
+ * dimensions, captions, and source URLs. Generates HTML figure elements
1056
+ * with proper image handling for both local and remote sources.
1057
+ *
1058
+ * @public
1059
+ */
1060
+ export class ImageStringRenderer extends ElementStringRendererBase {
1061
+ /**
1062
+ * Renders an image element to formatted HTML figure.
1063
+ *
1064
+ * @remarks
1065
+ * Creates HTML figure and img elements with support for width, height,
1066
+ * alt text, captions, and inline styling. Handles both URL and local
1067
+ * image sources while skipping LaTeX-specific images.
1068
+ *
1069
+ * @param element - The image element to render
1070
+ * @param type - The rendering context type (unused in implementation)
1071
+ * @returns The formatted HTML figure string
1072
+ */
1073
+ renderToString(element: AbstractDocImageType, type: string): string {
1074
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1075
+
1076
+ let text = ''
1077
+ if (element.type === 'html') {
1078
+ text += '\n'
1079
+ text += '<figure>\n'
1080
+ text += ' <img'
1081
+ if (element.name !== undefined) {
1082
+ const { name } = element
1083
+ let imageSrc = ''
1084
+ if (isUrl(name)) {
1085
+ imageSrc = name
1086
+ } else {
1087
+ imageSrc = this.workspace.options.baseUrl
1088
+ imageSrc += this.workspace.options.imagesFolderPath
1089
+ imageSrc += '/'
1090
+ imageSrc += name
1091
+ }
1092
+ text += ` src="${imageSrc}"`
1093
+ }
1094
+ if (element.width !== undefined) {
1095
+ text += ` width="${element.width}"`
1096
+ }
1097
+ if (element.height !== undefined) {
1098
+ text += ` height="${element.height}"`
1099
+ }
1100
+ if (element.alt !== undefined) {
1101
+ text += ` alt="${element.alt}"`
1102
+ }
1103
+ if (element.inline?.valueOf() ?? false) {
1104
+ text += ' class="inline"'
1105
+ }
1106
+ text += '></img>'
1107
+ if (element.caption !== undefined) {
1108
+ const elementCaptionHtml = this.workspace.renderString(
1109
+ element.caption,
1110
+ 'html'
1111
+ )
1112
+ text += '\n'
1113
+ text += ` <figcaption>${elementCaptionHtml}</figcaption>`
1114
+ } else if (element.children !== undefined) {
1115
+ const caption = this.workspace
1116
+ .renderElementsArrayToString(element.children, 'html')
1117
+ .trim()
1118
+ if (caption.length > 0) {
1119
+ text += '\n'
1120
+ text += ` <figcaption>${caption}</figcaption>`
1121
+ }
1122
+ }
1123
+ text += '\n'
1124
+ text += '</figure>'
1125
+ } else if (element.type === 'latex') {
1126
+ // Skipped, no LaTeX images rendered.
1127
+ } else {
1128
+ console.error(
1129
+ 'Image type',
1130
+ element.type,
1131
+ 'not rendered in',
1132
+ this.constructor.name
1133
+ )
1134
+ }
1135
+ return text
1136
+ }
1137
+ }
1138
+
1139
+ // ----------------------------------------------------------------------------
1140
+
1141
+ /**
1142
+ * Renderer for HTML-only content elements in documentation.
1143
+ *
1144
+ * @remarks
1145
+ * Handles content that should only appear in HTML output formats.
1146
+ * Processes HTML-specific markup while converting it to appropriate
1147
+ * text format for cross-platform compatibility.
1148
+ *
1149
+ * @public
1150
+ */
1151
+ export class HtmlOnlyStringRenderer extends ElementStringRendererBase {
1152
+ /**
1153
+ * Renders an HTML-only element to formatted text.
1154
+ *
1155
+ * @remarks
1156
+ * Converts HTML-only content to plain text format for broader
1157
+ * compatibility. Processes the element's text content through
1158
+ * the workspace renderer with text formatting.
1159
+ *
1160
+ * @param element - The HTML-only element to render
1161
+ * @param type - The rendering context type (unused in implementation)
1162
+ * @returns The formatted text string
1163
+ */
1164
+ renderToString(element: AbstractDocHtmlOnlyType, type: string): string {
1165
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1166
+
1167
+ let text = ''
1168
+ text += this.workspace.renderString(element.text, 'text')
1169
+
1170
+ return text
1171
+ }
1172
+ }
1173
+
1174
+ // ----------------------------------------------------------------------------
1175
+
1176
+ /**
1177
+ * Renderer for heading elements in documentation.
1178
+ *
1179
+ * @remarks
1180
+ * Converts Doxygen heading elements to Markdown heading syntax.
1181
+ * Supports multiple heading levels while providing warnings for
1182
+ * potentially problematic heading configurations.
1183
+ *
1184
+ * @public
1185
+ */
1186
+ export class HeadingLinesRenderer extends ElementLinesRendererBase {
1187
+ /**
1188
+ * Renders a heading element to formatted Markdown heading lines.
1189
+ *
1190
+ * @remarks
1191
+ * Creates Markdown-style headings with appropriate hash symbols
1192
+ * based on the heading level. Warns about level 1 headings that
1193
+ * may interfere with Docusaurus page structure.
1194
+ *
1195
+ * @param element - The heading element to render
1196
+ * @param type - The rendering context type
1197
+ * @returns Array containing the formatted Markdown heading
1198
+ */
1199
+ renderToLines(element: AbstractDocHeadingType, type: string): string[] {
1200
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1201
+
1202
+ const lines: string[] = []
1203
+
1204
+ if (element.level === 1) {
1205
+ if (this.workspace.options.verbose) {
1206
+ console.warn('Level 1 Heading interferes with Docusaurus pages')
1207
+ }
1208
+ }
1209
+ lines.push('')
1210
+
1211
+ let text = ''
1212
+ text += '#'.repeat(element.level)
1213
+ text += ' '
1214
+ text += this.workspace.renderElementsArrayToString(
1215
+ element.children,
1216
+ 'markdown'
1217
+ )
1218
+ lines.push(text)
1219
+
1220
+ return lines
1221
+ }
1222
+ }
1223
+
1224
+ // ----------------------------------------------------------------------------
1225
+
1226
+ /**
1227
+ * Renderer for emoji elements in documentation.
1228
+ *
1229
+ * @remarks
1230
+ * Handles Unicode emoji characters by wrapping them in appropriate
1231
+ * HTML span elements with CSS styling. Provides consistent emoji
1232
+ * display across different platforms and browsers.
1233
+ *
1234
+ * @public
1235
+ */
1236
+ export class EmojiStringRenderer extends ElementStringRendererBase {
1237
+ /**
1238
+ * Renders an emoji element to formatted HTML span.
1239
+ *
1240
+ * @remarks
1241
+ * Creates an HTML span element with CSS class for emoji styling
1242
+ * and includes the Unicode emoji character. Ensures consistent
1243
+ * emoji presentation in documentation output.
1244
+ *
1245
+ * @param element - The emoji element to render
1246
+ * @param type - The rendering context type (unused in implementation)
1247
+ * @returns The formatted HTML span string with emoji
1248
+ */
1249
+ renderToString(element: AbstractEmojiType, type: string): string {
1250
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1251
+
1252
+ let text = ''
1253
+ // <span class="emoji">&#x1f604;</span>
1254
+ text += `<span class="doxyEmoji">${element.unicode}</span>}`
1255
+
1256
+ return text
1257
+ }
1258
+ }
1259
+
1260
+ // ----------------------------------------------------------------------------
1261
+
1262
+ /**
1263
+ * Renderer for blockquote elements in documentation.
1264
+ *
1265
+ * @remarks
1266
+ * Handles blockquote formatting by wrapping content in HTML blockquote
1267
+ * elements with appropriate CSS styling. Processes child elements to
1268
+ * maintain proper content structure within quotes.
1269
+ *
1270
+ * @public
1271
+ */
1272
+ export class BlockquoteLinesRenderer extends ElementLinesRendererBase {
1273
+ /**
1274
+ * Renders a blockquote element to formatted output lines.
1275
+ *
1276
+ * @remarks
1277
+ * Creates HTML blockquote elements with CSS styling and processes
1278
+ * child elements to generate properly formatted quoted content
1279
+ * with appropriate indentation and styling.
1280
+ *
1281
+ * @param element - The blockquote element to render
1282
+ * @param type - The rendering context type
1283
+ * @returns Array of HTML strings forming the blockquote structure
1284
+ */
1285
+ renderToLines(element: AbstractDocBlockQuoteType, type: string): string[] {
1286
+ // console.log(util.inspect(element, { compact: false, depth: 999 }))
1287
+
1288
+ const lines: string[] = []
1289
+ lines.push('<blockquote class="doxyBlockQuote">')
1290
+ lines.push(
1291
+ ...this.workspace.renderElementsArrayToLines(element.children, 'html')
1292
+ )
1293
+ lines.push('</blockquote>')
1294
+
1295
+ return lines
1296
+ }
1297
+ }
1298
+
1299
+ // ----------------------------------------------------------------------------