@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.
- package/LICENSE +1 -1
- package/README.md +3 -1
- package/bin/doxygen2docusaurus.js +5 -5
- package/dist/cli/main.d.ts +0 -14
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +0 -34
- package/dist/cli/main.js.map +1 -1
- package/dist/docusaurus/cli-options.d.ts +3 -292
- package/dist/docusaurus/cli-options.d.ts.map +1 -1
- package/dist/docusaurus/cli-options.js +6 -290
- package/dist/docusaurus/cli-options.js.map +1 -1
- package/dist/docusaurus/generator.d.ts +0 -172
- package/dist/docusaurus/generator.d.ts.map +1 -1
- package/dist/docusaurus/generator.js +20 -280
- package/dist/docusaurus/generator.js.map +1 -1
- package/dist/docusaurus/renderers/conceptparts.d.ts +9 -0
- package/dist/docusaurus/renderers/conceptparts.d.ts.map +1 -0
- package/dist/docusaurus/renderers/conceptparts.js +21 -0
- package/dist/docusaurus/renderers/conceptparts.js.map +1 -0
- package/dist/docusaurus/renderers/descriptiontype.d.ts +0 -417
- package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/descriptiontype.js +11 -555
- package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
- package/dist/docusaurus/renderers/docinternalstype.d.ts +0 -132
- package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docinternalstype.js +0 -156
- package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
- package/dist/docusaurus/renderers/doclisttype.d.ts +0 -22
- package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doclisttype.js +0 -42
- package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
- package/dist/docusaurus/renderers/doctabletype.d.ts +0 -88
- package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doctabletype.js +1 -113
- package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
- package/dist/docusaurus/renderers/doctitletype.d.ts +0 -22
- package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doctitletype.js +0 -42
- package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
- package/dist/docusaurus/renderers/docvariablelisttype.d.ts +0 -44
- package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docvariablelisttype.js +1 -69
- package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
- package/dist/docusaurus/renderers/docxrefsecttype.d.ts +0 -22
- package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docxrefsecttype.js +0 -38
- package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
- package/dist/docusaurus/renderers/element-renderer-base.d.ts +0 -74
- package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
- package/dist/docusaurus/renderers/element-renderer-base.js +0 -64
- package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
- package/dist/docusaurus/renderers/inctype.d.ts +0 -23
- package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/inctype.js +0 -41
- package/dist/docusaurus/renderers/inctype.js.map +1 -1
- package/dist/docusaurus/renderers/linkedtexttype.d.ts +0 -22
- package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/linkedtexttype.js +0 -45
- package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
- package/dist/docusaurus/renderers/listingtype.d.ts +0 -52
- package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/listingtype.js +1 -88
- package/dist/docusaurus/renderers/listingtype.js.map +1 -1
- package/dist/docusaurus/renderers/paramtype.d.ts +0 -22
- package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/paramtype.js +2 -51
- package/dist/docusaurus/renderers/paramtype.js.map +1 -1
- package/dist/docusaurus/renderers/referencetype.d.ts +0 -23
- package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/referencetype.js +0 -38
- package/dist/docusaurus/renderers/referencetype.js.map +1 -1
- package/dist/docusaurus/renderers/reftexttype.d.ts +0 -22
- package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/reftexttype.js +0 -38
- package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
- package/dist/docusaurus/renderers/reftype.d.ts +0 -22
- package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/reftype.js +0 -38
- package/dist/docusaurus/renderers/reftype.js.map +1 -1
- package/dist/docusaurus/renderers/renderers.d.ts +0 -151
- package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
- package/dist/docusaurus/renderers/renderers.js +15 -186
- package/dist/docusaurus/renderers/renderers.js.map +1 -1
- package/dist/docusaurus/renderers/substringtype.d.ts +0 -22
- package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/substringtype.js +0 -39
- package/dist/docusaurus/renderers/substringtype.js.map +1 -1
- package/dist/docusaurus/renderers/tableofcontentstype.d.ts +0 -22
- package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/tableofcontentstype.js +0 -39
- package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
- package/dist/docusaurus/types.d.ts +0 -110
- package/dist/docusaurus/types.d.ts.map +1 -1
- package/dist/docusaurus/types.js +0 -11
- package/dist/docusaurus/types.js.map +1 -1
- package/dist/docusaurus/utils.d.ts +0 -214
- package/dist/docusaurus/utils.d.ts.map +1 -1
- package/dist/docusaurus/utils.js +0 -296
- package/dist/docusaurus/utils.js.map +1 -1
- package/dist/docusaurus/view-model/classes-vm.d.ts +0 -137
- package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/classes-vm.js +9 -225
- package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
- package/dist/docusaurus/view-model/collection-base.d.ts +0 -120
- package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
- package/dist/docusaurus/view-model/collection-base.js +11 -101
- package/dist/docusaurus/view-model/collection-base.js.map +1 -1
- package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -147
- package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/compound-base-vm.js +47 -225
- package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
- package/dist/docusaurus/view-model/concepts-vm.d.ts +27 -0
- package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
- package/dist/docusaurus/view-model/concepts-vm.js +337 -0
- package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
- package/dist/docusaurus/view-model/description-anchors.d.ts +0 -58
- package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
- package/dist/docusaurus/view-model/description-anchors.js +0 -71
- package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
- package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +0 -247
- package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/files-and-folders-vm.js +61 -353
- package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
- package/dist/docusaurus/view-model/groups-vm.d.ts +0 -148
- package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/groups-vm.js +2 -223
- package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
- package/dist/docusaurus/view-model/members-vm.d.ts +0 -552
- package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/members-vm.js +17 -702
- package/dist/docusaurus/view-model/members-vm.js.map +1 -1
- package/dist/docusaurus/view-model/namespaces-vm.d.ts +5 -199
- package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/namespaces-vm.js +85 -284
- package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
- package/dist/docusaurus/view-model/options.d.ts +0 -43
- package/dist/docusaurus/view-model/options.d.ts.map +1 -1
- package/dist/docusaurus/view-model/options.js +0 -57
- package/dist/docusaurus/view-model/options.js.map +1 -1
- package/dist/docusaurus/view-model/pages-vm.d.ts +0 -115
- package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/pages-vm.js +39 -162
- package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
- package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -142
- package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/tree-entries-vm.js +54 -174
- package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
- package/dist/docusaurus/view-model/view-model.d.ts +0 -125
- package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
- package/dist/docusaurus/view-model/view-model.js +20 -182
- package/dist/docusaurus/view-model/view-model.js.map +1 -1
- package/dist/docusaurus/workspace.d.ts +1 -126
- package/dist/docusaurus/workspace.d.ts.map +1 -1
- package/dist/docusaurus/workspace.js +8 -221
- package/dist/docusaurus/workspace.js.map +1 -1
- package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +7 -492
- package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/compounddef-dm.js +28 -672
- package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -129
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -145
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/concepts-dm.d.ts +23 -0
- package/dist/doxygen/data-model/compounds/concepts-dm.d.ts.map +1 -0
- package/dist/doxygen/data-model/compounds/concepts-dm.js +94 -0
- package/dist/doxygen/data-model/compounds/concepts-dm.js.map +1 -0
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +104 -2848
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +73 -3975
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts +0 -165
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -229
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts +0 -70
- package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -105
- package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -84
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -122
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -116
- package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -155
- package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -138
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -180
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -76
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -107
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -162
- package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -203
- package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -443
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -475
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -141
- package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/memberreftype-dm.js +0 -176
- package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -101
- package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -115
- package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -164
- package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -208
- package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -139
- package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -175
- package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts +0 -120
- package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -141
- package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -268
- package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -326
- package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -105
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -139
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/requirements-dm.d.ts +2 -0
- package/dist/doxygen/data-model/compounds/requirements-dm.d.ts.map +1 -0
- package/dist/doxygen/data-model/compounds/requirements-dm.js +2 -0
- package/dist/doxygen/data-model/compounds/requirements-dm.js.map +1 -0
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -168
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -209
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -267
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -354
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -66
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -97
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/data-model.d.ts +0 -149
- package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
- package/dist/doxygen/data-model/data-model.js +8 -200
- package/dist/doxygen/data-model/data-model.js.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -115
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -129
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -87
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -118
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
- package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -253
- package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -291
- package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -98
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -122
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -82
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -114
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
- package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -85
- package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -107
- package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
- package/dist/doxygen/data-model/types.d.ts +0 -104
- package/dist/doxygen/data-model/types.d.ts.map +1 -1
- package/dist/doxygen/data-model/types.js +0 -52
- package/dist/doxygen/data-model/types.js.map +1 -1
- package/dist/index.d.ts +5 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +5 -42
- package/dist/index.js.map +1 -1
- package/package.json +49 -52
- package/src/cli/main.ts +122 -0
- package/src/docusaurus/cli-options.ts +560 -0
- package/src/docusaurus/generator.ts +788 -0
- package/src/docusaurus/renderers/conceptparts.ts +119 -0
- package/src/docusaurus/renderers/descriptiontype.ts +1299 -0
- package/src/docusaurus/renderers/docinternalstype.ts +354 -0
- package/src/docusaurus/renderers/doclisttype.ts +134 -0
- package/src/docusaurus/renderers/doctabletype.ts +220 -0
- package/src/docusaurus/renderers/doctitletype.ts +77 -0
- package/src/docusaurus/renderers/docvariablelisttype.ts +123 -0
- package/src/docusaurus/renderers/docxrefsecttype.ts +84 -0
- package/src/docusaurus/renderers/element-renderer-base.ts +112 -0
- package/src/docusaurus/renderers/inctype.ts +75 -0
- package/src/docusaurus/renderers/linkedtexttype.ts +64 -0
- package/src/docusaurus/renderers/listingtype.ts +235 -0
- package/src/docusaurus/renderers/paramtype.ts +116 -0
- package/src/docusaurus/renderers/referencetype.ts +83 -0
- package/src/docusaurus/renderers/reftexttype.ts +81 -0
- package/src/docusaurus/renderers/reftype.ts +77 -0
- package/src/docusaurus/renderers/renderers.ts +812 -0
- package/src/docusaurus/renderers/substringtype.ts +53 -0
- package/src/docusaurus/renderers/tableofcontentstype.ts +74 -0
- package/src/docusaurus/types.ts +187 -0
- package/src/docusaurus/utils.ts +409 -0
- package/src/docusaurus/view-model/README.md +12 -0
- package/src/docusaurus/view-model/classes-vm.ts +1088 -0
- package/src/docusaurus/view-model/collection-base.ts +352 -0
- package/src/docusaurus/view-model/compound-base-vm.ts +1340 -0
- package/src/docusaurus/view-model/concepts-vm.ts +749 -0
- package/src/docusaurus/view-model/description-anchors.ts +107 -0
- package/src/docusaurus/view-model/files-and-folders-vm.ts +1293 -0
- package/src/docusaurus/view-model/groups-vm.ts +548 -0
- package/src/docusaurus/view-model/members-vm.ts +1943 -0
- package/src/docusaurus/view-model/namespaces-vm.ts +1037 -0
- package/src/docusaurus/view-model/options.ts +95 -0
- package/src/docusaurus/view-model/pages-vm.ts +389 -0
- package/src/docusaurus/view-model/tree-entries-vm.ts +376 -0
- package/src/docusaurus/view-model/view-model.ts +513 -0
- package/src/docusaurus/workspace.ts +588 -0
- package/src/doxygen/data-model/README.md +13 -0
- package/src/doxygen/data-model/compounds/compounddef-dm.ts +1230 -0
- package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
- package/src/doxygen/data-model/compounds/concepts-dm.ts +362 -0
- package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10114 -0
- package/src/doxygen/data-model/compounds/docvarlistentrytype-dm.ts +354 -0
- package/src/doxygen/data-model/compounds/doxygentype-dm.ts +187 -0
- package/src/doxygen/data-model/compounds/enumvaluetype-dm.ts +218 -0
- package/src/doxygen/data-model/compounds/inctype-dm.ts +217 -0
- package/src/doxygen/data-model/compounds/linkedtexttype-dm.ts +288 -0
- package/src/doxygen/data-model/compounds/listofallmemberstype-dm.ts +160 -0
- package/src/doxygen/data-model/compounds/locationtype-dm.ts +284 -0
- package/src/doxygen/data-model/compounds/memberdeftype-dm.ts +881 -0
- package/src/doxygen/data-model/compounds/memberreftype-dm.ts +270 -0
- package/src/doxygen/data-model/compounds/membertype-dm.ts +239 -0
- package/src/doxygen/data-model/compounds/paramtype-dm.ts +302 -0
- package/src/doxygen/data-model/compounds/referencetype-dm.ts +248 -0
- package/src/doxygen/data-model/compounds/reftexttype-dm.ts +234 -0
- package/src/doxygen/data-model/compounds/reftype-dm.ts +430 -0
- package/src/doxygen/data-model/compounds/reimplementtype-dm.ts +201 -0
- package/src/doxygen/data-model/compounds/requirements-dm.ts +50 -0
- package/src/doxygen/data-model/compounds/sectiondeftype-dm.ts +330 -0
- package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +564 -0
- package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
- package/src/doxygen/data-model/data-model.ts +378 -0
- package/src/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.ts +271 -0
- package/src/doxygen/data-model/doxyfile/doxyfiletype-dm.ts +200 -0
- package/src/doxygen/data-model/doxygen-xml-parser.ts +522 -0
- package/src/doxygen/data-model/index/indexcompoundtype-dm.ts +256 -0
- package/src/doxygen/data-model/index/indexdoxygentype-dm.ts +196 -0
- package/src/doxygen/data-model/index/indexmembertype-dm.ts +230 -0
- package/src/doxygen/data-model/types.ts +175 -0
- package/src/doxygen/data-model/xsds/README.md +6 -0
- package/src/doxygen/data-model/xsds/compound.xsd +1788 -0
- package/src/doxygen/data-model/xsds/doxyfile.xsd +365 -0
- package/src/doxygen/data-model/xsds/index.xsd +74 -0
- package/src/doxygen/data-model/xsds/xml.xsd +23 -0
- package/src/index.ts +267 -0
- package/src/tsconfig.json +12 -0
- package/dist/doxygen2docusaurus.d.ts +0 -4774
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/tsdoc-metadata.json +0 -11
|
@@ -0,0 +1,812 @@
|
|
|
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 * as util from 'node:util'
|
|
15
|
+
import assert from 'node:assert'
|
|
16
|
+
|
|
17
|
+
import type {
|
|
18
|
+
ElementLinesRendererBase,
|
|
19
|
+
ElementStringRendererBase,
|
|
20
|
+
} from './element-renderer-base.js'
|
|
21
|
+
import {
|
|
22
|
+
BlockquoteLinesRenderer,
|
|
23
|
+
ComputerOutputDataModelStringRenderer,
|
|
24
|
+
DescriptionTypeLinesRenderer,
|
|
25
|
+
DocAnchorTypeLinesRenderer,
|
|
26
|
+
DocEmptyTypeStringRenderer,
|
|
27
|
+
DocMarkupTypeStringRenderer,
|
|
28
|
+
DocParamListTypeLinesRenderer,
|
|
29
|
+
DocParaTypeLinesRenderer,
|
|
30
|
+
DocRefTextTypeStringRenderer,
|
|
31
|
+
DocSimpleSectTypeLinesRenderer,
|
|
32
|
+
DocURLLinkStringRenderer,
|
|
33
|
+
EmojiStringRenderer,
|
|
34
|
+
FormulaStringRenderer,
|
|
35
|
+
HeadingLinesRenderer,
|
|
36
|
+
HtmlOnlyStringRenderer,
|
|
37
|
+
ImageStringRenderer,
|
|
38
|
+
PreformattedStringRenderer,
|
|
39
|
+
SpTypeStringRenderer,
|
|
40
|
+
VerbatimStringRenderer,
|
|
41
|
+
} from './descriptiontype.js'
|
|
42
|
+
import {
|
|
43
|
+
ListingTypeLinesRenderer,
|
|
44
|
+
HighlightTypeLinesRenderer,
|
|
45
|
+
} from './listingtype.js'
|
|
46
|
+
import { DocListTypeLinesRenderer } from './doclisttype.js'
|
|
47
|
+
import {
|
|
48
|
+
DocS1TypeLinesRenderer,
|
|
49
|
+
DocS2TypeLinesRenderer,
|
|
50
|
+
DocS3TypeLinesRenderer,
|
|
51
|
+
DocS4TypeLinesRenderer,
|
|
52
|
+
DocS5TypeLinesRenderer,
|
|
53
|
+
DocS6TypeLinesRenderer,
|
|
54
|
+
} from './docinternalstype.js'
|
|
55
|
+
import { DocTitleTypeLinesRenderer } from './doctitletype.js'
|
|
56
|
+
import {
|
|
57
|
+
DocVariableListTypeLinesRenderer,
|
|
58
|
+
VariableListPairLinesRenderer,
|
|
59
|
+
} from './docvariablelisttype.js'
|
|
60
|
+
import { DocXRefSectLinesRenderer as DocXRefSectStringRenderer } from './docxrefsecttype.js'
|
|
61
|
+
import { IncTypeLinesRenderer } from './inctype.js'
|
|
62
|
+
import { LinkedTextTypeStringRenderer } from './linkedtexttype.js'
|
|
63
|
+
import { ParamTypeLinesRenderer } from './paramtype.js'
|
|
64
|
+
import { RefTextTypeStringRenderer } from './reftexttype.js'
|
|
65
|
+
import { RefTypeLinesRenderer } from './reftype.js'
|
|
66
|
+
import type { Workspace } from '../workspace.js'
|
|
67
|
+
import { SubstringDocMarkupTypeRenderer } from './substringtype.js'
|
|
68
|
+
import {
|
|
69
|
+
DocCaptionLinesRenderer,
|
|
70
|
+
DocEntryTypeStringRenderer,
|
|
71
|
+
DocRowTypeLinesRenderer,
|
|
72
|
+
DocTableTypeLinesRenderer,
|
|
73
|
+
} from './doctabletype.js'
|
|
74
|
+
import { TocListLinesRenderer } from './tableofcontentstype.js'
|
|
75
|
+
import { ReferenceTypeStringRenderer } from './referencetype.js'
|
|
76
|
+
import type { DataModelElement } from '../../doxygen/data-model/types.js'
|
|
77
|
+
import {
|
|
78
|
+
ConceptCodePartLinesRenderer,
|
|
79
|
+
ConceptPartsLinesRenderer,
|
|
80
|
+
} from './conceptparts.js'
|
|
81
|
+
|
|
82
|
+
// ----------------------------------------------------------------------------
|
|
83
|
+
|
|
84
|
+
/**
|
|
85
|
+
* Central registry and coordinator for all rendering functionality.
|
|
86
|
+
*
|
|
87
|
+
* The Renderers class manages the registration and lookup of specialised
|
|
88
|
+
* renderer objects that convert Doxygen data model elements into
|
|
89
|
+
* Docusaurus-compatible Markdown output.
|
|
90
|
+
*
|
|
91
|
+
* @public
|
|
92
|
+
*/
|
|
93
|
+
export class Renderers {
|
|
94
|
+
/** Map of element types to their corresponding line-based renderers. */
|
|
95
|
+
elementLinesRenderers = new Map<string, ElementLinesRendererBase>()
|
|
96
|
+
|
|
97
|
+
/** Map of element types to their corresponding string-based renderers. */
|
|
98
|
+
elementStringRenderers = new Map<string, ElementStringRendererBase>()
|
|
99
|
+
|
|
100
|
+
/**
|
|
101
|
+
* Registers all available renderers with the rendering system.
|
|
102
|
+
*
|
|
103
|
+
* Initialises and maps all specialised renderer instances to their
|
|
104
|
+
* corresponding data model element types, enabling proper conversion
|
|
105
|
+
* of XML elements to Markdown format.
|
|
106
|
+
*
|
|
107
|
+
* @param workspace - The workspace context containing configuration and data.
|
|
108
|
+
*/
|
|
109
|
+
registerRenderers(workspace: Workspace): void {
|
|
110
|
+
// Add renderers for the parsed xml elements (in alphabetical order).
|
|
111
|
+
|
|
112
|
+
// ------------------------------------------------------------------------
|
|
113
|
+
// Register line-based renderers for elements that produce multi-line
|
|
114
|
+
// output.
|
|
115
|
+
//
|
|
116
|
+
// Some renderers are designed for specific types, while others are
|
|
117
|
+
// designed for abstract types and will be used as base renderers for
|
|
118
|
+
// multiple concrete types.
|
|
119
|
+
//
|
|
120
|
+
// The order of registration is significant, the specific renderers must
|
|
121
|
+
// be registered before the abstract ones.
|
|
122
|
+
//
|
|
123
|
+
// For readability and ease of maintenance, the renderers are registered
|
|
124
|
+
// in alphabetical order, with specific renderers listed before the
|
|
125
|
+
// abstract ones they are based on.
|
|
126
|
+
|
|
127
|
+
// This is a specific renderer.
|
|
128
|
+
this.elementLinesRenderers.set(
|
|
129
|
+
'VariableListPairDataModel',
|
|
130
|
+
new VariableListPairLinesRenderer(workspace)
|
|
131
|
+
)
|
|
132
|
+
|
|
133
|
+
// The following renderers are for abstract types, and will be used
|
|
134
|
+
// for all their concrete subtypes.
|
|
135
|
+
|
|
136
|
+
this.elementLinesRenderers.set(
|
|
137
|
+
'AbstractConceptCodePart',
|
|
138
|
+
new ConceptCodePartLinesRenderer(workspace)
|
|
139
|
+
)
|
|
140
|
+
this.elementLinesRenderers.set(
|
|
141
|
+
'AbstractConceptParts',
|
|
142
|
+
new ConceptPartsLinesRenderer(workspace)
|
|
143
|
+
)
|
|
144
|
+
this.elementLinesRenderers.set(
|
|
145
|
+
'AbstractDescriptionType',
|
|
146
|
+
new DescriptionTypeLinesRenderer(workspace)
|
|
147
|
+
)
|
|
148
|
+
this.elementLinesRenderers.set(
|
|
149
|
+
'AbstractDocAnchorType',
|
|
150
|
+
new DocAnchorTypeLinesRenderer(workspace)
|
|
151
|
+
)
|
|
152
|
+
this.elementLinesRenderers.set(
|
|
153
|
+
'AbstractDocBlockQuoteType',
|
|
154
|
+
new BlockquoteLinesRenderer(workspace)
|
|
155
|
+
)
|
|
156
|
+
this.elementLinesRenderers.set(
|
|
157
|
+
'AbstractDocCaptionType',
|
|
158
|
+
new DocCaptionLinesRenderer(workspace)
|
|
159
|
+
)
|
|
160
|
+
this.elementLinesRenderers.set(
|
|
161
|
+
'AbstractDocHeadingType',
|
|
162
|
+
new HeadingLinesRenderer(workspace)
|
|
163
|
+
)
|
|
164
|
+
this.elementLinesRenderers.set(
|
|
165
|
+
'AbstractDocListType',
|
|
166
|
+
new DocListTypeLinesRenderer(workspace)
|
|
167
|
+
)
|
|
168
|
+
this.elementLinesRenderers.set(
|
|
169
|
+
'AbstractDocParamListType',
|
|
170
|
+
new DocParamListTypeLinesRenderer(workspace)
|
|
171
|
+
)
|
|
172
|
+
this.elementLinesRenderers.set(
|
|
173
|
+
'AbstractDocParaType',
|
|
174
|
+
new DocParaTypeLinesRenderer(workspace)
|
|
175
|
+
)
|
|
176
|
+
this.elementLinesRenderers.set(
|
|
177
|
+
'AbstractDocRowType',
|
|
178
|
+
new DocRowTypeLinesRenderer(workspace)
|
|
179
|
+
)
|
|
180
|
+
this.elementLinesRenderers.set(
|
|
181
|
+
'AbstractDocSect1Type',
|
|
182
|
+
new DocS1TypeLinesRenderer(workspace)
|
|
183
|
+
)
|
|
184
|
+
this.elementLinesRenderers.set(
|
|
185
|
+
'AbstractDocSect2Type',
|
|
186
|
+
new DocS2TypeLinesRenderer(workspace)
|
|
187
|
+
)
|
|
188
|
+
this.elementLinesRenderers.set(
|
|
189
|
+
'AbstractDocSect3Type',
|
|
190
|
+
new DocS3TypeLinesRenderer(workspace)
|
|
191
|
+
)
|
|
192
|
+
this.elementLinesRenderers.set(
|
|
193
|
+
'AbstractDocSect4Type',
|
|
194
|
+
new DocS4TypeLinesRenderer(workspace)
|
|
195
|
+
)
|
|
196
|
+
this.elementLinesRenderers.set(
|
|
197
|
+
'AbstractDocSect5Type',
|
|
198
|
+
new DocS5TypeLinesRenderer(workspace)
|
|
199
|
+
)
|
|
200
|
+
this.elementLinesRenderers.set(
|
|
201
|
+
'AbstractDocSect6Type',
|
|
202
|
+
new DocS6TypeLinesRenderer(workspace)
|
|
203
|
+
)
|
|
204
|
+
this.elementLinesRenderers.set(
|
|
205
|
+
'AbstractDocSimpleSectType',
|
|
206
|
+
new DocSimpleSectTypeLinesRenderer(workspace)
|
|
207
|
+
)
|
|
208
|
+
this.elementLinesRenderers.set(
|
|
209
|
+
'AbstractDocTableType',
|
|
210
|
+
new DocTableTypeLinesRenderer(workspace)
|
|
211
|
+
)
|
|
212
|
+
this.elementLinesRenderers.set(
|
|
213
|
+
'AbstractDocTitleType',
|
|
214
|
+
new DocTitleTypeLinesRenderer(workspace)
|
|
215
|
+
)
|
|
216
|
+
this.elementLinesRenderers.set(
|
|
217
|
+
'AbstractDocTocListType',
|
|
218
|
+
new TocListLinesRenderer(workspace)
|
|
219
|
+
)
|
|
220
|
+
this.elementLinesRenderers.set(
|
|
221
|
+
'AbstractDocVariableListType',
|
|
222
|
+
new DocVariableListTypeLinesRenderer(workspace)
|
|
223
|
+
)
|
|
224
|
+
this.elementLinesRenderers.set(
|
|
225
|
+
'AbstractDocXRefSectType',
|
|
226
|
+
new DocXRefSectStringRenderer(workspace)
|
|
227
|
+
)
|
|
228
|
+
this.elementLinesRenderers.set(
|
|
229
|
+
'AbstractHighlightType',
|
|
230
|
+
new HighlightTypeLinesRenderer(workspace)
|
|
231
|
+
)
|
|
232
|
+
this.elementLinesRenderers.set(
|
|
233
|
+
'AbstractIncType',
|
|
234
|
+
new IncTypeLinesRenderer(workspace)
|
|
235
|
+
)
|
|
236
|
+
this.elementLinesRenderers.set(
|
|
237
|
+
'AbstractListingTypeBase',
|
|
238
|
+
new ListingTypeLinesRenderer(workspace)
|
|
239
|
+
)
|
|
240
|
+
this.elementLinesRenderers.set(
|
|
241
|
+
'AbstractParamType',
|
|
242
|
+
new ParamTypeLinesRenderer(workspace)
|
|
243
|
+
)
|
|
244
|
+
this.elementLinesRenderers.set(
|
|
245
|
+
'AbstractProgramListingType',
|
|
246
|
+
new ListingTypeLinesRenderer(workspace)
|
|
247
|
+
)
|
|
248
|
+
this.elementLinesRenderers.set(
|
|
249
|
+
'AbstractRefType',
|
|
250
|
+
new RefTypeLinesRenderer(workspace)
|
|
251
|
+
)
|
|
252
|
+
|
|
253
|
+
// ------------------------------------------------------------------------
|
|
254
|
+
// Register string-based renderers for elements that produce single-line
|
|
255
|
+
// output.
|
|
256
|
+
//
|
|
257
|
+
// Same as for line renderers, the specific renderers must be registered
|
|
258
|
+
// before the abstract ones they are based on, and the renderers are
|
|
259
|
+
// registered in alphabetical order.
|
|
260
|
+
|
|
261
|
+
// This is a specific renderer.
|
|
262
|
+
this.elementStringRenderers.set(
|
|
263
|
+
'ComputerOutputDataModel',
|
|
264
|
+
new ComputerOutputDataModelStringRenderer(workspace)
|
|
265
|
+
)
|
|
266
|
+
|
|
267
|
+
// The following renderers are for abstract types, and will be used
|
|
268
|
+
// for all their concrete subtypes.
|
|
269
|
+
this.elementStringRenderers.set(
|
|
270
|
+
'ComputerOutputDataModel',
|
|
271
|
+
new ComputerOutputDataModelStringRenderer(workspace)
|
|
272
|
+
)
|
|
273
|
+
this.elementStringRenderers.set(
|
|
274
|
+
'AbstractDocEmptyType',
|
|
275
|
+
new DocEmptyTypeStringRenderer(workspace)
|
|
276
|
+
)
|
|
277
|
+
this.elementStringRenderers.set(
|
|
278
|
+
'AbstractDocEntryType',
|
|
279
|
+
new DocEntryTypeStringRenderer(workspace)
|
|
280
|
+
)
|
|
281
|
+
this.elementStringRenderers.set(
|
|
282
|
+
'AbstractEmojiType',
|
|
283
|
+
new EmojiStringRenderer(workspace)
|
|
284
|
+
)
|
|
285
|
+
this.elementStringRenderers.set(
|
|
286
|
+
'AbstractDocFormulaType',
|
|
287
|
+
new FormulaStringRenderer(workspace)
|
|
288
|
+
)
|
|
289
|
+
this.elementStringRenderers.set(
|
|
290
|
+
'AbstractDocHtmlOnlyType',
|
|
291
|
+
new HtmlOnlyStringRenderer(workspace)
|
|
292
|
+
)
|
|
293
|
+
this.elementStringRenderers.set(
|
|
294
|
+
'AbstractDocImageType',
|
|
295
|
+
new ImageStringRenderer(workspace)
|
|
296
|
+
)
|
|
297
|
+
this.elementStringRenderers.set(
|
|
298
|
+
'AbstractDocMarkupType',
|
|
299
|
+
new DocMarkupTypeStringRenderer(workspace)
|
|
300
|
+
)
|
|
301
|
+
this.elementStringRenderers.set(
|
|
302
|
+
'AbstractDocRefTextType',
|
|
303
|
+
new DocRefTextTypeStringRenderer(workspace)
|
|
304
|
+
)
|
|
305
|
+
this.elementStringRenderers.set(
|
|
306
|
+
'AbstractDocURLLink',
|
|
307
|
+
new DocURLLinkStringRenderer(workspace)
|
|
308
|
+
)
|
|
309
|
+
this.elementStringRenderers.set(
|
|
310
|
+
'AbstractLinkedTextType',
|
|
311
|
+
new LinkedTextTypeStringRenderer(workspace)
|
|
312
|
+
)
|
|
313
|
+
this.elementStringRenderers.set(
|
|
314
|
+
'AbstractPreformattedType',
|
|
315
|
+
new PreformattedStringRenderer(workspace)
|
|
316
|
+
)
|
|
317
|
+
this.elementStringRenderers.set(
|
|
318
|
+
'AbstractReferenceType',
|
|
319
|
+
new ReferenceTypeStringRenderer(workspace)
|
|
320
|
+
)
|
|
321
|
+
this.elementStringRenderers.set(
|
|
322
|
+
'AbstractRefTextType',
|
|
323
|
+
new RefTextTypeStringRenderer(workspace)
|
|
324
|
+
)
|
|
325
|
+
this.elementStringRenderers.set(
|
|
326
|
+
'AbstractSpType',
|
|
327
|
+
new SpTypeStringRenderer(workspace)
|
|
328
|
+
)
|
|
329
|
+
this.elementStringRenderers.set(
|
|
330
|
+
'AbstractVerbatimType',
|
|
331
|
+
new VerbatimStringRenderer(workspace)
|
|
332
|
+
)
|
|
333
|
+
this.elementStringRenderers.set(
|
|
334
|
+
'SubstringDocMarkupType',
|
|
335
|
+
new SubstringDocMarkupTypeRenderer(workspace)
|
|
336
|
+
)
|
|
337
|
+
}
|
|
338
|
+
|
|
339
|
+
/**
|
|
340
|
+
* Retrieves a line-based renderer for the specified element.
|
|
341
|
+
*
|
|
342
|
+
* @remarks
|
|
343
|
+
* Searches through the element's class hierarchy to find a registered
|
|
344
|
+
* line-based renderer. Uses prototype chain traversal to support
|
|
345
|
+
* inheritance-based renderer selection for abstract types.
|
|
346
|
+
*
|
|
347
|
+
* @param element - The element object to find a renderer for
|
|
348
|
+
* @returns The corresponding line-based renderer, or undefined if none found
|
|
349
|
+
*/
|
|
350
|
+
getElementLinesRenderer(
|
|
351
|
+
element: object
|
|
352
|
+
): ElementLinesRendererBase | undefined {
|
|
353
|
+
let elementClass = element.constructor
|
|
354
|
+
while (elementClass.name !== '') {
|
|
355
|
+
// console.log(elementClass.name)
|
|
356
|
+
// console.log(this.elementGenerators)
|
|
357
|
+
const elementGenerator = this.elementLinesRenderers.get(elementClass.name)
|
|
358
|
+
if (elementGenerator !== undefined) {
|
|
359
|
+
return elementGenerator
|
|
360
|
+
}
|
|
361
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
362
|
+
elementClass = Object.getPrototypeOf(elementClass)
|
|
363
|
+
}
|
|
364
|
+
|
|
365
|
+
return undefined
|
|
366
|
+
}
|
|
367
|
+
|
|
368
|
+
/**
|
|
369
|
+
* Retrieves a string-based renderer for the specified element.
|
|
370
|
+
*
|
|
371
|
+
* @remarks
|
|
372
|
+
* Searches through the element's class hierarchy to find a registered
|
|
373
|
+
* string-based renderer. Uses prototype chain traversal to support
|
|
374
|
+
* inheritance-based renderer selection for abstract types.
|
|
375
|
+
*
|
|
376
|
+
* @param element - The element object to find a renderer for
|
|
377
|
+
* @returns The corresponding string-based renderer, or undefined if not found
|
|
378
|
+
*/
|
|
379
|
+
getElementTextRenderer(
|
|
380
|
+
element: object
|
|
381
|
+
): ElementStringRendererBase | undefined {
|
|
382
|
+
let elementClass = element.constructor
|
|
383
|
+
while (elementClass.name !== '') {
|
|
384
|
+
// console.log(elementClass.name)
|
|
385
|
+
// console.log(this.elementGenerators)
|
|
386
|
+
const elementGenerator = this.elementStringRenderers.get(
|
|
387
|
+
elementClass.name
|
|
388
|
+
)
|
|
389
|
+
if (elementGenerator !== undefined) {
|
|
390
|
+
return elementGenerator
|
|
391
|
+
}
|
|
392
|
+
// eslint-disable-next-line @typescript-eslint/no-unsafe-assignment
|
|
393
|
+
elementClass = Object.getPrototypeOf(elementClass)
|
|
394
|
+
}
|
|
395
|
+
|
|
396
|
+
return undefined
|
|
397
|
+
}
|
|
398
|
+
|
|
399
|
+
// --------------------------------------------------------------------------
|
|
400
|
+
|
|
401
|
+
/**
|
|
402
|
+
* Renders a string with appropriate escaping for the target format.
|
|
403
|
+
*
|
|
404
|
+
* @remarks
|
|
405
|
+
* Applies format-specific character escaping to ensure proper rendering
|
|
406
|
+
* in different output contexts. Handles HTML entity escaping for HTML
|
|
407
|
+
* output and Markdown character escaping for Markdown output.
|
|
408
|
+
*
|
|
409
|
+
* @param element - The string to render and escape
|
|
410
|
+
* @param type - The target format ('text', 'markdown', 'html')
|
|
411
|
+
* @returns The properly escaped string for the target format
|
|
412
|
+
*/
|
|
413
|
+
renderString(element: string, type: string): string {
|
|
414
|
+
if (type === 'text') {
|
|
415
|
+
return element
|
|
416
|
+
} else if (type === 'markdown') {
|
|
417
|
+
return element
|
|
418
|
+
.replaceAll(/&/g, '&')
|
|
419
|
+
.replaceAll(/</g, '<')
|
|
420
|
+
.replaceAll(/>/g, '>')
|
|
421
|
+
.replaceAll(/\\/g, '\\\\') // Must be placed before \[ \]
|
|
422
|
+
.replaceAll(/\[/g, '\\[')
|
|
423
|
+
.replaceAll(/\]/g, '\\]')
|
|
424
|
+
.replaceAll(/\*/g, '\\*') // Markdown for bold
|
|
425
|
+
.replaceAll(/_/g, '\\_') // Markdown for italics
|
|
426
|
+
.replaceAll(/~/g, '\\~') // Markdown for strikethrough in GFM
|
|
427
|
+
} else if (type === 'html') {
|
|
428
|
+
return element
|
|
429
|
+
.replaceAll(/&/g, '&')
|
|
430
|
+
.replaceAll(/</g, '<')
|
|
431
|
+
.replaceAll(/>/g, '>')
|
|
432
|
+
} else {
|
|
433
|
+
console.error('Unsupported type', type, 'in renderString')
|
|
434
|
+
return element
|
|
435
|
+
}
|
|
436
|
+
}
|
|
437
|
+
|
|
438
|
+
/**
|
|
439
|
+
* Renders an array of elements to formatted output lines.
|
|
440
|
+
*
|
|
441
|
+
* @remarks
|
|
442
|
+
* Processes each element in the array through the appropriate renderer
|
|
443
|
+
* and concatenates the resulting lines. Handles undefined arrays
|
|
444
|
+
* gracefully by returning empty arrays.
|
|
445
|
+
*
|
|
446
|
+
* @param elements - Array of elements to render, or undefined
|
|
447
|
+
* @param type - The rendering context type
|
|
448
|
+
* @returns Array of formatted output lines from all elements
|
|
449
|
+
*/
|
|
450
|
+
renderElementsArrayToLines(
|
|
451
|
+
elements: DataModelElement[] | undefined,
|
|
452
|
+
type: string
|
|
453
|
+
): string[] {
|
|
454
|
+
if (!Array.isArray(elements)) {
|
|
455
|
+
return []
|
|
456
|
+
}
|
|
457
|
+
|
|
458
|
+
const lines: string[] = []
|
|
459
|
+
|
|
460
|
+
for (const element of elements) {
|
|
461
|
+
lines.push(...this.renderElementToLines(element, type))
|
|
462
|
+
}
|
|
463
|
+
|
|
464
|
+
return lines
|
|
465
|
+
}
|
|
466
|
+
|
|
467
|
+
/**
|
|
468
|
+
* Renders a single element or element array to formatted output lines.
|
|
469
|
+
*
|
|
470
|
+
* @remarks
|
|
471
|
+
* Determines the appropriate renderer based on element type and delegates
|
|
472
|
+
* rendering. Handles strings, arrays, and objects with fallback logic
|
|
473
|
+
* between line and string renderers. Leading spaces at the start of each
|
|
474
|
+
* rendered line are converted to HTML non-breaking space entities so that
|
|
475
|
+
* indentation is preserved in the generated output. Provides error
|
|
476
|
+
* handling for unrecognised element types.
|
|
477
|
+
*
|
|
478
|
+
* @param element - The element to render (single, array, or undefined)
|
|
479
|
+
* @param type - The rendering context type
|
|
480
|
+
* @returns Array of formatted output lines with preserved indentation
|
|
481
|
+
*/
|
|
482
|
+
renderElementToLines(
|
|
483
|
+
element: DataModelElement | DataModelElement[] | undefined,
|
|
484
|
+
type: string
|
|
485
|
+
): string[] {
|
|
486
|
+
if (element === undefined) {
|
|
487
|
+
return []
|
|
488
|
+
}
|
|
489
|
+
|
|
490
|
+
if (typeof element === 'string') {
|
|
491
|
+
if (element.startsWith('\n')) {
|
|
492
|
+
return []
|
|
493
|
+
} else {
|
|
494
|
+
return [this.renderString(element, type)]
|
|
495
|
+
}
|
|
496
|
+
}
|
|
497
|
+
|
|
498
|
+
if (Array.isArray(element)) {
|
|
499
|
+
const lines: string[] = []
|
|
500
|
+
for (const elementOfArray of element) {
|
|
501
|
+
lines.push(...this.renderElementToLines(elementOfArray, type))
|
|
502
|
+
}
|
|
503
|
+
return lines
|
|
504
|
+
}
|
|
505
|
+
|
|
506
|
+
const linesRenderer: ElementLinesRendererBase | undefined =
|
|
507
|
+
this.getElementLinesRenderer(element)
|
|
508
|
+
if (linesRenderer !== undefined) {
|
|
509
|
+
return linesRenderer
|
|
510
|
+
.renderToLines(element, type)
|
|
511
|
+
.map((line) =>
|
|
512
|
+
line.replace(/^ +/, (match) => ' '.repeat(match.length))
|
|
513
|
+
)
|
|
514
|
+
}
|
|
515
|
+
|
|
516
|
+
const textRenderer: ElementStringRendererBase | undefined =
|
|
517
|
+
this.getElementTextRenderer(element)
|
|
518
|
+
if (textRenderer !== undefined) {
|
|
519
|
+
return textRenderer
|
|
520
|
+
.renderToString(element, type)
|
|
521
|
+
.split('\n')
|
|
522
|
+
.map((line) =>
|
|
523
|
+
line.replace(/^ +/, (match) => ' '.repeat(match.length))
|
|
524
|
+
)
|
|
525
|
+
}
|
|
526
|
+
|
|
527
|
+
console.error(util.inspect(element, { compact: false, depth: 999 }))
|
|
528
|
+
console.error(
|
|
529
|
+
'no element lines renderer for',
|
|
530
|
+
element.constructor.name,
|
|
531
|
+
'in',
|
|
532
|
+
this.constructor.name,
|
|
533
|
+
'renderElementToLines'
|
|
534
|
+
)
|
|
535
|
+
assert(false)
|
|
536
|
+
}
|
|
537
|
+
|
|
538
|
+
/**
|
|
539
|
+
* Renders an array of elements to a concatenated string.
|
|
540
|
+
*
|
|
541
|
+
* @remarks
|
|
542
|
+
* Processes each element in the array through string rendering and
|
|
543
|
+
* concatenates all results into a single string. Handles undefined
|
|
544
|
+
* arrays by returning empty strings.
|
|
545
|
+
*
|
|
546
|
+
* @param elements - Array of elements to render, or undefined
|
|
547
|
+
* @param type - The rendering context type
|
|
548
|
+
* @returns Concatenated string from all rendered elements
|
|
549
|
+
*/
|
|
550
|
+
renderElementsArrayToString(
|
|
551
|
+
elements: DataModelElement[] | undefined,
|
|
552
|
+
type: string
|
|
553
|
+
): string {
|
|
554
|
+
if (elements === undefined) {
|
|
555
|
+
return ''
|
|
556
|
+
}
|
|
557
|
+
|
|
558
|
+
let text = ''
|
|
559
|
+
for (const element of elements) {
|
|
560
|
+
text += this.renderElementToString(element, type)
|
|
561
|
+
}
|
|
562
|
+
|
|
563
|
+
return text
|
|
564
|
+
}
|
|
565
|
+
|
|
566
|
+
/**
|
|
567
|
+
* Renders a single element or element array to a formatted string.
|
|
568
|
+
*
|
|
569
|
+
* @remarks
|
|
570
|
+
* Determines the appropriate renderer based on element type and delegates
|
|
571
|
+
* string rendering. Prioritises string renderers over line renderers
|
|
572
|
+
* with fallback conversion. Handles strings, arrays, and objects with
|
|
573
|
+
* comprehensive error handling.
|
|
574
|
+
*
|
|
575
|
+
* @param element - The element to render (single, array, or undefined)
|
|
576
|
+
* @param type - The rendering context type
|
|
577
|
+
* @returns The formatted string representation
|
|
578
|
+
*/
|
|
579
|
+
renderElementToString(
|
|
580
|
+
element: DataModelElement | DataModelElement[] | undefined,
|
|
581
|
+
type: string
|
|
582
|
+
): string {
|
|
583
|
+
if (element === undefined) {
|
|
584
|
+
return ''
|
|
585
|
+
}
|
|
586
|
+
|
|
587
|
+
if (typeof element === 'string') {
|
|
588
|
+
return this.renderString(element, type)
|
|
589
|
+
}
|
|
590
|
+
|
|
591
|
+
if (Array.isArray(element)) {
|
|
592
|
+
let text = ''
|
|
593
|
+
for (const elementOfArray of element) {
|
|
594
|
+
text += this.renderElementToString(elementOfArray, type)
|
|
595
|
+
}
|
|
596
|
+
return text
|
|
597
|
+
}
|
|
598
|
+
|
|
599
|
+
const textRenderer: ElementStringRendererBase | undefined =
|
|
600
|
+
this.getElementTextRenderer(element)
|
|
601
|
+
if (textRenderer !== undefined) {
|
|
602
|
+
return textRenderer.renderToString(element, type)
|
|
603
|
+
}
|
|
604
|
+
|
|
605
|
+
// console.warn(
|
|
606
|
+
// 'trying element lines renderer for',
|
|
607
|
+
// element.constructor.name,
|
|
608
|
+
// 'in',
|
|
609
|
+
// this.constructor.name,
|
|
610
|
+
// 'renderElementToString'
|
|
611
|
+
// )
|
|
612
|
+
const linesRenderer: ElementLinesRendererBase | undefined =
|
|
613
|
+
this.getElementLinesRenderer(element)
|
|
614
|
+
if (linesRenderer !== undefined) {
|
|
615
|
+
return linesRenderer.renderToLines(element, type).join('\n')
|
|
616
|
+
}
|
|
617
|
+
|
|
618
|
+
console.error(util.inspect(element, { compact: false, depth: 999 }))
|
|
619
|
+
console.error(
|
|
620
|
+
'no element text renderer for',
|
|
621
|
+
element.constructor.name,
|
|
622
|
+
'in',
|
|
623
|
+
this.constructor.name,
|
|
624
|
+
'renderElementToString'
|
|
625
|
+
)
|
|
626
|
+
return ''
|
|
627
|
+
}
|
|
628
|
+
|
|
629
|
+
/**
|
|
630
|
+
* Renders a member index item to formatted HTML table rows.
|
|
631
|
+
*
|
|
632
|
+
* @remarks
|
|
633
|
+
* Generates HTML table rows for member documentation indices with
|
|
634
|
+
* support for templates, types, names, and descriptions. Creates
|
|
635
|
+
* structured layouts with appropriate CSS classes for consistent
|
|
636
|
+
* member presentation.
|
|
637
|
+
*
|
|
638
|
+
* @param params - Object containing member index rendering parameters
|
|
639
|
+
* @param params.template - Optional template text for member display
|
|
640
|
+
* @param params.type - Optional type information for the member
|
|
641
|
+
* @param params.name - The member name (required)
|
|
642
|
+
* @param params.childrenLines - Optional description lines for the member
|
|
643
|
+
* @returns Array of HTML table row strings
|
|
644
|
+
*/
|
|
645
|
+
renderMembersIndexItemToHtmlLines({
|
|
646
|
+
template,
|
|
647
|
+
type,
|
|
648
|
+
name,
|
|
649
|
+
childrenLines,
|
|
650
|
+
}: {
|
|
651
|
+
template?: string | undefined
|
|
652
|
+
type?: string | undefined
|
|
653
|
+
name: string
|
|
654
|
+
childrenLines?: string[] | undefined
|
|
655
|
+
}): string[] {
|
|
656
|
+
const lines: string[] = []
|
|
657
|
+
|
|
658
|
+
if (template !== undefined && template.length > 0) {
|
|
659
|
+
lines.push('<tr class="doxyMemberIndexTemplate">')
|
|
660
|
+
lines.push(
|
|
661
|
+
`<td class="doxyMemberIndexTemplate" colspan="2">` +
|
|
662
|
+
`<div>${template}</div></td>`
|
|
663
|
+
)
|
|
664
|
+
lines.push('</tr>')
|
|
665
|
+
|
|
666
|
+
lines.push('<tr class="doxyMemberIndexItem">')
|
|
667
|
+
if (type !== undefined && type.length > 0) {
|
|
668
|
+
lines.push(
|
|
669
|
+
`<td class="doxyMemberIndexItemTypeTemplate" align="left" ` +
|
|
670
|
+
`valign="top">${type}</td>`
|
|
671
|
+
)
|
|
672
|
+
lines.push(
|
|
673
|
+
`<td class="doxyMemberIndexItemNameTemplate" align="left" ` +
|
|
674
|
+
`valign="top">${name}</td>`
|
|
675
|
+
)
|
|
676
|
+
} else {
|
|
677
|
+
lines.push(
|
|
678
|
+
`<td class="doxyMemberIndexItemNoTypeNameTemplate" colspan="2"` +
|
|
679
|
+
` align="left" valign="top">${name}</td>`
|
|
680
|
+
)
|
|
681
|
+
}
|
|
682
|
+
lines.push('</tr>')
|
|
683
|
+
} else {
|
|
684
|
+
lines.push('<tr class="doxyMemberIndexItem">')
|
|
685
|
+
assert(type !== undefined)
|
|
686
|
+
lines.push(
|
|
687
|
+
`<td class="doxyMemberIndexItemType" align="left" valign="top">` +
|
|
688
|
+
`${type}</td>`
|
|
689
|
+
)
|
|
690
|
+
lines.push(
|
|
691
|
+
`<td class="doxyMemberIndexItemName" align="left" valign="top">` +
|
|
692
|
+
`${name}</td>`
|
|
693
|
+
)
|
|
694
|
+
lines.push('</tr>')
|
|
695
|
+
}
|
|
696
|
+
|
|
697
|
+
if (childrenLines !== undefined) {
|
|
698
|
+
lines.push('<tr class="doxyMemberIndexDescription">')
|
|
699
|
+
lines.push('<td class="doxyMemberIndexDescriptionLeft"></td>')
|
|
700
|
+
lines.push('<td class="doxyMemberIndexDescriptionRight">')
|
|
701
|
+
lines.push(...childrenLines)
|
|
702
|
+
lines.push('</td>')
|
|
703
|
+
lines.push('</tr>')
|
|
704
|
+
}
|
|
705
|
+
|
|
706
|
+
lines.push('<tr class="doxyMemberIndexSeparator">')
|
|
707
|
+
lines.push('<td class="doxyMemberIndexSeparator" colspan="2"></td>')
|
|
708
|
+
lines.push('</tr>')
|
|
709
|
+
|
|
710
|
+
return lines
|
|
711
|
+
}
|
|
712
|
+
|
|
713
|
+
/**
|
|
714
|
+
* Renders tree-structured data as HTML table with hierarchical display.
|
|
715
|
+
*
|
|
716
|
+
* @remarks
|
|
717
|
+
* Converts tree node structures into formatted HTML tables with
|
|
718
|
+
* predefined column layouts and CSS classes. Provides structured
|
|
719
|
+
* presentation for hierarchical data with consistent table markup
|
|
720
|
+
* and width-proportioned columns.
|
|
721
|
+
*
|
|
722
|
+
* @param params - Object containing tree table rendering parameters
|
|
723
|
+
* @param params.contentLines - Array of HTML content lines for table rows
|
|
724
|
+
* @returns Array of HTML table strings with wrapper markup
|
|
725
|
+
*/
|
|
726
|
+
renderTreeTableToHtmlLines({
|
|
727
|
+
contentLines,
|
|
728
|
+
}: {
|
|
729
|
+
contentLines: string[]
|
|
730
|
+
}): string[] {
|
|
731
|
+
const lines: string[] = []
|
|
732
|
+
|
|
733
|
+
lines.push('')
|
|
734
|
+
lines.push('<table class="doxyTreeTable">')
|
|
735
|
+
lines.push('<colgroup><col style="width:40%"><col></colgroup>')
|
|
736
|
+
|
|
737
|
+
lines.push(...contentLines)
|
|
738
|
+
|
|
739
|
+
lines.push('')
|
|
740
|
+
lines.push('</table>')
|
|
741
|
+
|
|
742
|
+
return lines
|
|
743
|
+
}
|
|
744
|
+
|
|
745
|
+
/**
|
|
746
|
+
* Renders individual tree table row with hierarchical styling and content.
|
|
747
|
+
*
|
|
748
|
+
* @remarks
|
|
749
|
+
* Generates HTML table rows for tree structures with depth-based
|
|
750
|
+
* indentation, icon support, and linked labels. Provides consistent
|
|
751
|
+
* formatting for tree node presentation including descriptions and
|
|
752
|
+
* visual hierarchy indicators.
|
|
753
|
+
*
|
|
754
|
+
* @param params - Object containing tree row rendering parameters
|
|
755
|
+
* @param params.itemIconLetter - Optional icon character for the item
|
|
756
|
+
* @param params.itemIconClass - Optional CSS class for icon styling
|
|
757
|
+
* @param params.itemLabel - The display label for the tree item
|
|
758
|
+
* @param params.itemLink - The URL link for the tree item
|
|
759
|
+
* @param params.depth - The hierarchical depth level (0-based)
|
|
760
|
+
* @param params.description - The descriptive text for the item
|
|
761
|
+
* @returns Array of HTML table row strings
|
|
762
|
+
*/
|
|
763
|
+
renderTreeTableRowToHtmlLines({
|
|
764
|
+
itemIconLetter,
|
|
765
|
+
itemIconClass,
|
|
766
|
+
itemLabel,
|
|
767
|
+
itemLink,
|
|
768
|
+
depth,
|
|
769
|
+
description,
|
|
770
|
+
}: {
|
|
771
|
+
itemIconLetter?: string
|
|
772
|
+
itemIconClass?: string
|
|
773
|
+
itemLabel: string
|
|
774
|
+
itemLink: string
|
|
775
|
+
depth: number
|
|
776
|
+
description: string
|
|
777
|
+
}): string[] {
|
|
778
|
+
const lines: string[] = []
|
|
779
|
+
|
|
780
|
+
lines.push('<tr class="doxyTreeItem">')
|
|
781
|
+
lines.push('<td class="doxyTreeItemLeft" align="left" valign="top">')
|
|
782
|
+
const depthStr = (depth * 12).toString()
|
|
783
|
+
lines.push(
|
|
784
|
+
`<span style="width: ${depthStr}px; display: inline-block;"></span>`
|
|
785
|
+
)
|
|
786
|
+
if (itemIconLetter !== undefined && itemIconLetter.length > 0) {
|
|
787
|
+
lines.push(
|
|
788
|
+
`<span class="doxyTreeIconBox">` +
|
|
789
|
+
`<span class="doxyTreeIcon">${itemIconLetter}</span>` +
|
|
790
|
+
`</span>`
|
|
791
|
+
)
|
|
792
|
+
}
|
|
793
|
+
if (itemIconClass !== undefined && itemIconClass.length > 0) {
|
|
794
|
+
lines.push(
|
|
795
|
+
`<a href="${itemLink}">` +
|
|
796
|
+
`<span class="${itemIconClass}">${itemLabel}</span>` +
|
|
797
|
+
`</a>`
|
|
798
|
+
)
|
|
799
|
+
} else {
|
|
800
|
+
lines.push(`<a href="${itemLink}">${itemLabel}</a>`)
|
|
801
|
+
}
|
|
802
|
+
lines.push('</td>')
|
|
803
|
+
lines.push('<td class="doxyTreeItemRight" align="left" valign="top">')
|
|
804
|
+
lines.push(description)
|
|
805
|
+
lines.push('</td>')
|
|
806
|
+
lines.push('</tr>')
|
|
807
|
+
|
|
808
|
+
return lines
|
|
809
|
+
}
|
|
810
|
+
}
|
|
811
|
+
|
|
812
|
+
// ----------------------------------------------------------------------------
|