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