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