@xpack/doxygen2docusaurus 2.0.0 → 2.2.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 (365) hide show
  1. package/LICENSE +1 -1
  2. package/README.md +3 -1
  3. package/bin/doxygen2docusaurus.js +5 -5
  4. package/dist/cli/main.d.ts +0 -14
  5. package/dist/cli/main.d.ts.map +1 -1
  6. package/dist/cli/main.js +0 -34
  7. package/dist/cli/main.js.map +1 -1
  8. package/dist/docusaurus/cli-options.d.ts +3 -292
  9. package/dist/docusaurus/cli-options.d.ts.map +1 -1
  10. package/dist/docusaurus/cli-options.js +6 -290
  11. package/dist/docusaurus/cli-options.js.map +1 -1
  12. package/dist/docusaurus/generator.d.ts +0 -172
  13. package/dist/docusaurus/generator.d.ts.map +1 -1
  14. package/dist/docusaurus/generator.js +20 -280
  15. package/dist/docusaurus/generator.js.map +1 -1
  16. package/dist/docusaurus/renderers/conceptparts.d.ts +9 -0
  17. package/dist/docusaurus/renderers/conceptparts.d.ts.map +1 -0
  18. package/dist/docusaurus/renderers/conceptparts.js +21 -0
  19. package/dist/docusaurus/renderers/conceptparts.js.map +1 -0
  20. package/dist/docusaurus/renderers/descriptiontype.d.ts +0 -417
  21. package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
  22. package/dist/docusaurus/renderers/descriptiontype.js +11 -555
  23. package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
  24. package/dist/docusaurus/renderers/docinternalstype.d.ts +0 -132
  25. package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
  26. package/dist/docusaurus/renderers/docinternalstype.js +0 -156
  27. package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
  28. package/dist/docusaurus/renderers/doclisttype.d.ts +0 -22
  29. package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
  30. package/dist/docusaurus/renderers/doclisttype.js +0 -42
  31. package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
  32. package/dist/docusaurus/renderers/doctabletype.d.ts +0 -88
  33. package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
  34. package/dist/docusaurus/renderers/doctabletype.js +1 -113
  35. package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
  36. package/dist/docusaurus/renderers/doctitletype.d.ts +0 -22
  37. package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
  38. package/dist/docusaurus/renderers/doctitletype.js +0 -42
  39. package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
  40. package/dist/docusaurus/renderers/docvariablelisttype.d.ts +0 -44
  41. package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
  42. package/dist/docusaurus/renderers/docvariablelisttype.js +1 -69
  43. package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
  44. package/dist/docusaurus/renderers/docxrefsecttype.d.ts +0 -22
  45. package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
  46. package/dist/docusaurus/renderers/docxrefsecttype.js +0 -38
  47. package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
  48. package/dist/docusaurus/renderers/element-renderer-base.d.ts +0 -74
  49. package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
  50. package/dist/docusaurus/renderers/element-renderer-base.js +0 -64
  51. package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
  52. package/dist/docusaurus/renderers/inctype.d.ts +0 -23
  53. package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
  54. package/dist/docusaurus/renderers/inctype.js +0 -41
  55. package/dist/docusaurus/renderers/inctype.js.map +1 -1
  56. package/dist/docusaurus/renderers/linkedtexttype.d.ts +0 -22
  57. package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
  58. package/dist/docusaurus/renderers/linkedtexttype.js +0 -45
  59. package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
  60. package/dist/docusaurus/renderers/listingtype.d.ts +0 -52
  61. package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
  62. package/dist/docusaurus/renderers/listingtype.js +1 -88
  63. package/dist/docusaurus/renderers/listingtype.js.map +1 -1
  64. package/dist/docusaurus/renderers/paramtype.d.ts +0 -22
  65. package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
  66. package/dist/docusaurus/renderers/paramtype.js +2 -51
  67. package/dist/docusaurus/renderers/paramtype.js.map +1 -1
  68. package/dist/docusaurus/renderers/referencetype.d.ts +0 -23
  69. package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
  70. package/dist/docusaurus/renderers/referencetype.js +0 -38
  71. package/dist/docusaurus/renderers/referencetype.js.map +1 -1
  72. package/dist/docusaurus/renderers/reftexttype.d.ts +0 -22
  73. package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
  74. package/dist/docusaurus/renderers/reftexttype.js +0 -38
  75. package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
  76. package/dist/docusaurus/renderers/reftype.d.ts +0 -22
  77. package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
  78. package/dist/docusaurus/renderers/reftype.js +0 -38
  79. package/dist/docusaurus/renderers/reftype.js.map +1 -1
  80. package/dist/docusaurus/renderers/renderers.d.ts +0 -151
  81. package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
  82. package/dist/docusaurus/renderers/renderers.js +15 -186
  83. package/dist/docusaurus/renderers/renderers.js.map +1 -1
  84. package/dist/docusaurus/renderers/substringtype.d.ts +0 -22
  85. package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
  86. package/dist/docusaurus/renderers/substringtype.js +0 -39
  87. package/dist/docusaurus/renderers/substringtype.js.map +1 -1
  88. package/dist/docusaurus/renderers/tableofcontentstype.d.ts +0 -22
  89. package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
  90. package/dist/docusaurus/renderers/tableofcontentstype.js +0 -39
  91. package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
  92. package/dist/docusaurus/types.d.ts +0 -110
  93. package/dist/docusaurus/types.d.ts.map +1 -1
  94. package/dist/docusaurus/types.js +0 -11
  95. package/dist/docusaurus/types.js.map +1 -1
  96. package/dist/docusaurus/utils.d.ts +0 -214
  97. package/dist/docusaurus/utils.d.ts.map +1 -1
  98. package/dist/docusaurus/utils.js +0 -296
  99. package/dist/docusaurus/utils.js.map +1 -1
  100. package/dist/docusaurus/view-model/classes-vm.d.ts +0 -137
  101. package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
  102. package/dist/docusaurus/view-model/classes-vm.js +9 -225
  103. package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
  104. package/dist/docusaurus/view-model/collection-base.d.ts +0 -120
  105. package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
  106. package/dist/docusaurus/view-model/collection-base.js +11 -101
  107. package/dist/docusaurus/view-model/collection-base.js.map +1 -1
  108. package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -147
  109. package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
  110. package/dist/docusaurus/view-model/compound-base-vm.js +47 -225
  111. package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
  112. package/dist/docusaurus/view-model/concepts-vm.d.ts +27 -0
  113. package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
  114. package/dist/docusaurus/view-model/concepts-vm.js +337 -0
  115. package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
  116. package/dist/docusaurus/view-model/description-anchors.d.ts +0 -58
  117. package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
  118. package/dist/docusaurus/view-model/description-anchors.js +0 -71
  119. package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
  120. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +0 -247
  121. package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
  122. package/dist/docusaurus/view-model/files-and-folders-vm.js +61 -353
  123. package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
  124. package/dist/docusaurus/view-model/groups-vm.d.ts +0 -148
  125. package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
  126. package/dist/docusaurus/view-model/groups-vm.js +2 -223
  127. package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
  128. package/dist/docusaurus/view-model/members-vm.d.ts +0 -552
  129. package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
  130. package/dist/docusaurus/view-model/members-vm.js +17 -702
  131. package/dist/docusaurus/view-model/members-vm.js.map +1 -1
  132. package/dist/docusaurus/view-model/namespaces-vm.d.ts +5 -199
  133. package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
  134. package/dist/docusaurus/view-model/namespaces-vm.js +85 -284
  135. package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
  136. package/dist/docusaurus/view-model/options.d.ts +0 -43
  137. package/dist/docusaurus/view-model/options.d.ts.map +1 -1
  138. package/dist/docusaurus/view-model/options.js +0 -57
  139. package/dist/docusaurus/view-model/options.js.map +1 -1
  140. package/dist/docusaurus/view-model/pages-vm.d.ts +0 -115
  141. package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
  142. package/dist/docusaurus/view-model/pages-vm.js +39 -162
  143. package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
  144. package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -142
  145. package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
  146. package/dist/docusaurus/view-model/tree-entries-vm.js +54 -174
  147. package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
  148. package/dist/docusaurus/view-model/view-model.d.ts +0 -125
  149. package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
  150. package/dist/docusaurus/view-model/view-model.js +20 -182
  151. package/dist/docusaurus/view-model/view-model.js.map +1 -1
  152. package/dist/docusaurus/workspace.d.ts +1 -126
  153. package/dist/docusaurus/workspace.d.ts.map +1 -1
  154. package/dist/docusaurus/workspace.js +8 -221
  155. package/dist/docusaurus/workspace.js.map +1 -1
  156. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +7 -492
  157. package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
  158. package/dist/doxygen/data-model/compounds/compounddef-dm.js +28 -672
  159. package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
  160. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -129
  161. package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
  162. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -145
  163. package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
  164. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts +23 -0
  165. package/dist/doxygen/data-model/compounds/concepts-dm.d.ts.map +1 -0
  166. package/dist/doxygen/data-model/compounds/concepts-dm.js +94 -0
  167. package/dist/doxygen/data-model/compounds/concepts-dm.js.map +1 -0
  168. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +104 -2848
  169. package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
  170. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +73 -3975
  171. package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
  172. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts +0 -165
  173. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
  174. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -229
  175. package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
  176. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts +0 -70
  177. package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
  178. package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -105
  179. package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
  180. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -84
  181. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
  182. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -122
  183. package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
  184. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -116
  185. package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
  186. package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -155
  187. package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
  188. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -138
  189. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
  190. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -180
  191. package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
  192. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -76
  193. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
  194. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -107
  195. package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
  196. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -162
  197. package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
  198. package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -203
  199. package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
  200. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -443
  201. package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
  202. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -475
  203. package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
  204. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -141
  205. package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
  206. package/dist/doxygen/data-model/compounds/memberreftype-dm.js +0 -176
  207. package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
  208. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -101
  209. package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
  210. package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -115
  211. package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
  212. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -164
  213. package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
  214. package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -208
  215. package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
  216. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -139
  217. package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
  218. package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -175
  219. package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
  220. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts +0 -120
  221. package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
  222. package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -141
  223. package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
  224. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -268
  225. package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
  226. package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -326
  227. package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
  228. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -105
  229. package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
  230. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -139
  231. package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
  232. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts +2 -0
  233. package/dist/doxygen/data-model/compounds/requirements-dm.d.ts.map +1 -0
  234. package/dist/doxygen/data-model/compounds/requirements-dm.js +2 -0
  235. package/dist/doxygen/data-model/compounds/requirements-dm.js.map +1 -0
  236. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -168
  237. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
  238. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -209
  239. package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
  240. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -267
  241. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
  242. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -354
  243. package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
  244. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -66
  245. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
  246. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -97
  247. package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
  248. package/dist/doxygen/data-model/data-model.d.ts +0 -149
  249. package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
  250. package/dist/doxygen/data-model/data-model.js +8 -200
  251. package/dist/doxygen/data-model/data-model.js.map +1 -1
  252. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -115
  253. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
  254. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -129
  255. package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
  256. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -87
  257. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
  258. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -118
  259. package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
  260. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -253
  261. package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
  262. package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -291
  263. package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
  264. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -98
  265. package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
  266. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -122
  267. package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
  268. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -82
  269. package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
  270. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -114
  271. package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
  272. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -85
  273. package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
  274. package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -107
  275. package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
  276. package/dist/doxygen/data-model/types.d.ts +0 -104
  277. package/dist/doxygen/data-model/types.d.ts.map +1 -1
  278. package/dist/doxygen/data-model/types.js +0 -52
  279. package/dist/doxygen/data-model/types.js.map +1 -1
  280. package/dist/index.d.ts +5 -16
  281. package/dist/index.d.ts.map +1 -1
  282. package/dist/index.js +5 -42
  283. package/dist/index.js.map +1 -1
  284. package/package.json +49 -52
  285. package/src/cli/main.ts +122 -0
  286. package/src/docusaurus/cli-options.ts +560 -0
  287. package/src/docusaurus/generator.ts +788 -0
  288. package/src/docusaurus/renderers/conceptparts.ts +119 -0
  289. package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
  290. package/src/docusaurus/renderers/docinternalstype.ts +354 -0
  291. package/src/docusaurus/renderers/doclisttype.ts +134 -0
  292. package/src/docusaurus/renderers/doctabletype.ts +220 -0
  293. package/src/docusaurus/renderers/doctitletype.ts +77 -0
  294. package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
  295. package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
  296. package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
  297. package/src/docusaurus/renderers/inctype.ts +75 -0
  298. package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
  299. package/src/docusaurus/renderers/listingtype.ts +235 -0
  300. package/src/docusaurus/renderers/paramtype.ts +116 -0
  301. package/src/docusaurus/renderers/referencetype.ts +83 -0
  302. package/src/docusaurus/renderers/reftexttype.ts +81 -0
  303. package/src/docusaurus/renderers/reftype.ts +77 -0
  304. package/src/docusaurus/renderers/renderers.ts +812 -0
  305. package/src/docusaurus/renderers/substringtype.ts +53 -0
  306. package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
  307. package/src/docusaurus/types.ts +187 -0
  308. package/src/docusaurus/utils.ts +409 -0
  309. package/src/docusaurus/view-model/README.md +12 -0
  310. package/src/docusaurus/view-model/classes-vm.ts +1088 -0
  311. package/src/docusaurus/view-model/collection-base.ts +352 -0
  312. package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
  313. package/src/docusaurus/view-model/concepts-vm.ts +749 -0
  314. package/src/docusaurus/view-model/description-anchors.ts +107 -0
  315. package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
  316. package/src/docusaurus/view-model/groups-vm.ts +548 -0
  317. package/src/docusaurus/view-model/members-vm.ts +1943 -0
  318. package/src/docusaurus/view-model/namespaces-vm.ts +1037 -0
  319. package/src/docusaurus/view-model/options.ts +95 -0
  320. package/src/docusaurus/view-model/pages-vm.ts +389 -0
  321. package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
  322. package/src/docusaurus/view-model/view-model.ts +513 -0
  323. package/src/docusaurus/workspace.ts +588 -0
  324. package/src/doxygen/data-model/README.md +13 -0
  325. package/src/doxygen/data-model/compounds/compounddef-dm.ts +1230 -0
  326. package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
  327. package/src/doxygen/data-model/compounds/concepts-dm.ts +362 -0
  328. package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10114 -0
  329. package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
  330. package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
  331. package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
  332. package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
  333. package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
  334. package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
  335. package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
  336. package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +881 -0
  337. package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
  338. package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
  339. package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
  340. package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
  341. package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
  342. package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
  343. package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
  344. package/src/doxygen/data-model/compounds/requirements-dm.ts +50 -0
  345. package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
  346. package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +564 -0
  347. package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
  348. package/src/doxygen/data-model/data-model.ts +378 -0
  349. package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
  350. package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
  351. package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
  352. package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
  353. package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
  354. package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
  355. package/src/doxygen/data-model/types.ts +175 -0
  356. package/src/doxygen/data-model/xsds/README.md +6 -0
  357. package/src/doxygen/data-model/xsds/compound.xsd +1788 -0
  358. package/src/doxygen/data-model/xsds/doxyfile.xsd +365 -0
  359. package/src/doxygen/data-model/xsds/index.xsd +74 -0
  360. package/src/doxygen/data-model/xsds/xml.xsd +23 -0
  361. package/src/index.ts +267 -0
  362. package/src/tsconfig.json +12 -0
  363. package/dist/doxygen2docusaurus.d.ts +0 -4774
  364. package/dist/tsconfig.tsbuildinfo +0 -1
  365. package/dist/tsdoc-metadata.json +0 -11
@@ -0,0 +1,266 @@
1
+ /*
2
+ * This file is part of the xPack project (http://xpack.github.io).
3
+ * Copyright (c) 2025-2026 Liviu Ionescu. All rights reserved.
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose is hereby granted, under the terms of the MIT license.
7
+ *
8
+ * If a copy of the license was not distributed with this file, it can be
9
+ * obtained from https://opensource.org/licenses/mit.
10
+ */
11
+
12
+ // ----------------------------------------------------------------------------
13
+
14
+ import assert from 'node:assert'
15
+ import * as util from 'node:util'
16
+
17
+ import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
18
+ import { AbstractDataModelBase } from '../types.js'
19
+
20
+ // ----------------------------------------------------------------------------
21
+
22
+ // <xsd:complexType name="compoundRefType">
23
+ // <xsd:simpleContent>
24
+ // <xsd:extension base="xsd:string">
25
+ // <xsd:attribute name="refid" type="xsd:string" use="optional" />
26
+ // <xsd:attribute name="prot" type="DoxProtectionKind" />
27
+ // <xsd:attribute name="virt" type="DoxVirtualKind" />
28
+ // </xsd:extension>
29
+ // </xsd:simpleContent>
30
+ // </xsd:complexType>
31
+
32
+ /**
33
+ * Abstract base class for compound reference data models.
34
+ *
35
+ * @remarks
36
+ * Represents references to other compound entities in Doxygen XML output,
37
+ * including inheritance relationships and cross-references. This class
38
+ * handles the 'compoundRefType' XML schema structure with text content
39
+ * and attributes for protection level, virtual specification, and optional
40
+ * reference identifiers.
41
+ *
42
+ * @public
43
+ */
44
+ export abstract class AbstractCompoundRefType extends AbstractDataModelBase {
45
+ // Mandatory elements.
46
+
47
+ /**
48
+ * The name or identifier text of the referenced compound.
49
+ *
50
+ * @remarks
51
+ * Contains the textual content extracted from the compound reference XML
52
+ * element, typically representing the name of the referenced class,
53
+ * structure, or other compound entity. This text content serves as the
54
+ * primary identifier for the referenced compound in inheritance
55
+ * relationships and cross-references.
56
+ */
57
+ text = '' // Passed as element text.
58
+
59
+ // Mandatory attributes.
60
+
61
+ /**
62
+ * Protection level of the compound reference.
63
+ *
64
+ * @remarks
65
+ * Specifies the access protection level using DoxProtectionKind
66
+ * enumeration values ('public', 'protected', 'private', 'package').
67
+ * This mandatory attribute determines the visibility and accessibility
68
+ * of the referenced compound in inheritance relationships.
69
+ */
70
+ prot = ''
71
+
72
+ /**
73
+ * Virtual specification of the compound reference.
74
+ *
75
+ * @remarks
76
+ * Specifies the virtual nature using DoxVirtualKind enumeration values
77
+ * ('non-virtual', 'virtual', 'pure-virtual'). This mandatory attribute
78
+ * indicates whether the compound reference involves virtual inheritance
79
+ * or virtual methods in object-oriented programming contexts.
80
+ */
81
+ virt = ''
82
+
83
+ // Optional attributes.
84
+
85
+ /**
86
+ * Optional reference identifier for cross-linking.
87
+ *
88
+ * @remarks
89
+ * Contains the unique identifier that can be used to create hyperlinks
90
+ * or cross-references to the referenced compound's documentation. When
91
+ * present, this identifier enables navigation between related compound
92
+ * definitions in the generated documentation.
93
+ */
94
+ refid?: string | undefined
95
+
96
+ /**
97
+ * Constructs a new compound reference data model instance.
98
+ *
99
+ * @remarks
100
+ * Parses compound reference elements from Doxygen XML output, extracting
101
+ * the text content representing the compound name and processing attributes
102
+ * for protection level, virtual specification, and optional reference
103
+ * identifier. This provides the foundation for inheritance and
104
+ * cross-reference relationships in the documentation structure.
105
+ *
106
+ * @param xml - The XML parser instance for processing elements
107
+ * @param element - The XML element object to parse
108
+ * @param elementName - The name of the XML element being processed
109
+ */
110
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
111
+ super(elementName)
112
+
113
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
114
+
115
+ // ------------------------------------------------------------------------
116
+ // Process elements.
117
+
118
+ assert(xml.isInnerElementText(element, elementName))
119
+ this.text = xml.getInnerElementText(element, elementName)
120
+
121
+ assert(this.text.length > 0)
122
+
123
+ // ------------------------------------------------------------------------
124
+ // Process attributes.
125
+
126
+ assert(xml.hasAttributes(element))
127
+
128
+ const attributesNames = xml.getAttributesNames(element)
129
+ for (const attributeName of attributesNames) {
130
+ if (attributeName === '@_prot') {
131
+ this.prot = xml.getAttributeStringValue(element, '@_prot')
132
+ } else if (attributeName === '@_virt') {
133
+ this.virt = xml.getAttributeStringValue(element, '@_virt')
134
+ } else if (attributeName === '@_refid') {
135
+ this.refid = xml.getAttributeStringValue(element, '@_refid')
136
+ } else {
137
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
138
+ console.error(
139
+ `${elementName} attribute:`,
140
+ attributeName,
141
+ 'not implemented yet in',
142
+ this.constructor.name
143
+ )
144
+ }
145
+ }
146
+
147
+ assert(this.prot.length > 0)
148
+ assert(this.virt.length > 0)
149
+
150
+ // ------------------------------------------------------------------------
151
+
152
+ // console.log(util.inspect(this, { compact: false, depth: 999 }))
153
+ }
154
+ }
155
+
156
+ // ----------------------------------------------------------------------------
157
+
158
+ // <xsd:simpleType name="DoxProtectionKind">
159
+ // <xsd:restriction base="xsd:string">
160
+ // <xsd:enumeration value="public" />
161
+ // <xsd:enumeration value="protected" />
162
+ // <xsd:enumeration value="private" />
163
+ // <xsd:enumeration value="package" />
164
+ // </xsd:restriction>
165
+ // </xsd:simpleType>
166
+
167
+ /**
168
+ * Type definition for Doxygen protection levels.
169
+ *
170
+ * @remarks
171
+ * Represents the access protection levels available in object-oriented
172
+ * programming languages as recognised by Doxygen. These values correspond
173
+ * to the visibility modifiers used in class inheritance and member access
174
+ * control throughout the documentation system.
175
+ *
176
+ * @public
177
+ */
178
+ export type DoxProtectionKind = 'public' | 'protected' | 'private' | 'package'
179
+
180
+ // ----------------------------------------------------------------------------
181
+
182
+ // <xsd:simpleType name="DoxVirtualKind">
183
+ // <xsd:restriction base="xsd:string">
184
+ // <xsd:enumeration value="non-virtual" />
185
+ // <xsd:enumeration value="virtual" />
186
+ // <xsd:enumeration value="pure-virtual" />
187
+ // </xsd:restriction>
188
+ // </xsd:simpleType>
189
+
190
+ /**
191
+ * Type definition for Doxygen virtual function specifications.
192
+ *
193
+ * @remarks
194
+ * Represents the virtual function categories recognised by Doxygen for
195
+ * object-oriented programming languages. These values indicate the virtual
196
+ * nature of methods and functions in inheritance hierarchies, enabling
197
+ * proper documentation of polymorphic behaviour and interface contracts.
198
+ *
199
+ * @public
200
+ */
201
+ export type DoxVirtualKind = 'non-virtual' | 'virtual' | 'pure-virtual'
202
+
203
+ // ----------------------------------------------------------------------------
204
+
205
+ // <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
206
+ // <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
207
+
208
+ /**
209
+ * Data model for base compound references in inheritance relationships.
210
+ *
211
+ * @remarks
212
+ * Represents references to base classes or parent compounds in inheritance
213
+ * hierarchies as documented by Doxygen. This class handles the
214
+ * 'basecompoundref' XML elements that establish parent-child relationships
215
+ * in object-oriented documentation structures.
216
+ *
217
+ * @public
218
+ */
219
+ export class BaseCompoundRefDataModel extends AbstractCompoundRefType {
220
+ /**
221
+ * Constructs a new BaseCompoundRefDataModel instance.
222
+ *
223
+ * @remarks
224
+ * Creates a data model object for 'basecompoundref' XML elements,
225
+ * representing inheritance relationships where the current compound
226
+ * derives from the referenced base compound.
227
+ *
228
+ * @param xml - The XML parser instance for processing elements
229
+ * @param element - The XML element object to parse
230
+ */
231
+ constructor(xml: DoxygenXmlParser, element: object) {
232
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
233
+ super(xml, element, 'basecompoundref')
234
+ }
235
+ }
236
+
237
+ /**
238
+ * Data model for derived compound references in inheritance relationships.
239
+ *
240
+ * @remarks
241
+ * Represents references to derived classes or child compounds in inheritance
242
+ * hierarchies as documented by Doxygen. This class handles the
243
+ * 'derivedcompoundref' XML elements that establish child-parent relationships
244
+ * in object-oriented documentation structures.
245
+ *
246
+ * @public
247
+ */
248
+ export class DerivedCompoundRefDataModel extends AbstractCompoundRefType {
249
+ /**
250
+ * Constructs a new DerivedCompoundRefDataModel instance.
251
+ *
252
+ * @remarks
253
+ * Creates a data model object for 'derivedcompoundref' XML elements,
254
+ * representing inheritance relationships where other compounds derive
255
+ * from the current compound as their base.
256
+ *
257
+ * @param xml - The XML parser instance for processing elements
258
+ * @param element - The XML element object to parse
259
+ */
260
+ constructor(xml: DoxygenXmlParser, element: object) {
261
+ // console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
262
+ super(xml, element, 'derivedcompoundref')
263
+ }
264
+ }
265
+
266
+ // ----------------------------------------------------------------------------
@@ -0,0 +1,362 @@
1
+ /*
2
+ * This file is part of the xPack project (http://xpack.github.io).
3
+ * Copyright (c) 2026 Liviu Ionescu. All rights reserved.
4
+ *
5
+ * Permission to use, copy, modify, and/or distribute this software for any
6
+ * purpose is hereby granted, under the terms of the MIT license.
7
+ *
8
+ * If a copy of the license was not distributed with this file, it can be
9
+ * obtained from https://opensource.org/licenses/mit.
10
+ */
11
+
12
+ import assert from 'node:assert'
13
+ import * as util from 'node:util'
14
+
15
+ import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
16
+ import { AbstractDataModelBase } from '../types.js'
17
+ import {
18
+ AbstractDescriptionType,
19
+ ProgramListingDataModel,
20
+ } from './descriptiontype-dm.js'
21
+
22
+ // ----------------------------------------------------------------------------
23
+
24
+ // <xsd:complexType name="conceptParts">
25
+ // <xsd:sequence>
26
+ // <xsd:choice minOccurs="0" maxOccurs="unbounded">
27
+ // <xsd:element name="codepart" type="conceptCodePart"/>
28
+ // <xsd:element name="docpart" type="conceptDocPart"/>
29
+ // </xsd:choice>
30
+ // </xsd:sequence>
31
+ // </xsd:complexType>
32
+
33
+ // ----------------------------------------------------------------------------
34
+
35
+ /**
36
+ * Abstract base class for concept parts containers.
37
+ *
38
+ * @remarks
39
+ * This class is useful because Doxygen emits concept parts as an ordered
40
+ * mixture of code fragments and documentation fragments, and that order must
41
+ * be preserved for later rendering. Use this class as the common parser for
42
+ * `conceptparts`-style elements that contain repeated `codepart` and
43
+ * `docpart` children. The parsed children are stored in the inherited
44
+ * `children` collection.
45
+ */
46
+ export abstract class AbstractConceptParts extends AbstractDataModelBase {
47
+ /**
48
+ * Creates a new abstract concept parts data model instance.
49
+ *
50
+ * @remarks
51
+ * This constructor is useful because it parses the ordered child sequence
52
+ * of a concept parts element and instantiates the corresponding concrete
53
+ * child data models. Use it from subclasses that represent XML elements
54
+ * following the `conceptParts` schema shape. The original ordering of
55
+ * `codepart` and `docpart` elements is preserved in `children`.
56
+ *
57
+ * @param xml - The XML parser instance for processing elements.
58
+ * @param element - The XML element object to parse.
59
+ * @param elementName - The name of the XML element being processed.
60
+ */
61
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
62
+ super(elementName)
63
+
64
+ // console.log(
65
+ // elementName,
66
+ // util.inspect(element, { compact: false, depth: 999 })
67
+ // )
68
+
69
+ // ------------------------------------------------------------------------
70
+ // Process elements.
71
+
72
+ // A sequence of codepart, docpart, in any order.
73
+ const innerElements = xml.getInnerElements(element, elementName)
74
+ assert(innerElements.length > 0)
75
+
76
+ this.children = []
77
+ for (const innerElement of innerElements) {
78
+ if (xml.hasInnerText(innerElement)) {
79
+ // Ignore texts.
80
+ } else if (xml.hasInnerElement(innerElement, 'codepart')) {
81
+ this.children.push(new ConceptCodePartDataModel(xml, innerElement))
82
+ } else if (xml.hasInnerElement(innerElement, 'docpart')) {
83
+ this.children.push(new ConceptDocPartDataModel(xml, innerElement))
84
+ } else {
85
+ console.error(util.inspect(innerElement))
86
+ console.error(
87
+ `${elementName} element:`,
88
+ Object.keys(innerElement),
89
+ 'not implemented yet in',
90
+ this.constructor.name
91
+ )
92
+ }
93
+ }
94
+ }
95
+ }
96
+
97
+ // ----------------------------------------------------------------------------
98
+
99
+ // <xsd:element name="conceptparts" type="conceptParts" minOccurs="0" />
100
+
101
+ /**
102
+ * Data model for `conceptparts` elements.
103
+ *
104
+ * @remarks
105
+ * This class is useful because it provides the concrete entry point for
106
+ * parsing Doxygen `conceptparts` XML nodes into the internal data model.
107
+ * Use it when a compound definition contains a `conceptparts` child. The
108
+ * inherited parsing logic stores the ordered code and documentation parts in
109
+ * the `children` collection.
110
+ */
111
+ export class ConceptPartsDataModel extends AbstractConceptParts {
112
+ /**
113
+ * Creates a new `conceptparts` data model instance.
114
+ *
115
+ * @remarks
116
+ * This constructor is useful because it binds the generic concept parts
117
+ * parser to the concrete `conceptparts` XML element name. Use it when
118
+ * parsing a Doxygen compound that includes concept parts content.
119
+ *
120
+ * @param xml - The XML parser instance for processing elements.
121
+ * @param element - The XML element object to parse.
122
+ */
123
+ constructor(xml: DoxygenXmlParser, element: object) {
124
+ super(xml, element, 'conceptparts')
125
+ }
126
+ }
127
+
128
+ // ----------------------------------------------------------------------------
129
+
130
+ // <xsd:complexType name="conceptCodePart">
131
+ // <xsd:sequence>
132
+ // <xsd:element name="programlisting" type="listingType"/>
133
+ // </xsd:sequence>
134
+ // <xsd:attribute name="line" type="xsd:integer"/>
135
+ // </xsd:complexType>
136
+
137
+ // ----------------------------------------------------------------------------
138
+
139
+ /**
140
+ * Abstract base class for concept code parts.
141
+ *
142
+ * @remarks
143
+ * This class is useful because concept code fragments combine a mandatory
144
+ * program listing with source-location metadata, and both must be parsed
145
+ * together from the XML. Use this class as the common parser for elements
146
+ * shaped like `conceptCodePart`. Subclasses provide the concrete XML element
147
+ * name.
148
+ */
149
+ export abstract class AbstractConceptCodePart extends AbstractDataModelBase {
150
+ /**
151
+ * Program listing contained in the concept code part.
152
+ *
153
+ * @remarks
154
+ * This property is useful because it preserves the code fragment associated
155
+ * with a concept part as a structured listing data model for later
156
+ * rendering. It is populated from the `programlisting` child element.
157
+ */
158
+ programListing?: ProgramListingDataModel | undefined
159
+
160
+ /**
161
+ * Source line number of the concept code part.
162
+ *
163
+ * @remarks
164
+ * This property is useful because it records the original source location
165
+ * reported by Doxygen for the code fragment. It is populated from the
166
+ * `line` XML attribute and is required to be greater than zero.
167
+ */
168
+ line: number | undefined
169
+
170
+ /**
171
+ * Creates a new abstract concept code part data model instance.
172
+ *
173
+ * @remarks
174
+ * This constructor is useful because it parses both the embedded program
175
+ * listing and the source line metadata for a concept code part. Use it from
176
+ * subclasses representing concrete XML elements that follow the
177
+ * `conceptCodePart` schema definition. The constructor validates that the
178
+ * required `line` attribute is present and positive.
179
+ *
180
+ * @param xml - The XML parser instance for processing elements.
181
+ * @param element - The XML element object to parse.
182
+ * @param elementName - The name of the XML element being processed.
183
+ */
184
+ constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
185
+ super(elementName)
186
+
187
+ // console.log(
188
+ // elementName,
189
+ // util.inspect(element, { compact: false, depth: 999 })
190
+ // )
191
+
192
+ // ------------------------------------------------------------------------
193
+ // Process elements.
194
+
195
+ const innerElements = xml.getInnerElements(element, elementName)
196
+
197
+ for (const innerElement of innerElements) {
198
+ if (xml.hasInnerText(innerElement)) {
199
+ // Ignore texts.
200
+ } else if (xml.hasInnerElement(innerElement, 'programlisting')) {
201
+ this.programListing = new ProgramListingDataModel(xml, innerElement)
202
+ } else {
203
+ console.error(util.inspect(innerElement))
204
+ console.error(
205
+ `${elementName} element:`,
206
+ Object.keys(innerElement),
207
+ 'not implemented yet in',
208
+ this.constructor.name
209
+ )
210
+ }
211
+ }
212
+
213
+ // ------------------------------------------------------------------------
214
+ // Process attributes.
215
+
216
+ assert(xml.hasAttributes(element))
217
+ const attributesNames = xml.getAttributesNames(element)
218
+ // console.log(attributesNames)
219
+ for (const attributeName of attributesNames) {
220
+ // console.log(attributeName)
221
+ if (attributeName === '@_line') {
222
+ this.line = xml.getAttributeNumberValue(element, '@_line')
223
+ } else {
224
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
225
+ console.error(
226
+ `${elementName} attribute:`,
227
+ attributeName,
228
+ 'not implemented yet in',
229
+ this.constructor.name
230
+ )
231
+ }
232
+ }
233
+
234
+ assert(this.line !== undefined)
235
+ assert(this.line > 0)
236
+ }
237
+ }
238
+
239
+ /**
240
+ * Data model for `codepart` elements within concept parts.
241
+ *
242
+ * @remarks
243
+ * This class is useful because it provides the concrete parser for concept
244
+ * code fragments emitted by Doxygen. Use it when a `conceptparts` element
245
+ * contains a `codepart` child. The parsed data includes both the code listing
246
+ * and the source line metadata.
247
+ */
248
+ export class ConceptCodePartDataModel extends AbstractConceptCodePart {
249
+ /**
250
+ * Creates a new `codepart` data model instance.
251
+ *
252
+ * @remarks
253
+ * This constructor is useful because it binds the abstract concept code
254
+ * part parser to the concrete `codepart` XML element name. Use it when
255
+ * parsing concept-part content from Doxygen output.
256
+ *
257
+ * @param xml - The XML parser instance for processing elements.
258
+ * @param element - The XML element object to parse.
259
+ */
260
+ constructor(xml: DoxygenXmlParser, element: object) {
261
+ super(xml, element, 'codepart')
262
+ }
263
+ }
264
+
265
+ // ----------------------------------------------------------------------------
266
+
267
+ // <xsd:complexType name="conceptDocPart">
268
+ // <xsd:complexContent>
269
+ // <xsd:extension base="descriptionType">
270
+ // <xsd:attribute name="line" type="xsd:integer"/>
271
+ // <xsd:attribute name="col" type="xsd:integer"/>
272
+ // </xsd:extension>
273
+ // </xsd:complexContent>
274
+ // </xsd:complexType>
275
+
276
+ // ----------------------------------------------------------------------------
277
+
278
+ /**
279
+ * Data model for `docpart` elements within concept parts.
280
+ *
281
+ * @remarks
282
+ * This class is useful because it extends the standard description model
283
+ * with source-location metadata specific to concept documentation fragments.
284
+ * Use it when a `conceptparts` element contains a `docpart` child. The class
285
+ * preserves both the rich description content and the line and column
286
+ * position reported by Doxygen.
287
+ */
288
+ export class ConceptDocPartDataModel extends AbstractDescriptionType {
289
+ /**
290
+ * Source line number of the documentation fragment.
291
+ *
292
+ * @remarks
293
+ * This property is useful because it records where the documentation part
294
+ * originated in the source file. It is populated from the `line` XML
295
+ * attribute and is required to be greater than zero.
296
+ */
297
+ line: number | undefined
298
+
299
+ /**
300
+ * Source column number of the documentation fragment.
301
+ *
302
+ * @remarks
303
+ * This property is useful because it complements {@link line} with the
304
+ * column position reported by Doxygen for the documentation part. It is
305
+ * populated from the `col` XML attribute and is required to be greater than
306
+ * zero.
307
+ */
308
+ col: number | undefined
309
+
310
+ /**
311
+ * Creates a new `docpart` data model instance.
312
+ *
313
+ * @remarks
314
+ * This constructor is useful because it parses description content using
315
+ * the existing description-type logic, then extends that parsing with the
316
+ * additional line and column attributes required by concept documentation
317
+ * parts. Use it when parsing a `docpart` child from a `conceptparts`
318
+ * element.
319
+ *
320
+ * @param xml - The XML parser instance for processing elements.
321
+ * @param element - The XML element object to parse.
322
+ */
323
+ constructor(xml: DoxygenXmlParser, element: object) {
324
+ super(xml, element, 'docpart')
325
+
326
+ // console.log(
327
+ // 'docpart',
328
+ // util.inspect(element, { compact: false, depth: 999 })
329
+ // )
330
+
331
+ // ------------------------------------------------------------------------
332
+ // Process attributes.
333
+
334
+ // AbstractDescriptionType has no attributes, so all attributes are
335
+ // processed here.
336
+ assert(xml.hasAttributes(element))
337
+ const attributesNames = xml.getAttributesNames(element)
338
+ // console.log(attributesNames)
339
+ for (const attributeName of attributesNames) {
340
+ // console.log(attributeName)
341
+ if (attributeName === '@_line') {
342
+ this.line = xml.getAttributeNumberValue(element, '@_line')
343
+ } else if (attributeName === '@_col') {
344
+ this.col = xml.getAttributeNumberValue(element, '@_col')
345
+ } else {
346
+ console.error(util.inspect(element, { compact: false, depth: 999 }))
347
+ console.error(
348
+ `docpart attribute:`,
349
+ attributeName,
350
+ 'not implemented yet in',
351
+ this.constructor.name
352
+ )
353
+ }
354
+ }
355
+
356
+ assert(this.line !== undefined)
357
+ assert(this.line > 0)
358
+ assert(this.col !== undefined)
359
+ assert(this.col > 0)
360
+ }
361
+ }
362
+ // ----------------------------------------------------------------------------