@xpack/doxygen2docusaurus 1.1.0 → 2.1.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/LICENSE +1 -1
- package/README.md +4 -3
- package/bin/doxygen2docusaurus.js +1 -1
- package/dist/cli/main.d.ts +0 -8
- package/dist/cli/main.d.ts.map +1 -1
- package/dist/cli/main.js +1 -29
- package/dist/cli/main.js.map +1 -1
- package/dist/docusaurus/cli-options.d.ts +4 -65
- package/dist/docusaurus/cli-options.d.ts.map +1 -1
- package/dist/docusaurus/cli-options.js +16 -91
- package/dist/docusaurus/cli-options.js.map +1 -1
- package/dist/docusaurus/generator.d.ts +7 -4
- package/dist/docusaurus/generator.d.ts.map +1 -1
- package/dist/docusaurus/generator.js +50 -140
- package/dist/docusaurus/generator.js.map +1 -1
- package/dist/docusaurus/renderers/descriptiontype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/descriptiontype.js +11 -138
- package/dist/docusaurus/renderers/descriptiontype.js.map +1 -1
- package/dist/docusaurus/renderers/docinternalstype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docinternalstype.js +0 -24
- package/dist/docusaurus/renderers/docinternalstype.js.map +1 -1
- package/dist/docusaurus/renderers/doclisttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doclisttype.js +0 -22
- package/dist/docusaurus/renderers/doclisttype.js.map +1 -1
- package/dist/docusaurus/renderers/doctabletype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doctabletype.js +1 -25
- package/dist/docusaurus/renderers/doctabletype.js.map +1 -1
- package/dist/docusaurus/renderers/doctitletype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/doctitletype.js +0 -20
- package/dist/docusaurus/renderers/doctitletype.js.map +1 -1
- package/dist/docusaurus/renderers/docvariablelisttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docvariablelisttype.js +1 -25
- package/dist/docusaurus/renderers/docvariablelisttype.js.map +1 -1
- package/dist/docusaurus/renderers/docxrefsecttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/docxrefsecttype.js +0 -16
- package/dist/docusaurus/renderers/docxrefsecttype.js.map +1 -1
- package/dist/docusaurus/renderers/element-renderer-base.d.ts.map +1 -1
- package/dist/docusaurus/renderers/element-renderer-base.js +0 -12
- package/dist/docusaurus/renderers/element-renderer-base.js.map +1 -1
- package/dist/docusaurus/renderers/inctype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/inctype.js +0 -18
- package/dist/docusaurus/renderers/inctype.js.map +1 -1
- package/dist/docusaurus/renderers/linkedtexttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/linkedtexttype.js +0 -23
- package/dist/docusaurus/renderers/linkedtexttype.js.map +1 -1
- package/dist/docusaurus/renderers/listingtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/listingtype.js +1 -24
- package/dist/docusaurus/renderers/listingtype.js.map +1 -1
- package/dist/docusaurus/renderers/paramtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/paramtype.js +2 -29
- package/dist/docusaurus/renderers/paramtype.js.map +1 -1
- package/dist/docusaurus/renderers/referencetype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/referencetype.js +0 -17
- package/dist/docusaurus/renderers/referencetype.js.map +1 -1
- package/dist/docusaurus/renderers/reftexttype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/reftexttype.js +0 -16
- package/dist/docusaurus/renderers/reftexttype.js.map +1 -1
- package/dist/docusaurus/renderers/reftype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/reftype.js +0 -16
- package/dist/docusaurus/renderers/reftype.js.map +1 -1
- package/dist/docusaurus/renderers/renderers.d.ts.map +1 -1
- package/dist/docusaurus/renderers/renderers.js +4 -33
- package/dist/docusaurus/renderers/renderers.js.map +1 -1
- package/dist/docusaurus/renderers/substringtype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/substringtype.js +0 -17
- package/dist/docusaurus/renderers/substringtype.js.map +1 -1
- package/dist/docusaurus/renderers/tableofcontentstype.d.ts.map +1 -1
- package/dist/docusaurus/renderers/tableofcontentstype.js +0 -17
- package/dist/docusaurus/renderers/tableofcontentstype.js.map +1 -1
- package/dist/docusaurus/types.d.ts +4 -8
- 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.map +1 -1
- package/dist/docusaurus/utils.js +0 -82
- package/dist/docusaurus/utils.js.map +1 -1
- package/dist/docusaurus/view-model/classes-vm.d.ts +2 -2
- package/dist/docusaurus/view-model/classes-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/classes-vm.js +12 -87
- package/dist/docusaurus/view-model/classes-vm.js.map +1 -1
- package/dist/docusaurus/view-model/collection-base.d.ts +2 -2
- package/dist/docusaurus/view-model/collection-base.d.ts.map +1 -1
- package/dist/docusaurus/view-model/collection-base.js +11 -23
- package/dist/docusaurus/view-model/collection-base.js.map +1 -1
- package/dist/docusaurus/view-model/compound-base-vm.d.ts +2 -32
- package/dist/docusaurus/view-model/compound-base-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/compound-base-vm.js +47 -129
- package/dist/docusaurus/view-model/compound-base-vm.js.map +1 -1
- package/dist/docusaurus/view-model/concepts-vm.d.ts +26 -0
- package/dist/docusaurus/view-model/concepts-vm.d.ts.map +1 -0
- package/dist/docusaurus/view-model/concepts-vm.js +329 -0
- package/dist/docusaurus/view-model/concepts-vm.js.map +1 -0
- package/dist/docusaurus/view-model/description-anchors.d.ts.map +1 -1
- package/dist/docusaurus/view-model/description-anchors.js +0 -13
- package/dist/docusaurus/view-model/description-anchors.js.map +1 -1
- package/dist/docusaurus/view-model/files-and-folders-vm.d.ts +2 -2
- package/dist/docusaurus/view-model/files-and-folders-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/files-and-folders-vm.js +64 -110
- package/dist/docusaurus/view-model/files-and-folders-vm.js.map +1 -1
- package/dist/docusaurus/view-model/groups-vm.d.ts +2 -2
- package/dist/docusaurus/view-model/groups-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/groups-vm.js +7 -80
- package/dist/docusaurus/view-model/groups-vm.js.map +1 -1
- package/dist/docusaurus/view-model/members-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/members-vm.js +17 -154
- package/dist/docusaurus/view-model/members-vm.js.map +1 -1
- package/dist/docusaurus/view-model/namespaces-vm.d.ts +6 -2
- package/dist/docusaurus/view-model/namespaces-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/namespaces-vm.js +82 -89
- package/dist/docusaurus/view-model/namespaces-vm.js.map +1 -1
- package/dist/docusaurus/view-model/options.d.ts.map +1 -1
- package/dist/docusaurus/view-model/options.js +0 -14
- package/dist/docusaurus/view-model/options.js.map +1 -1
- package/dist/docusaurus/view-model/pages-vm.d.ts +2 -2
- package/dist/docusaurus/view-model/pages-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/pages-vm.js +3 -50
- package/dist/docusaurus/view-model/pages-vm.js.map +1 -1
- package/dist/docusaurus/view-model/tree-entries-vm.d.ts +8 -22
- package/dist/docusaurus/view-model/tree-entries-vm.d.ts.map +1 -1
- package/dist/docusaurus/view-model/tree-entries-vm.js +54 -54
- package/dist/docusaurus/view-model/tree-entries-vm.js.map +1 -1
- package/dist/docusaurus/view-model/view-model.d.ts +0 -6
- package/dist/docusaurus/view-model/view-model.d.ts.map +1 -1
- package/dist/docusaurus/view-model/view-model.js +20 -63
- package/dist/docusaurus/view-model/view-model.js.map +1 -1
- package/dist/docusaurus/workspace.d.ts +1 -20
- package/dist/docusaurus/workspace.d.ts.map +1 -1
- package/dist/docusaurus/workspace.js +9 -116
- package/dist/docusaurus/workspace.js.map +1 -1
- package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts +5 -7
- package/dist/doxygen/data-model/compounds/compounddef-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/compounddef-dm.js +23 -187
- package/dist/doxygen/data-model/compounds/compounddef-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts +0 -9
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.js +1 -47
- package/dist/doxygen/data-model/compounds/compoundreftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts +0 -39
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.js +36 -1308
- package/dist/doxygen/data-model/compounds/descriptiontype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js +0 -64
- package/dist/doxygen/data-model/compounds/docvarlistentrytype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/doxygentype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/doxygentype-dm.js +0 -35
- package/dist/doxygen/data-model/compounds/doxygentype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js +1 -44
- package/dist/doxygen/data-model/compounds/enumvaluetype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/inctype-dm.d.ts +0 -9
- package/dist/doxygen/data-model/compounds/inctype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/inctype-dm.js +3 -48
- package/dist/doxygen/data-model/compounds/inctype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts +3 -15
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js +5 -57
- package/dist/doxygen/data-model/compounds/linkedtexttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js +0 -38
- package/dist/doxygen/data-model/compounds/listofallmemberstype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/locationtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/locationtype-dm.js +4 -52
- package/dist/doxygen/data-model/compounds/locationtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts +2 -10
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.js +19 -64
- package/dist/doxygen/data-model/compounds/memberdeftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/memberreftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/memberreftype-dm.js +1 -45
- package/dist/doxygen/data-model/compounds/memberreftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/membertype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/membertype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/membertype-dm.js +0 -43
- package/dist/doxygen/data-model/compounds/membertype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/paramtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/paramtype-dm.js +0 -51
- package/dist/doxygen/data-model/compounds/paramtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts +0 -9
- package/dist/doxygen/data-model/compounds/referencetype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/referencetype-dm.js +2 -47
- package/dist/doxygen/data-model/compounds/referencetype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reftexttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reftexttype-dm.js +2 -38
- package/dist/doxygen/data-model/compounds/reftexttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reftype-dm.d.ts +0 -21
- package/dist/doxygen/data-model/compounds/reftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reftype-dm.js +4 -82
- package/dist/doxygen/data-model/compounds/reftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.js +1 -42
- package/dist/doxygen/data-model/compounds/reimplementtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts +0 -9
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js +0 -53
- package/dist/doxygen/data-model/compounds/sectiondeftype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts +0 -12
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js +0 -105
- package/dist/doxygen/data-model/compounds/tableofcontentstype-dm.js.map +1 -1
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js +0 -38
- package/dist/doxygen/data-model/compounds/templateparamlisttype-dm.js.map +1 -1
- package/dist/doxygen/data-model/data-model.d.ts +0 -65
- package/dist/doxygen/data-model/data-model.d.ts.map +1 -1
- package/dist/doxygen/data-model/data-model.js +4 -115
- package/dist/doxygen/data-model/data-model.js.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js +4 -47
- package/dist/doxygen/data-model/doxyfile/doxyfileoptiontype-dm.js.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js +0 -40
- package/dist/doxygen/data-model/doxyfile/doxyfiletype-dm.js.map +1 -1
- package/dist/doxygen/data-model/doxygen-xml-parser.d.ts +0 -236
- package/dist/doxygen/data-model/doxygen-xml-parser.d.ts.map +1 -1
- package/dist/doxygen/data-model/doxygen-xml-parser.js +0 -289
- package/dist/doxygen/data-model/doxygen-xml-parser.js.map +1 -1
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.js +2 -45
- package/dist/doxygen/data-model/index/indexcompoundtype-dm.js.map +1 -1
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.js +0 -41
- package/dist/doxygen/data-model/index/indexdoxygentype-dm.js.map +1 -1
- package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts +0 -6
- package/dist/doxygen/data-model/index/indexmembertype-dm.d.ts.map +1 -1
- package/dist/doxygen/data-model/index/indexmembertype-dm.js +1 -43
- package/dist/doxygen/data-model/index/indexmembertype-dm.js.map +1 -1
- package/dist/doxygen/data-model/types.d.ts +1 -10
- package/dist/doxygen/data-model/types.d.ts.map +1 -1
- package/dist/doxygen/data-model/types.js +0 -15
- package/dist/doxygen/data-model/types.js.map +1 -1
- package/dist/index.d.ts +4 -16
- package/dist/index.d.ts.map +1 -1
- package/dist/index.js +4 -42
- package/dist/index.js.map +1 -1
- package/package.json +53 -56
- 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/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 +756 -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 +719 -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 +1018 -0
- package/src/docusaurus/view-model/options.ts +95 -0
- package/src/docusaurus/view-model/pages-vm.ts +342 -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 +1156 -0
- package/src/doxygen/data-model/compounds/compoundreftype-dm.ts +266 -0
- package/src/doxygen/data-model/compounds/descriptiontype-dm.ts +10107 -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 +874 -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/sectiondeftype-dm.ts +330 -0
- package/src/doxygen/data-model/compounds/tableofcontentstype-dm.ts +563 -0
- package/src/doxygen/data-model/compounds/templateparamlisttype-dm.ts +150 -0
- package/src/doxygen/data-model/data-model.ts +377 -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 +1699 -0
- package/src/doxygen/data-model/xsds/doxyfile.xsd +355 -0
- package/src/doxygen/data-model/xsds/index.xsd +72 -0
- package/src/doxygen/data-model/xsds/xml.xsd +23 -0
- package/src/index.ts +261 -0
- package/src/tsconfig.json +10 -0
- package/dist/doxygen2docusaurus.d.ts +0 -1147
- package/dist/tsconfig.tsbuildinfo +0 -1
- package/dist/tsdoc-metadata.json +0 -11
- /package/{template → templates}/css/custom.css +0 -0
- /package/{template → templates}/img/README.md +0 -0
- /package/{template → templates}/img/document-svgrepo-com.svg +0 -0
- /package/{template → templates}/img/folder-svgrepo-com.svg +0 -0
|
@@ -0,0 +1,1156 @@
|
|
|
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
|
|
6
|
+
* for any 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
|
|
9
|
+
* be 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 { IncludedByDataModel, IncludesDataModel } from './inctype-dm.js'
|
|
18
|
+
import {
|
|
19
|
+
BaseCompoundRefDataModel,
|
|
20
|
+
DerivedCompoundRefDataModel,
|
|
21
|
+
} from './compoundreftype-dm.js'
|
|
22
|
+
import { TemplateParamListDataModel } from './templateparamlisttype-dm.js'
|
|
23
|
+
import { SectionDefDataModel } from './sectiondeftype-dm.js'
|
|
24
|
+
import { ListOfAllMembersDataModel } from './listofallmemberstype-dm.js'
|
|
25
|
+
import {
|
|
26
|
+
AbstractStringType,
|
|
27
|
+
BriefDescriptionDataModel,
|
|
28
|
+
DetailedDescriptionDataModel,
|
|
29
|
+
ParaDataModel,
|
|
30
|
+
ProgramListingDataModel,
|
|
31
|
+
Sect5DataModel,
|
|
32
|
+
} from './descriptiontype-dm.js'
|
|
33
|
+
import {
|
|
34
|
+
InnerClassDataModel,
|
|
35
|
+
InnerConceptDataModel,
|
|
36
|
+
InnerDirDataModel,
|
|
37
|
+
InnerFileDataModel,
|
|
38
|
+
InnerGroupDataModel,
|
|
39
|
+
InnerNamespaceDataModel,
|
|
40
|
+
InnerPageDataModel,
|
|
41
|
+
} from './reftype-dm.js'
|
|
42
|
+
import { LocationDataModel } from './locationtype-dm.js'
|
|
43
|
+
import { AbstractDataModelBase } from '../types.js'
|
|
44
|
+
import { DoxygenXmlParser } from '../doxygen-xml-parser.js'
|
|
45
|
+
import { TableOfContentsDataModel } from './tableofcontentstype-dm.js'
|
|
46
|
+
import {
|
|
47
|
+
InitializerDataModel,
|
|
48
|
+
RequiresClauseDataModel,
|
|
49
|
+
} from './linkedtexttype-dm.js'
|
|
50
|
+
|
|
51
|
+
// ----------------------------------------------------------------------------
|
|
52
|
+
|
|
53
|
+
/**
|
|
54
|
+
* Abstract template class for creating new data model objects.
|
|
55
|
+
*
|
|
56
|
+
* @remarks
|
|
57
|
+
* This template provides a standardised structure for implementing new
|
|
58
|
+
* data model types with common properties and processing patterns. It
|
|
59
|
+
* demonstrates the typical XML parsing approach used throughout the
|
|
60
|
+
* Doxygen data model implementation, including element and attribute
|
|
61
|
+
* processing workflows.
|
|
62
|
+
*
|
|
63
|
+
* @public
|
|
64
|
+
*/
|
|
65
|
+
// Template, to be used for creating new objects.
|
|
66
|
+
export abstract class AbstractXyzType extends AbstractDataModelBase {
|
|
67
|
+
// If the object has a text.
|
|
68
|
+
text = ''
|
|
69
|
+
|
|
70
|
+
// Mandatory elements.
|
|
71
|
+
compoundName = ''
|
|
72
|
+
colsCount = NaN
|
|
73
|
+
elm12 = false
|
|
74
|
+
// elm13: BriefDescriptionDataModel
|
|
75
|
+
|
|
76
|
+
// Optional elements.
|
|
77
|
+
elm20?: string | undefined
|
|
78
|
+
elm21?: boolean | undefined
|
|
79
|
+
elm22?: number | undefined
|
|
80
|
+
briefDescription: BriefDescriptionDataModel | undefined
|
|
81
|
+
includes?: IncludesDataModel[] | undefined
|
|
82
|
+
|
|
83
|
+
// Mandatory attributes.
|
|
84
|
+
id = ''
|
|
85
|
+
rowsCount = NaN
|
|
86
|
+
thead = false
|
|
87
|
+
|
|
88
|
+
// Optional attributes.
|
|
89
|
+
language?: string | undefined
|
|
90
|
+
final?: boolean | undefined
|
|
91
|
+
lineno?: number | undefined
|
|
92
|
+
attr23?: string[] | undefined
|
|
93
|
+
|
|
94
|
+
// ------------------------------------------
|
|
95
|
+
|
|
96
|
+
// children: Array<string | ParaDataModel | Sect5DataModel> = []
|
|
97
|
+
|
|
98
|
+
/**
|
|
99
|
+
* Constructs a new template data model instance.
|
|
100
|
+
*
|
|
101
|
+
* @remarks
|
|
102
|
+
* Demonstrates the standard XML parsing workflow used throughout the
|
|
103
|
+
* data model implementation. This includes processing inner elements,
|
|
104
|
+
* handling mixed content with ordered children, and extracting attributes
|
|
105
|
+
* with appropriate type conversion and validation.
|
|
106
|
+
*
|
|
107
|
+
* @param xml - The XML parser instance for processing elements
|
|
108
|
+
* @param element - The XML element object to parse
|
|
109
|
+
* @param elementName - The name of the XML element being processed
|
|
110
|
+
*/
|
|
111
|
+
constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
|
|
112
|
+
super(elementName)
|
|
113
|
+
|
|
114
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
115
|
+
|
|
116
|
+
// ------------------------------------------------------------------------
|
|
117
|
+
// Process elements.
|
|
118
|
+
|
|
119
|
+
// If the object has only a text.
|
|
120
|
+
assert(xml.isInnerElementText(element, elementName))
|
|
121
|
+
this.text = xml.getInnerElementText(element, elementName)
|
|
122
|
+
|
|
123
|
+
// ------------------------------------------
|
|
124
|
+
|
|
125
|
+
// If the object has sub-elements.
|
|
126
|
+
const innerElements = xml.getInnerElements(element, elementName)
|
|
127
|
+
assert(innerElements.length > 0)
|
|
128
|
+
|
|
129
|
+
for (const innerElement of innerElements) {
|
|
130
|
+
if (xml.hasInnerText(innerElement)) {
|
|
131
|
+
// Ignore texts.
|
|
132
|
+
} else if (xml.isInnerElementText(innerElement, 'compoundname')) {
|
|
133
|
+
this.compoundName = xml.getInnerElementText(
|
|
134
|
+
innerElement,
|
|
135
|
+
'compoundname'
|
|
136
|
+
)
|
|
137
|
+
} else if (xml.hasInnerElement(innerElement, 'briefdescription')) {
|
|
138
|
+
this.briefDescription = new BriefDescriptionDataModel(xml, innerElement)
|
|
139
|
+
} else if (xml.hasInnerElement(innerElement, 'includes')) {
|
|
140
|
+
// console.log(util.inspect(item))
|
|
141
|
+
this.includes ??= []
|
|
142
|
+
this.includes.push(new IncludesDataModel(xml, innerElement))
|
|
143
|
+
} else {
|
|
144
|
+
console.error(
|
|
145
|
+
`${elementName} element:`,
|
|
146
|
+
Object.keys(innerElement),
|
|
147
|
+
'not implemented yet in',
|
|
148
|
+
this.constructor.name
|
|
149
|
+
)
|
|
150
|
+
}
|
|
151
|
+
}
|
|
152
|
+
|
|
153
|
+
// ------------------------------------------
|
|
154
|
+
|
|
155
|
+
// If the object has to keep trak of the order of mixed type children.
|
|
156
|
+
// const innerElements = xml.getInnerElements(element, elementName)
|
|
157
|
+
// assert(innerElements.length > 0)
|
|
158
|
+
|
|
159
|
+
this.children = []
|
|
160
|
+
|
|
161
|
+
for (const innerElement of innerElements) {
|
|
162
|
+
if (xml.hasInnerText(innerElement)) {
|
|
163
|
+
this.children.push(xml.getInnerText(innerElement))
|
|
164
|
+
} else if (xml.hasInnerElement(innerElement, 'para')) {
|
|
165
|
+
this.children.push(new ParaDataModel(xml, innerElement))
|
|
166
|
+
} else if (xml.hasInnerElement(innerElement, 'sect5')) {
|
|
167
|
+
this.children.push(new Sect5DataModel(xml, innerElement))
|
|
168
|
+
} else {
|
|
169
|
+
console.error(util.inspect(innerElement))
|
|
170
|
+
console.error(
|
|
171
|
+
`${elementName} element:`,
|
|
172
|
+
Object.keys(innerElement),
|
|
173
|
+
'not implemented yet in',
|
|
174
|
+
this.constructor.name
|
|
175
|
+
)
|
|
176
|
+
}
|
|
177
|
+
}
|
|
178
|
+
|
|
179
|
+
// ------------------------------------------------------------------------
|
|
180
|
+
// Process attributes.
|
|
181
|
+
|
|
182
|
+
// If the object has no attributes.
|
|
183
|
+
assert(!xml.hasAttributes(element))
|
|
184
|
+
|
|
185
|
+
// ------------------------------------------
|
|
186
|
+
|
|
187
|
+
assert(xml.hasAttributes(element))
|
|
188
|
+
|
|
189
|
+
const attributesNames = xml.getAttributesNames(element)
|
|
190
|
+
// console.log(attributesNames)
|
|
191
|
+
for (const attributeName of attributesNames) {
|
|
192
|
+
// console.log(attributeName)
|
|
193
|
+
if (attributeName === '@_id') {
|
|
194
|
+
this.id = xml.getAttributeStringValue(element, '@_id')
|
|
195
|
+
} else if (attributeName === '@_rows') {
|
|
196
|
+
assert(isNaN(this.rowsCount))
|
|
197
|
+
this.rowsCount = xml.getAttributeNumberValue(element, '@_rows')
|
|
198
|
+
} else if (attributeName === '@_thead') {
|
|
199
|
+
this.thead = xml.getAttributeBooleanValue(element, '@_thead')
|
|
200
|
+
} else if (attributeName === '@_language') {
|
|
201
|
+
this.language = xml.getAttributeStringValue(element, '@_language')
|
|
202
|
+
} else if (attributeName === '@_final') {
|
|
203
|
+
this.final = xml.getAttributeBooleanValue(element, '@_final')
|
|
204
|
+
} else if (attributeName === '@_lineno') {
|
|
205
|
+
this.lineno = xml.getAttributeNumberValue(element, '@_lineno')
|
|
206
|
+
} else {
|
|
207
|
+
console.error(util.inspect(element, { compact: false, depth: 999 }))
|
|
208
|
+
console.error(
|
|
209
|
+
`${elementName} attribute:`,
|
|
210
|
+
attributeName,
|
|
211
|
+
'not implemented yet in',
|
|
212
|
+
this.constructor.name
|
|
213
|
+
)
|
|
214
|
+
}
|
|
215
|
+
}
|
|
216
|
+
|
|
217
|
+
assert(this.id.length > 0)
|
|
218
|
+
|
|
219
|
+
// ------------------------------------------------------------------------
|
|
220
|
+
|
|
221
|
+
// console.log(util.inspect(this, { compact: false, depth: 999 }))
|
|
222
|
+
}
|
|
223
|
+
}
|
|
224
|
+
|
|
225
|
+
/**
|
|
226
|
+
* Concrete implementation of the template data model.
|
|
227
|
+
*
|
|
228
|
+
* @remarks
|
|
229
|
+
* Provides a specific implementation of the abstract template class,
|
|
230
|
+
* demonstrating how to create concrete data model objects for particular
|
|
231
|
+
* XML element types. This pattern is used throughout the data model
|
|
232
|
+
* for creating type-specific implementations.
|
|
233
|
+
*
|
|
234
|
+
* @public
|
|
235
|
+
*/
|
|
236
|
+
export class XyzDataModel extends AbstractXyzType {
|
|
237
|
+
/**
|
|
238
|
+
* Constructs a new XyzDataModel instance.
|
|
239
|
+
*
|
|
240
|
+
* @remarks
|
|
241
|
+
* Creates a data model object for 'xyz' XML elements by delegating
|
|
242
|
+
* to the parent constructor with the appropriate element name.
|
|
243
|
+
*
|
|
244
|
+
* @param xml - The XML parser instance for processing elements
|
|
245
|
+
* @param element - The XML element object to parse
|
|
246
|
+
*/
|
|
247
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
248
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
249
|
+
super(xml, element, 'xyz')
|
|
250
|
+
}
|
|
251
|
+
}
|
|
252
|
+
|
|
253
|
+
// ----------------------------------------------------------------------------
|
|
254
|
+
|
|
255
|
+
// <xsd:complexType name="compounddefType">
|
|
256
|
+
// <xsd:sequence>
|
|
257
|
+
// <xsd:element name="compoundname" type="xsd:string"/>
|
|
258
|
+
// <xsd:element name="title" type="xsd:string" minOccurs="0" />
|
|
259
|
+
|
|
260
|
+
// <xsd:element name="basecompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
|
|
261
|
+
// <xsd:element name="derivedcompoundref" type="compoundRefType" minOccurs="0" maxOccurs="unbounded" />
|
|
262
|
+
|
|
263
|
+
// <xsd:element name="includes" type="incType" minOccurs="0" maxOccurs="unbounded" />
|
|
264
|
+
// <xsd:element name="includedby" type="incType" minOccurs="0" maxOccurs="unbounded" />
|
|
265
|
+
|
|
266
|
+
// <xsd:element name="incdepgraph" type="graphType" minOccurs="0" />
|
|
267
|
+
// <xsd:element name="invincdepgraph" type="graphType" minOccurs="0" />
|
|
268
|
+
|
|
269
|
+
// <xsd:element name="innermodule" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
270
|
+
// <xsd:element name="innerdir" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
271
|
+
// <xsd:element name="innerfile" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
272
|
+
// <xsd:element name="innerclass" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
273
|
+
// <xsd:element name="innerconcept" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
274
|
+
// <xsd:element name="innernamespace" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
275
|
+
// <xsd:element name="innerpage" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
276
|
+
// <xsd:element name="innergroup" type="refType" minOccurs="0" maxOccurs="unbounded" />
|
|
277
|
+
|
|
278
|
+
// <xsd:element name="qualifier" type="xsd:string" minOccurs="0" maxOccurs="unbounded" />
|
|
279
|
+
|
|
280
|
+
// <xsd:element name="templateparamlist" type="templateparamlistType" minOccurs="0" />
|
|
281
|
+
// <xsd:element name="sectiondef" type="sectiondefType" minOccurs="0" maxOccurs="unbounded" />
|
|
282
|
+
// <xsd:element name="tableofcontents" type="tableofcontentsType" minOccurs="0" maxOccurs="1" />
|
|
283
|
+
// <xsd:element name="requiresclause" type="linkedTextType" minOccurs="0" />
|
|
284
|
+
// <xsd:element name="initializer" type="linkedTextType" minOccurs="0" />
|
|
285
|
+
// <xsd:element name="briefdescription" type="descriptionType" minOccurs="0" />
|
|
286
|
+
// <xsd:element name="detaileddescription" type="descriptionType" minOccurs="0" />
|
|
287
|
+
// <xsd:element name="exports" type="exportsType" minOccurs="0" maxOccurs="1"/>
|
|
288
|
+
// <xsd:element name="inheritancegraph" type="graphType" minOccurs="0" />
|
|
289
|
+
// <xsd:element name="collaborationgraph" type="graphType" minOccurs="0" />
|
|
290
|
+
// <xsd:element name="programlisting" type="listingType" minOccurs="0" />
|
|
291
|
+
// <xsd:element name="location" type="locationType" minOccurs="0" />
|
|
292
|
+
// <xsd:element name="listofallmembers" type="listofallmembersType" minOccurs="0" />
|
|
293
|
+
// </xsd:sequence>
|
|
294
|
+
// <xsd:attribute name="id" type="xsd:string" />
|
|
295
|
+
// <xsd:attribute name="kind" type="DoxCompoundKind" />
|
|
296
|
+
// <xsd:attribute name="language" type="DoxLanguage" use="optional"/>
|
|
297
|
+
// <xsd:attribute name="prot" type="DoxProtectionKind" />
|
|
298
|
+
// <xsd:attribute name="final" type="DoxBool" use="optional"/>
|
|
299
|
+
// <xsd:attribute name="inline" type="DoxBool" use="optional"/>
|
|
300
|
+
// <xsd:attribute name="sealed" type="DoxBool" use="optional"/>
|
|
301
|
+
// <xsd:attribute name="abstract" type="DoxBool" use="optional"/>
|
|
302
|
+
// </xsd:complexType>
|
|
303
|
+
|
|
304
|
+
// <xsd:simpleType name="DoxCompoundKind">
|
|
305
|
+
// <xsd:restriction base="xsd:string">
|
|
306
|
+
// <xsd:enumeration value="class" />
|
|
307
|
+
// <xsd:enumeration value="struct" />
|
|
308
|
+
// <xsd:enumeration value="union" />
|
|
309
|
+
// <xsd:enumeration value="interface" />
|
|
310
|
+
// <xsd:enumeration value="protocol" />
|
|
311
|
+
// <xsd:enumeration value="category" />
|
|
312
|
+
// <xsd:enumeration value="exception" />
|
|
313
|
+
// <xsd:enumeration value="service" />
|
|
314
|
+
// <xsd:enumeration value="singleton" />
|
|
315
|
+
// <xsd:enumeration value="module" />
|
|
316
|
+
// <xsd:enumeration value="type" />
|
|
317
|
+
// <xsd:enumeration value="file" />
|
|
318
|
+
// <xsd:enumeration value="namespace" />
|
|
319
|
+
// <xsd:enumeration value="group" />
|
|
320
|
+
// <xsd:enumeration value="page" />
|
|
321
|
+
// <xsd:enumeration value="example" />
|
|
322
|
+
// <xsd:enumeration value="dir" />
|
|
323
|
+
// <xsd:enumeration value="concept" />
|
|
324
|
+
// </xsd:restriction>
|
|
325
|
+
// </xsd:simpleType>
|
|
326
|
+
|
|
327
|
+
/**
|
|
328
|
+
* Abstract base class for Doxygen compound definition data models.
|
|
329
|
+
*
|
|
330
|
+
* @remarks
|
|
331
|
+
* Represents the core structure of compound definitions in Doxygen XML output,
|
|
332
|
+
* including classes, structures, files, namespaces, and other compound types.
|
|
333
|
+
* This class handles the complete XML schema for compound definitions with
|
|
334
|
+
* comprehensive element and attribute processing to capture all aspects of
|
|
335
|
+
* the documented code structures.
|
|
336
|
+
*
|
|
337
|
+
* @public
|
|
338
|
+
*/
|
|
339
|
+
export abstract class AbstractCompoundDefType extends AbstractDataModelBase {
|
|
340
|
+
// Mandatory elements.
|
|
341
|
+
|
|
342
|
+
/**
|
|
343
|
+
* The name of the compound element.
|
|
344
|
+
*
|
|
345
|
+
* @remarks
|
|
346
|
+
* Contains the fully qualified name of the compound (class, namespace,
|
|
347
|
+
* file, etc.) as extracted from the 'compoundname' XML element. This
|
|
348
|
+
* represents the primary identifier for the compound in the documentation
|
|
349
|
+
* hierarchy and is mandatory for all compound types except namespaces.
|
|
350
|
+
*/
|
|
351
|
+
compoundName = ''
|
|
352
|
+
|
|
353
|
+
// Optional elements.
|
|
354
|
+
|
|
355
|
+
/**
|
|
356
|
+
* Optional title for the compound.
|
|
357
|
+
*
|
|
358
|
+
* @remarks
|
|
359
|
+
* Provides a human-readable title for the compound that may differ from
|
|
360
|
+
* the compound name. This is typically used for pages and groups where
|
|
361
|
+
* a descriptive title is more appropriate than the technical identifier.
|
|
362
|
+
*/
|
|
363
|
+
title?: string | undefined
|
|
364
|
+
|
|
365
|
+
/**
|
|
366
|
+
* Brief description of the compound.
|
|
367
|
+
*
|
|
368
|
+
* @remarks
|
|
369
|
+
* Contains a concise summary description of the compound extracted from
|
|
370
|
+
* the 'briefdescription' XML element. This provides a short overview
|
|
371
|
+
* suitable for listings and summary views of the documented entity.
|
|
372
|
+
*/
|
|
373
|
+
briefDescription?: BriefDescriptionDataModel | undefined
|
|
374
|
+
|
|
375
|
+
/**
|
|
376
|
+
* Detailed description of the compound.
|
|
377
|
+
*
|
|
378
|
+
* @remarks
|
|
379
|
+
* Contains comprehensive documentation for the compound extracted from
|
|
380
|
+
* the 'detaileddescription' XML element. This includes full description
|
|
381
|
+
* text with formatting, examples, and other detailed documentation
|
|
382
|
+
* content.
|
|
383
|
+
*/
|
|
384
|
+
detailedDescription?: DetailedDescriptionDataModel | undefined
|
|
385
|
+
|
|
386
|
+
/**
|
|
387
|
+
* Base compound references for inheritance relationships.
|
|
388
|
+
*
|
|
389
|
+
* @remarks
|
|
390
|
+
* Contains references to base classes or parent compounds from which
|
|
391
|
+
* this compound inherits. This property captures the inheritance
|
|
392
|
+
* hierarchy information extracted from 'basecompoundref' XML elements
|
|
393
|
+
* for object-oriented documentation structures.
|
|
394
|
+
*/
|
|
395
|
+
baseCompoundRefs?: BaseCompoundRefDataModel[] | undefined
|
|
396
|
+
|
|
397
|
+
/**
|
|
398
|
+
* Derived compound references for inheritance relationships.
|
|
399
|
+
*
|
|
400
|
+
* @remarks
|
|
401
|
+
* Contains references to derived classes or child compounds that inherit
|
|
402
|
+
* from this compound. This property captures the inheritance hierarchy
|
|
403
|
+
* information extracted from 'derivedcompoundref' XML elements for
|
|
404
|
+
* complete inheritance documentation.
|
|
405
|
+
*/
|
|
406
|
+
derivedCompoundRefs?: DerivedCompoundRefDataModel[] | undefined
|
|
407
|
+
|
|
408
|
+
/**
|
|
409
|
+
* Include file references for this compound.
|
|
410
|
+
*
|
|
411
|
+
* @remarks
|
|
412
|
+
* Contains information about header files or modules that this compound
|
|
413
|
+
* includes or depends upon. This property captures dependency
|
|
414
|
+
* relationships extracted from 'includes' XML elements, providing
|
|
415
|
+
* visibility into the file inclusion structure.
|
|
416
|
+
*/
|
|
417
|
+
includes?: IncludesDataModel[] | undefined
|
|
418
|
+
|
|
419
|
+
/**
|
|
420
|
+
* Reverse include file references for this compound.
|
|
421
|
+
*
|
|
422
|
+
* @remarks
|
|
423
|
+
* Contains information about other files or compounds that include this
|
|
424
|
+
* compound. This property captures reverse dependency relationships
|
|
425
|
+
* extracted from 'includedby' XML elements, showing which entities
|
|
426
|
+
* depend on this compound.
|
|
427
|
+
*/
|
|
428
|
+
includedBy?: IncludedByDataModel[] | undefined
|
|
429
|
+
|
|
430
|
+
/**
|
|
431
|
+
* Template parameter list for templated compounds.
|
|
432
|
+
*
|
|
433
|
+
* @remarks
|
|
434
|
+
* Contains the template parameter definitions for templated classes,
|
|
435
|
+
* functions, or other templated entities. This property captures
|
|
436
|
+
* template information extracted from 'templateparamlist' XML elements,
|
|
437
|
+
* providing details about generic programming constructs.
|
|
438
|
+
*/
|
|
439
|
+
templateParamList?: TemplateParamListDataModel | undefined
|
|
440
|
+
|
|
441
|
+
/**
|
|
442
|
+
* Section definitions within the compound.
|
|
443
|
+
*
|
|
444
|
+
* @remarks
|
|
445
|
+
* Contains organised sections of members and documentation within the
|
|
446
|
+
* compound. This property captures structured content extracted from
|
|
447
|
+
* 'sectiondef' XML elements, providing hierarchical organisation of
|
|
448
|
+
* compound members by type and visibility.
|
|
449
|
+
*/
|
|
450
|
+
sectionDefs?: SectionDefDataModel[] | undefined
|
|
451
|
+
|
|
452
|
+
/**
|
|
453
|
+
* Table of contents for the compound documentation.
|
|
454
|
+
*
|
|
455
|
+
* @remarks
|
|
456
|
+
* Contains the navigation structure for complex compound documentation.
|
|
457
|
+
* This property captures hierarchical content organisation extracted
|
|
458
|
+
* from 'tableofcontents' XML elements, providing structured navigation
|
|
459
|
+
* for large documentation entities.
|
|
460
|
+
*/
|
|
461
|
+
tableOfContents?: TableOfContentsDataModel | undefined
|
|
462
|
+
// innerModules
|
|
463
|
+
|
|
464
|
+
/**
|
|
465
|
+
* Requires clause for constrained templates or concepts.
|
|
466
|
+
*
|
|
467
|
+
* @remarks
|
|
468
|
+
* Contains the `requires` clause expression for constrained templates
|
|
469
|
+
* or concept definitions. This property captures constraint information
|
|
470
|
+
* extracted from 'requiresclause' XML elements, representing C++
|
|
471
|
+
* template constraints and concept requirements in the documentation.
|
|
472
|
+
*/
|
|
473
|
+
requiresClause?: RequiresClauseDataModel | undefined
|
|
474
|
+
|
|
475
|
+
/**
|
|
476
|
+
* Initializer expression for the compound.
|
|
477
|
+
*
|
|
478
|
+
* @remarks
|
|
479
|
+
* Contains the initializer expression associated with this compound,
|
|
480
|
+
* typically used for concept definitions that include a defining
|
|
481
|
+
* expression. This property captures initializer content extracted
|
|
482
|
+
* from 'initializer' XML elements in the Doxygen compound output.
|
|
483
|
+
*/
|
|
484
|
+
initializer?: InitializerDataModel | undefined
|
|
485
|
+
|
|
486
|
+
/**
|
|
487
|
+
* Inner folder references contained within this compound.
|
|
488
|
+
*
|
|
489
|
+
* @remarks
|
|
490
|
+
* Contains references to subdirectories or folders that are logically
|
|
491
|
+
* contained within this compound. This property captures hierarchical
|
|
492
|
+
* folder structure extracted from 'innerdir' XML elements, typically
|
|
493
|
+
* used for directory-based documentation organisation.
|
|
494
|
+
*/
|
|
495
|
+
innerDirs?: InnerDirDataModel[] | undefined
|
|
496
|
+
|
|
497
|
+
/**
|
|
498
|
+
* Inner file references contained within this compound.
|
|
499
|
+
*
|
|
500
|
+
* @remarks
|
|
501
|
+
* Contains references to files that are logically contained within this
|
|
502
|
+
* compound. This property captures file relationships extracted from
|
|
503
|
+
* 'innerfile' XML elements, providing visibility into compound-to-file
|
|
504
|
+
* associations in the documentation structure.
|
|
505
|
+
*/
|
|
506
|
+
innerFiles?: InnerFileDataModel[] | undefined
|
|
507
|
+
|
|
508
|
+
/**
|
|
509
|
+
* Inner class references contained within this compound.
|
|
510
|
+
*
|
|
511
|
+
* @remarks
|
|
512
|
+
* Contains references to classes, structures, or other class-like
|
|
513
|
+
* entities that are defined within this compound. This property captures
|
|
514
|
+
* nested type relationships extracted from 'innerclass' XML elements,
|
|
515
|
+
* supporting hierarchical type documentation.
|
|
516
|
+
*/
|
|
517
|
+
innerClasses?: InnerClassDataModel[] | undefined
|
|
518
|
+
|
|
519
|
+
/**
|
|
520
|
+
* Inner concept references contained within this compound.
|
|
521
|
+
*
|
|
522
|
+
* @remarks
|
|
523
|
+
* Contains references to concepts that are defined within this compound.
|
|
524
|
+
* This property captures nested concept relationships extracted from
|
|
525
|
+
* 'innerconcept' XML elements, supporting hierarchical concept documentation.
|
|
526
|
+
*/
|
|
527
|
+
innerConcepts?: InnerConceptDataModel[] | undefined
|
|
528
|
+
|
|
529
|
+
/**
|
|
530
|
+
* Inner namespace references contained within this compound.
|
|
531
|
+
*
|
|
532
|
+
* @remarks
|
|
533
|
+
* Contains references to namespaces that are nested within this compound.
|
|
534
|
+
* This property captures namespace hierarchy relationships extracted from
|
|
535
|
+
* 'innernamespace' XML elements, supporting multi-level namespace
|
|
536
|
+
* documentation organisation.
|
|
537
|
+
*/
|
|
538
|
+
innerNamespaces?: InnerNamespaceDataModel[] | undefined
|
|
539
|
+
|
|
540
|
+
/**
|
|
541
|
+
* Inner page references contained within this compound.
|
|
542
|
+
*
|
|
543
|
+
* @remarks
|
|
544
|
+
* Contains references to documentation pages that are logically
|
|
545
|
+
* associated with this compound. This property captures page
|
|
546
|
+
* relationships extracted from 'innerpage' XML elements, supporting
|
|
547
|
+
* structured documentation navigation.
|
|
548
|
+
*/
|
|
549
|
+
innerPages?: InnerPageDataModel[] | undefined
|
|
550
|
+
|
|
551
|
+
/**
|
|
552
|
+
* Inner group references contained within this compound.
|
|
553
|
+
*
|
|
554
|
+
* @remarks
|
|
555
|
+
* Contains references to documentation groups that are associated with
|
|
556
|
+
* this compound. This property captures group relationships extracted
|
|
557
|
+
* from 'innergroup' XML elements, supporting thematic organisation of
|
|
558
|
+
* related documentation elements.
|
|
559
|
+
*/
|
|
560
|
+
innerGroups?: InnerGroupDataModel[] | undefined
|
|
561
|
+
|
|
562
|
+
/**
|
|
563
|
+
* Program listing or source code for the compound.
|
|
564
|
+
*
|
|
565
|
+
* @remarks
|
|
566
|
+
* Contains the actual source code implementation or listing for the
|
|
567
|
+
* compound when available. This property captures code content extracted
|
|
568
|
+
* from 'programlisting' XML elements, providing syntax-highlighted
|
|
569
|
+
* source code display in the documentation.
|
|
570
|
+
*/
|
|
571
|
+
programListing?: ProgramListingDataModel | undefined
|
|
572
|
+
|
|
573
|
+
/**
|
|
574
|
+
* Location information for the compound definition.
|
|
575
|
+
*
|
|
576
|
+
* @remarks
|
|
577
|
+
* Contains file path, line number, and other location details for where
|
|
578
|
+
* the compound is defined in the source code. This property captures
|
|
579
|
+
* location metadata extracted from 'location' XML elements, enabling
|
|
580
|
+
* source code navigation and reference linking.
|
|
581
|
+
*/
|
|
582
|
+
location?: LocationDataModel | undefined
|
|
583
|
+
|
|
584
|
+
/**
|
|
585
|
+
* Complete list of all members contained in the compound.
|
|
586
|
+
*
|
|
587
|
+
* @remarks
|
|
588
|
+
* Contains a comprehensive list of all members (methods, properties,
|
|
589
|
+
* etc.) that belong to this compound, including inherited members.
|
|
590
|
+
* This property captures member information extracted from
|
|
591
|
+
* 'listofallmembers' XML elements for complete API documentation.
|
|
592
|
+
*/
|
|
593
|
+
listOfAllMembers?: ListOfAllMembersDataModel | undefined
|
|
594
|
+
|
|
595
|
+
// Mandatory attributes.
|
|
596
|
+
|
|
597
|
+
/**
|
|
598
|
+
* Unique identifier for the compound.
|
|
599
|
+
*
|
|
600
|
+
* @remarks
|
|
601
|
+
* Contains the unique ID assigned to this compound by Doxygen for
|
|
602
|
+
* cross-referencing and linking purposes. This identifier is mandatory
|
|
603
|
+
* and serves as the primary key for compound identification throughout
|
|
604
|
+
* the documentation system.
|
|
605
|
+
*/
|
|
606
|
+
id = ''
|
|
607
|
+
|
|
608
|
+
/**
|
|
609
|
+
* The kind or type of compound.
|
|
610
|
+
*
|
|
611
|
+
* @remarks
|
|
612
|
+
* Specifies the compound type using DoxCompoundKind enumeration values
|
|
613
|
+
* such as 'class', 'struct', 'file', 'namespace', 'page', etc. This
|
|
614
|
+
* mandatory attribute determines how the compound should be processed
|
|
615
|
+
* and displayed in the documentation output.
|
|
616
|
+
*/
|
|
617
|
+
kind = '' // DoxCompoundKind
|
|
618
|
+
|
|
619
|
+
// Optional attributes.
|
|
620
|
+
|
|
621
|
+
/**
|
|
622
|
+
* Programming language of the compound.
|
|
623
|
+
*
|
|
624
|
+
* @remarks
|
|
625
|
+
* Specifies the programming language using DoxLanguage enumeration
|
|
626
|
+
* values when the compound is language-specific. This optional attribute
|
|
627
|
+
* enables language-aware processing and appropriate syntax highlighting
|
|
628
|
+
* in the generated documentation.
|
|
629
|
+
*/
|
|
630
|
+
language?: string | undefined // DoxLanguage
|
|
631
|
+
// WARNING: This attribute is not marked as optional, but is not present.
|
|
632
|
+
|
|
633
|
+
/**
|
|
634
|
+
* Protection level of the compound.
|
|
635
|
+
*
|
|
636
|
+
* @remarks
|
|
637
|
+
* Specifies the access protection level (public, private, protected)
|
|
638
|
+
* for the compound using DoxProtectionKind enumeration values. Note
|
|
639
|
+
* that whilst this attribute is not marked as optional in the XML
|
|
640
|
+
* schema, it may not be present in all compound definitions.
|
|
641
|
+
*/
|
|
642
|
+
prot?: string | undefined
|
|
643
|
+
|
|
644
|
+
/**
|
|
645
|
+
* Indicates whether the compound is marked as final.
|
|
646
|
+
*
|
|
647
|
+
* @remarks
|
|
648
|
+
* Specifies that the compound cannot be inherited from or extended,
|
|
649
|
+
* typically used in object-oriented programming languages that support
|
|
650
|
+
* final classes or sealed types. This boolean attribute reflects the
|
|
651
|
+
* final modifier in the source code.
|
|
652
|
+
*/
|
|
653
|
+
final?: boolean | undefined
|
|
654
|
+
|
|
655
|
+
/**
|
|
656
|
+
* Indicates whether the compound is inline.
|
|
657
|
+
*
|
|
658
|
+
* @remarks
|
|
659
|
+
* Specifies that the compound is defined inline, typically used for
|
|
660
|
+
* functions, methods, or other constructs that are implemented directly
|
|
661
|
+
* in header files. This boolean attribute reflects inline declarations
|
|
662
|
+
* in the source code.
|
|
663
|
+
*/
|
|
664
|
+
inline?: boolean | undefined
|
|
665
|
+
|
|
666
|
+
/**
|
|
667
|
+
* Indicates whether the compound is sealed.
|
|
668
|
+
*
|
|
669
|
+
* @remarks
|
|
670
|
+
* Specifies that the compound is sealed and cannot be inherited from,
|
|
671
|
+
* similar to final but using different language-specific terminology.
|
|
672
|
+
* This boolean attribute reflects sealed modifiers found in languages
|
|
673
|
+
* like C# or other object-oriented programming environments.
|
|
674
|
+
*/
|
|
675
|
+
sealed?: boolean | undefined
|
|
676
|
+
|
|
677
|
+
/**
|
|
678
|
+
* Indicates whether the compound is abstract.
|
|
679
|
+
*
|
|
680
|
+
* @remarks
|
|
681
|
+
* Specifies that the compound is abstract and cannot be instantiated
|
|
682
|
+
* directly, typically requiring concrete implementations of abstract
|
|
683
|
+
* methods or properties. This boolean attribute reflects abstract
|
|
684
|
+
* modifiers in object-oriented programming languages.
|
|
685
|
+
*/
|
|
686
|
+
abstract?: boolean | undefined
|
|
687
|
+
|
|
688
|
+
// Not in xsd.
|
|
689
|
+
// parentId: string = ''
|
|
690
|
+
// permalink: string = ''
|
|
691
|
+
|
|
692
|
+
/**
|
|
693
|
+
* Constructs a new compound definition data model instance.
|
|
694
|
+
*
|
|
695
|
+
* @remarks
|
|
696
|
+
* Parses the complete XML structure for compound definitions, processing
|
|
697
|
+
* all elements and attributes according to the Doxygen XML schema. This
|
|
698
|
+
* includes handling optional and mandatory elements, complex nested
|
|
699
|
+
* structures, and comprehensive attribute validation to ensure data
|
|
700
|
+
* integrity throughout the parsing process.
|
|
701
|
+
*
|
|
702
|
+
* @param xml - The XML parser instance for processing elements
|
|
703
|
+
* @param element - The XML element object to parse
|
|
704
|
+
* @param elementName - The name of the XML element being processed
|
|
705
|
+
*/
|
|
706
|
+
constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
|
|
707
|
+
super(elementName)
|
|
708
|
+
|
|
709
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
710
|
+
|
|
711
|
+
// ------------------------------------------------------------------------
|
|
712
|
+
// Process elements.
|
|
713
|
+
|
|
714
|
+
// console.log(util.inspect(element, { compact: false, depth: 999 })
|
|
715
|
+
const innerElements = xml.getInnerElements(element, elementName)
|
|
716
|
+
assert(innerElements.length > 0)
|
|
717
|
+
|
|
718
|
+
for (const innerElement of innerElements) {
|
|
719
|
+
if (xml.hasInnerText(innerElement)) {
|
|
720
|
+
// Ignore texts.
|
|
721
|
+
} else if (xml.isInnerElementText(innerElement, 'compoundname')) {
|
|
722
|
+
this.compoundName = xml.getInnerElementText(
|
|
723
|
+
innerElement,
|
|
724
|
+
'compoundname'
|
|
725
|
+
)
|
|
726
|
+
} else if (xml.isInnerElementText(innerElement, 'title')) {
|
|
727
|
+
this.title = xml.getInnerElementText(innerElement, 'title')
|
|
728
|
+
} else if (xml.hasInnerElement(innerElement, 'briefdescription')) {
|
|
729
|
+
this.briefDescription = new BriefDescriptionDataModel(xml, innerElement)
|
|
730
|
+
} else if (xml.hasInnerElement(innerElement, 'detaileddescription')) {
|
|
731
|
+
this.detailedDescription = new DetailedDescriptionDataModel(
|
|
732
|
+
xml,
|
|
733
|
+
innerElement
|
|
734
|
+
)
|
|
735
|
+
} else if (xml.hasInnerElement(innerElement, 'basecompoundref')) {
|
|
736
|
+
this.baseCompoundRefs ??= []
|
|
737
|
+
this.baseCompoundRefs.push(
|
|
738
|
+
new BaseCompoundRefDataModel(xml, innerElement)
|
|
739
|
+
)
|
|
740
|
+
} else if (xml.hasInnerElement(innerElement, 'derivedcompoundref')) {
|
|
741
|
+
this.derivedCompoundRefs ??= []
|
|
742
|
+
this.derivedCompoundRefs.push(
|
|
743
|
+
new DerivedCompoundRefDataModel(xml, innerElement)
|
|
744
|
+
)
|
|
745
|
+
} else if (xml.hasInnerElement(innerElement, 'includes')) {
|
|
746
|
+
// console.log(util.inspect(item))
|
|
747
|
+
this.includes ??= []
|
|
748
|
+
this.includes.push(new IncludesDataModel(xml, innerElement))
|
|
749
|
+
} else if (xml.hasInnerElement(innerElement, 'includedby')) {
|
|
750
|
+
// console.log(util.inspect(item))
|
|
751
|
+
this.includedBy ??= []
|
|
752
|
+
this.includedBy.push(new IncludedByDataModel(xml, innerElement))
|
|
753
|
+
} else if (xml.hasInnerElement(innerElement, 'incdepgraph')) {
|
|
754
|
+
// TODO: Ignored, not used for now.
|
|
755
|
+
} else if (xml.hasInnerElement(innerElement, 'invincdepgraph')) {
|
|
756
|
+
// TODO: Ignored, not used for now.
|
|
757
|
+
} else if (xml.hasInnerElement(innerElement, 'innerdir')) {
|
|
758
|
+
this.innerDirs ??= []
|
|
759
|
+
this.innerDirs.push(new InnerDirDataModel(xml, innerElement))
|
|
760
|
+
} else if (xml.hasInnerElement(innerElement, 'innerfile')) {
|
|
761
|
+
this.innerFiles ??= []
|
|
762
|
+
this.innerFiles.push(new InnerFileDataModel(xml, innerElement))
|
|
763
|
+
} else if (xml.hasInnerElement(innerElement, 'innerclass')) {
|
|
764
|
+
this.innerClasses ??= []
|
|
765
|
+
this.innerClasses.push(new InnerClassDataModel(xml, innerElement))
|
|
766
|
+
} else if (xml.hasInnerElement(innerElement, 'innerconcept')) {
|
|
767
|
+
this.innerConcepts ??= []
|
|
768
|
+
this.innerConcepts.push(new InnerConceptDataModel(xml, innerElement))
|
|
769
|
+
} else if (xml.hasInnerElement(innerElement, 'innernamespace')) {
|
|
770
|
+
this.innerNamespaces ??= []
|
|
771
|
+
this.innerNamespaces.push(
|
|
772
|
+
new InnerNamespaceDataModel(xml, innerElement)
|
|
773
|
+
)
|
|
774
|
+
} else if (xml.hasInnerElement(innerElement, 'innerpage')) {
|
|
775
|
+
this.innerPages ??= []
|
|
776
|
+
this.innerPages.push(new InnerPageDataModel(xml, innerElement))
|
|
777
|
+
} else if (xml.hasInnerElement(innerElement, 'innergroup')) {
|
|
778
|
+
this.innerGroups ??= []
|
|
779
|
+
this.innerGroups.push(new InnerGroupDataModel(xml, innerElement))
|
|
780
|
+
} else if (xml.hasInnerElement(innerElement, 'templateparamlist')) {
|
|
781
|
+
this.templateParamList = new TemplateParamListDataModel(
|
|
782
|
+
xml,
|
|
783
|
+
innerElement
|
|
784
|
+
)
|
|
785
|
+
} else if (xml.hasInnerElement(innerElement, 'sectiondef')) {
|
|
786
|
+
this.sectionDefs ??= []
|
|
787
|
+
this.sectionDefs.push(new SectionDefDataModel(xml, innerElement))
|
|
788
|
+
} else if (xml.hasInnerElement(innerElement, 'tableofcontents')) {
|
|
789
|
+
this.tableOfContents = new TableOfContentsDataModel(xml, innerElement)
|
|
790
|
+
} else if (xml.hasInnerElement(innerElement, 'requiresclause')) {
|
|
791
|
+
this.requiresClause = new RequiresClauseDataModel(xml, innerElement)
|
|
792
|
+
} else if (xml.hasInnerElement(innerElement, 'initializer')) {
|
|
793
|
+
this.initializer = new InitializerDataModel(xml, innerElement)
|
|
794
|
+
} else if (xml.hasInnerElement(innerElement, 'inheritancegraph')) {
|
|
795
|
+
// TODO: Ignored, not used for now.
|
|
796
|
+
} else if (xml.hasInnerElement(innerElement, 'collaborationgraph')) {
|
|
797
|
+
// TODO: Ignored, not used for now.
|
|
798
|
+
} else if (xml.hasInnerElement(innerElement, 'programlisting')) {
|
|
799
|
+
assert(this.programListing === undefined)
|
|
800
|
+
this.programListing = new ProgramListingDataModel(xml, innerElement)
|
|
801
|
+
} else if (xml.hasInnerElement(innerElement, 'location')) {
|
|
802
|
+
this.location = new LocationDataModel(xml, innerElement)
|
|
803
|
+
} else if (xml.hasInnerElement(innerElement, 'listofallmembers')) {
|
|
804
|
+
this.listOfAllMembers = new ListOfAllMembersDataModel(xml, innerElement)
|
|
805
|
+
} else {
|
|
806
|
+
console.error(
|
|
807
|
+
`${elementName} element:`,
|
|
808
|
+
Object.keys(innerElement),
|
|
809
|
+
'not implemented yet in',
|
|
810
|
+
this.constructor.name
|
|
811
|
+
)
|
|
812
|
+
}
|
|
813
|
+
}
|
|
814
|
+
|
|
815
|
+
// Moved down, depends on kind.
|
|
816
|
+
// assert(this.compoundName.length > 0)
|
|
817
|
+
|
|
818
|
+
// ------------------------------------------------------------------------
|
|
819
|
+
// Process attributes.
|
|
820
|
+
|
|
821
|
+
assert(xml.hasAttributes(element))
|
|
822
|
+
|
|
823
|
+
const attributesNames = xml.getAttributesNames(element)
|
|
824
|
+
// console.log(attributesNames)
|
|
825
|
+
for (const attributeName of attributesNames) {
|
|
826
|
+
// console.log(attributeName)
|
|
827
|
+
if (attributeName === '@_id') {
|
|
828
|
+
this.id = xml.getAttributeStringValue(element, '@_id')
|
|
829
|
+
} else if (attributeName === '@_kind') {
|
|
830
|
+
this.kind = xml.getAttributeStringValue(element, '@_kind')
|
|
831
|
+
} else if (attributeName === '@_language') {
|
|
832
|
+
this.language = xml.getAttributeStringValue(element, '@_language')
|
|
833
|
+
} else if (attributeName === '@_prot') {
|
|
834
|
+
this.prot = xml.getAttributeStringValue(element, '@_prot')
|
|
835
|
+
} else if (attributeName === '@_final') {
|
|
836
|
+
this.final = xml.getAttributeBooleanValue(element, '@_final')
|
|
837
|
+
} else if (attributeName === '@_inline') {
|
|
838
|
+
this.inline = xml.getAttributeBooleanValue(element, '@_inline')
|
|
839
|
+
} else if (attributeName === '@_sealed') {
|
|
840
|
+
this.sealed = xml.getAttributeBooleanValue(element, '@_sealed')
|
|
841
|
+
} else if (attributeName === '@_abstract') {
|
|
842
|
+
this.abstract = xml.getAttributeBooleanValue(element, '@_abstract')
|
|
843
|
+
} else {
|
|
844
|
+
console.error(util.inspect(element, { compact: false, depth: 999 }))
|
|
845
|
+
console.error(
|
|
846
|
+
`${elementName} attribute:`,
|
|
847
|
+
attributeName,
|
|
848
|
+
'not implemented yet in',
|
|
849
|
+
this.constructor.name
|
|
850
|
+
)
|
|
851
|
+
}
|
|
852
|
+
}
|
|
853
|
+
|
|
854
|
+
assert(this.id.length > 0)
|
|
855
|
+
assert(this.kind.length > 0)
|
|
856
|
+
|
|
857
|
+
// WARNING: The attribute is not marked as optional, but is not present.
|
|
858
|
+
// assert(this.prot.length > 0)
|
|
859
|
+
|
|
860
|
+
if (this.kind !== 'namespace') {
|
|
861
|
+
assert(this.compoundName.length > 0)
|
|
862
|
+
}
|
|
863
|
+
|
|
864
|
+
// ------------------------------------------------------------------------
|
|
865
|
+
|
|
866
|
+
// console.log(util.inspect(this, { compact: false, depth: 999 }))
|
|
867
|
+
}
|
|
868
|
+
}
|
|
869
|
+
|
|
870
|
+
// ----------------------------------------------------------------------------
|
|
871
|
+
|
|
872
|
+
// <xsd:element name="compounddef" type="compounddefType" minOccurs="0" />
|
|
873
|
+
|
|
874
|
+
/**
|
|
875
|
+
* Concrete implementation of compound definition data model.
|
|
876
|
+
*
|
|
877
|
+
* @remarks
|
|
878
|
+
* Provides the primary data model implementation for Doxygen compound
|
|
879
|
+
* definitions, handling all types of compounds including classes, structures,
|
|
880
|
+
* files, namespaces, and pages. This class serves as the main entry point
|
|
881
|
+
* for processing compound definition XML elements in the Doxygen output.
|
|
882
|
+
*
|
|
883
|
+
* @public
|
|
884
|
+
*/
|
|
885
|
+
export class CompoundDefDataModel extends AbstractCompoundDefType {
|
|
886
|
+
/**
|
|
887
|
+
* Constructs a new CompoundDefDataModel instance.
|
|
888
|
+
*
|
|
889
|
+
* @remarks
|
|
890
|
+
* Creates a data model object for 'compounddef' XML elements by delegating
|
|
891
|
+
* to the parent constructor with the appropriate element name. This
|
|
892
|
+
* represents the root element for all compound definitions in Doxygen XML
|
|
893
|
+
* output.
|
|
894
|
+
*
|
|
895
|
+
* @param xml - The XML parser instance for processing elements
|
|
896
|
+
* @param element - The XML element object to parse
|
|
897
|
+
*/
|
|
898
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
899
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
900
|
+
super(xml, element, 'compounddef')
|
|
901
|
+
}
|
|
902
|
+
}
|
|
903
|
+
|
|
904
|
+
// ----------------------------------------------------------------------------
|
|
905
|
+
|
|
906
|
+
// <xsd:complexType name="docHtmlOnlyType">
|
|
907
|
+
// <xsd:simpleContent>
|
|
908
|
+
// <xsd:extension base="xsd:string">
|
|
909
|
+
// <xsd:attribute name="block" type="xsd:string" />
|
|
910
|
+
// </xsd:extension>
|
|
911
|
+
// </xsd:simpleContent>
|
|
912
|
+
// </xsd:complexType>
|
|
913
|
+
|
|
914
|
+
/**
|
|
915
|
+
* Abstract base class for HTML-only documentation content.
|
|
916
|
+
*
|
|
917
|
+
* @remarks
|
|
918
|
+
* Represents content that should only be rendered in HTML output formats,
|
|
919
|
+
* providing a mechanism for format-specific content inclusion in Doxygen
|
|
920
|
+
* documentation. This class handles the 'docHtmlOnlyType' XML schema
|
|
921
|
+
* structure with text content and optional block attributes.
|
|
922
|
+
*
|
|
923
|
+
* @public
|
|
924
|
+
*/
|
|
925
|
+
export abstract class AbstractDocHtmlOnlyType extends AbstractDataModelBase {
|
|
926
|
+
text = ''
|
|
927
|
+
|
|
928
|
+
block?: string | undefined
|
|
929
|
+
|
|
930
|
+
/**
|
|
931
|
+
* Constructs a new HTML-only content data model instance.
|
|
932
|
+
*
|
|
933
|
+
* @remarks
|
|
934
|
+
* Parses HTML-only content elements from Doxygen XML output, extracting
|
|
935
|
+
* the text content and any optional block attributes. This content is
|
|
936
|
+
* intended for rendering only in HTML-based output formats whilst being
|
|
937
|
+
* excluded from other documentation formats.
|
|
938
|
+
*
|
|
939
|
+
* @param xml - The XML parser instance for processing elements
|
|
940
|
+
* @param element - The XML element object to parse
|
|
941
|
+
* @param elementName - The name of the XML element being processed
|
|
942
|
+
*/
|
|
943
|
+
constructor(xml: DoxygenXmlParser, element: object, elementName: string) {
|
|
944
|
+
super(elementName)
|
|
945
|
+
|
|
946
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
947
|
+
|
|
948
|
+
// ------------------------------------------------------------------------
|
|
949
|
+
// Process elements.
|
|
950
|
+
|
|
951
|
+
assert(xml.isInnerElementText(element, elementName))
|
|
952
|
+
this.text = xml.getInnerElementText(element, elementName)
|
|
953
|
+
|
|
954
|
+
// ------------------------------------------------------------------------
|
|
955
|
+
// Process attributes.
|
|
956
|
+
|
|
957
|
+
if (xml.hasAttributes(element)) {
|
|
958
|
+
const attributesNames = xml.getAttributesNames(element)
|
|
959
|
+
for (const attributeName of attributesNames) {
|
|
960
|
+
if (attributeName === '@_block') {
|
|
961
|
+
this.block = xml.getAttributeStringValue(element, '@_block')
|
|
962
|
+
} else {
|
|
963
|
+
console.error(util.inspect(element, { compact: false, depth: 999 }))
|
|
964
|
+
console.error(
|
|
965
|
+
`${elementName} attribute:`,
|
|
966
|
+
attributeName,
|
|
967
|
+
'not implemented yet in',
|
|
968
|
+
this.constructor.name
|
|
969
|
+
)
|
|
970
|
+
}
|
|
971
|
+
}
|
|
972
|
+
}
|
|
973
|
+
|
|
974
|
+
// ------------------------------------------------------------------------
|
|
975
|
+
|
|
976
|
+
// console.log(util.inspect(this, { compact: false, depth: 999 }))
|
|
977
|
+
}
|
|
978
|
+
}
|
|
979
|
+
|
|
980
|
+
// ----------------------------------------------------------------------------
|
|
981
|
+
|
|
982
|
+
// <xsd:element name="htmlonly" type="docHtmlOnlyType" />
|
|
983
|
+
|
|
984
|
+
/**
|
|
985
|
+
* Data model for HTML-only content elements.
|
|
986
|
+
*
|
|
987
|
+
* @remarks
|
|
988
|
+
* Represents content that should only be included in HTML output formats,
|
|
989
|
+
* typically used for web-specific markup or styling that is not appropriate
|
|
990
|
+
* for other documentation formats. This implementation handles the 'htmlonly'
|
|
991
|
+
* XML element from Doxygen output.
|
|
992
|
+
*
|
|
993
|
+
* @public
|
|
994
|
+
*/
|
|
995
|
+
export class HtmlOnlyDataModel extends AbstractDocHtmlOnlyType {
|
|
996
|
+
/**
|
|
997
|
+
* Constructs a new HtmlOnlyDataModel instance.
|
|
998
|
+
*
|
|
999
|
+
* @remarks
|
|
1000
|
+
* Creates a data model object for 'htmlonly' XML elements, which contain
|
|
1001
|
+
* content specifically intended for HTML output rendering only.
|
|
1002
|
+
*
|
|
1003
|
+
* @param xml - The XML parser instance for processing elements
|
|
1004
|
+
* @param element - The XML element object to parse
|
|
1005
|
+
*/
|
|
1006
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1007
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1008
|
+
super(xml, element, 'htmlonly')
|
|
1009
|
+
}
|
|
1010
|
+
}
|
|
1011
|
+
|
|
1012
|
+
// Normally strings are properties, but these are unusual, so we keep them
|
|
1013
|
+
// as objects.
|
|
1014
|
+
// <xsd:element name="manonly" type="xsd:string" />
|
|
1015
|
+
// <xsd:element name="xmlonly" type="xsd:string" />
|
|
1016
|
+
// <xsd:element name="rtfonly" type="xsd:string" />
|
|
1017
|
+
// <xsd:element name="latexonly" type="xsd:string" />
|
|
1018
|
+
// <xsd:element name="docbookonly" type="xsd:string" />
|
|
1019
|
+
|
|
1020
|
+
/**
|
|
1021
|
+
* Data model for manual-only content elements.
|
|
1022
|
+
*
|
|
1023
|
+
* @remarks
|
|
1024
|
+
* Represents content that should only be included in manual page output
|
|
1025
|
+
* formats. This class handles string content specifically intended for
|
|
1026
|
+
* Unix manual page generation whilst excluding it from other documentation
|
|
1027
|
+
* formats.
|
|
1028
|
+
*
|
|
1029
|
+
* @public
|
|
1030
|
+
*/
|
|
1031
|
+
export class ManOnlyDataModel extends AbstractStringType {
|
|
1032
|
+
/**
|
|
1033
|
+
* Constructs a new ManOnlyDataModel instance.
|
|
1034
|
+
*
|
|
1035
|
+
* @remarks
|
|
1036
|
+
* Creates a data model object for 'manonly' XML elements containing
|
|
1037
|
+
* content specifically intended for manual page output rendering.
|
|
1038
|
+
*
|
|
1039
|
+
* @param xml - The XML parser instance for processing elements
|
|
1040
|
+
* @param element - The XML element object to parse
|
|
1041
|
+
*/
|
|
1042
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1043
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1044
|
+
super(xml, element, 'manonly')
|
|
1045
|
+
}
|
|
1046
|
+
}
|
|
1047
|
+
|
|
1048
|
+
/**
|
|
1049
|
+
* Data model for XML-only content elements.
|
|
1050
|
+
*
|
|
1051
|
+
* @remarks
|
|
1052
|
+
* Represents content that should only be included in XML output formats.
|
|
1053
|
+
* This class handles string content specifically intended for XML-based
|
|
1054
|
+
* documentation generation whilst excluding it from other output formats.
|
|
1055
|
+
*
|
|
1056
|
+
* @public
|
|
1057
|
+
*/
|
|
1058
|
+
export class XmlOnlyDataModel extends AbstractStringType {
|
|
1059
|
+
/**
|
|
1060
|
+
* Constructs a new XmlOnlyDataModel instance.
|
|
1061
|
+
*
|
|
1062
|
+
* @remarks
|
|
1063
|
+
* Creates a data model object for 'xmlonly' XML elements containing
|
|
1064
|
+
* content specifically intended for XML output rendering.
|
|
1065
|
+
*
|
|
1066
|
+
* @param xml - The XML parser instance for processing elements
|
|
1067
|
+
* @param element - The XML element object to parse
|
|
1068
|
+
*/
|
|
1069
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1070
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1071
|
+
super(xml, element, 'xmlonly')
|
|
1072
|
+
}
|
|
1073
|
+
}
|
|
1074
|
+
|
|
1075
|
+
/**
|
|
1076
|
+
* Data model for RTF-only content elements.
|
|
1077
|
+
*
|
|
1078
|
+
* @remarks
|
|
1079
|
+
* Represents content that should only be included in Rich Text Format (RTF)
|
|
1080
|
+
* output. This class handles string content specifically intended for RTF
|
|
1081
|
+
* document generation whilst excluding it from other documentation formats.
|
|
1082
|
+
*
|
|
1083
|
+
* @public
|
|
1084
|
+
*/
|
|
1085
|
+
export class RtfOnlyDataModel extends AbstractStringType {
|
|
1086
|
+
/**
|
|
1087
|
+
* Constructs a new RtfOnlyDataModel instance.
|
|
1088
|
+
*
|
|
1089
|
+
* @remarks
|
|
1090
|
+
* Creates a data model object for 'rtfonly' XML elements containing
|
|
1091
|
+
* content specifically intended for RTF output rendering.
|
|
1092
|
+
*
|
|
1093
|
+
* @param xml - The XML parser instance for processing elements
|
|
1094
|
+
* @param element - The XML element object to parse
|
|
1095
|
+
*/
|
|
1096
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1097
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1098
|
+
super(xml, element, 'rtfonly')
|
|
1099
|
+
}
|
|
1100
|
+
}
|
|
1101
|
+
|
|
1102
|
+
/**
|
|
1103
|
+
* Data model for LaTeX-only content elements.
|
|
1104
|
+
*
|
|
1105
|
+
* @remarks
|
|
1106
|
+
* Represents content that should only be included in LaTeX output formats.
|
|
1107
|
+
* This class handles string content specifically intended for LaTeX document
|
|
1108
|
+
* generation whilst excluding it from other documentation formats.
|
|
1109
|
+
*
|
|
1110
|
+
* @public
|
|
1111
|
+
*/
|
|
1112
|
+
export class LatexOnlyDataModel extends AbstractStringType {
|
|
1113
|
+
/**
|
|
1114
|
+
* Constructs a new LatexOnlyDataModel instance.
|
|
1115
|
+
*
|
|
1116
|
+
* @remarks
|
|
1117
|
+
* Creates a data model object for 'latexonly' XML elements containing
|
|
1118
|
+
* content specifically intended for LaTeX output rendering.
|
|
1119
|
+
*
|
|
1120
|
+
* @param xml - The XML parser instance for processing elements
|
|
1121
|
+
* @param element - The XML element object to parse
|
|
1122
|
+
*/
|
|
1123
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1124
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1125
|
+
super(xml, element, 'latexonly')
|
|
1126
|
+
}
|
|
1127
|
+
}
|
|
1128
|
+
|
|
1129
|
+
/**
|
|
1130
|
+
* Data model for DocBook-only content elements.
|
|
1131
|
+
*
|
|
1132
|
+
* @remarks
|
|
1133
|
+
* Represents content that should only be included in DocBook output formats.
|
|
1134
|
+
* This class handles string content specifically intended for DocBook XML
|
|
1135
|
+
* document generation whilst excluding it from other documentation formats.
|
|
1136
|
+
*
|
|
1137
|
+
* @public
|
|
1138
|
+
*/
|
|
1139
|
+
export class DocBookOnlyDataModel extends AbstractStringType {
|
|
1140
|
+
/**
|
|
1141
|
+
* Constructs a new DocBookOnlyDataModel instance.
|
|
1142
|
+
*
|
|
1143
|
+
* @remarks
|
|
1144
|
+
* Creates a data model object for 'docbookonly' XML elements containing
|
|
1145
|
+
* content specifically intended for DocBook output rendering.
|
|
1146
|
+
*
|
|
1147
|
+
* @param xml - The XML parser instance for processing elements
|
|
1148
|
+
* @param element - The XML element object to parse
|
|
1149
|
+
*/
|
|
1150
|
+
constructor(xml: DoxygenXmlParser, element: object) {
|
|
1151
|
+
// console.log(elementName, util.inspect(element, { compact: false, depth: 999 }))
|
|
1152
|
+
super(xml, element, 'docbookonly')
|
|
1153
|
+
}
|
|
1154
|
+
}
|
|
1155
|
+
|
|
1156
|
+
// ----------------------------------------------------------------------------
|