UNPKG

@xpack/docusaurus-plugin-doxygen

Version:

A Docusaurus plugin to integrate Doxygen into a Docusaurus project.

98 lines 7.25 kB
/* * This file is part of the xPack project (http://xpack.github.io). * Copyright (c) 2025 Liviu Ionescu. All rights reserved. * * Permission to use, copy, modify, and/or distribute this software * for any purpose is hereby granted, under the terms of the MIT license. * * If a copy of the license was not distributed with this file, it can * be obtained from https://opensource.org/licenses/MIT. */ import { DescriptionTypeTextRenderer, DocAnchorTypeLinesRenderer, DocEmptyTypeLinesRenderer, DocMarkupTypeTextRenderer, DocParamListTypeTextRenderer, DocParaTypeTextRenderer, DocRefTextTypeTextRenderer, DocSimpleSectTypeTextRenderer, DocURLLinkTextRenderer, FormulaRenderer, ImageRenderer, SpTypeTextRenderer, VerbatimRenderer } from './descriptiontype.js'; import { ListingTypeLinesRenderer, CodeLineTypeLinesRenderer, HighlightTypeLinesRenderer } from './listingtype.js'; import { DocListTypeLinesRenderer } from './doclisttype.js'; import { DocS1TypeLinesRenderer, DocS2TypeLinesRenderer, DocS3TypeLinesRenderer, DocS4TypeLinesRenderer, DocS5TypeLinesRenderer, DocS6TypeLinesRenderer } from './docinternalstype.js'; import { DocTitleTypeLinesRenderer } from './doctitletype.js'; import { DocVariableListTypeTextRenderer, VariableListPairLinesRenderer } from './docvariablelisttype.js'; import { DocXRefSectTextRenderer } from './docxrefsecttype.js'; import { IncTypeLinesRenderer } from './inctype.js'; import { LinkedTextTypeTextRenderer } from './linkedtexttype.js'; import { ParamTypeLinesRenderer } from './paramtype.js'; import { RefTextTypeTextRenderer } from './reftexttype.js'; import { RefTypeLinesRenderer } from './reftype.js'; import { SubstringDocMarkupTypeRenderer } from './substringtype.js'; import { DocEntryTypeTextRenderer, DocRowTypeLinesRenderer, DocTableTypeLinesRenderer } from './doctabletype.js'; // ---------------------------------------------------------------------------- export class Renderers { constructor(workspace) { // Add renderers for the parsed xml elements (in alphabetical order). this.elementLinesRenderers = new Map(); this.elementTextRenderers = new Map(); this.elementLinesRenderers.set('AbstractCodeLineType', new CodeLineTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocAnchorType', new DocAnchorTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocListType', new DocListTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocRowType', new DocRowTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect1Type', new DocS1TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect2Type', new DocS2TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect3Type', new DocS3TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect4Type', new DocS4TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect5Type', new DocS5TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocSect6Type', new DocS6TypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocTableType', new DocTableTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractDocTitleType', new DocTitleTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractHighlightType', new HighlightTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractIncType', new IncTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractListingType', new ListingTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractParamType', new ParamTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractProgramListingType', new ListingTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('AbstractRefType', new RefTypeLinesRenderer(workspace)); this.elementLinesRenderers.set('VariableListPairDataModel', new VariableListPairLinesRenderer(workspace)); // console.log(this.elementGenerators.size, 'element generators') this.elementTextRenderers.set('AbstractDescriptionType', new DescriptionTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocEmptyType', new DocEmptyTypeLinesRenderer(workspace)); this.elementTextRenderers.set('AbstractDocEntryType', new DocEntryTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocFormulaType', new FormulaRenderer(workspace)); this.elementTextRenderers.set('AbstractDocImageType', new ImageRenderer(workspace)); this.elementTextRenderers.set('AbstractDocMarkupType', new DocMarkupTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocParaType', new DocParaTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocParamListType', new DocParamListTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocRefTextType', new DocRefTextTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocSimpleSectType', new DocSimpleSectTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocURLLink', new DocURLLinkTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocVariableListType', new DocVariableListTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractDocXRefSectType', new DocXRefSectTextRenderer(workspace)); this.elementTextRenderers.set('AbstractLinkedTextType', new LinkedTextTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractRefTextType', new RefTextTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractSpType', new SpTypeTextRenderer(workspace)); this.elementTextRenderers.set('AbstractVerbatimType', new VerbatimRenderer(workspace)); this.elementTextRenderers.set('SubstringDocMarkupType', new SubstringDocMarkupTypeRenderer(workspace)); } getElementLinesRenderer(element) { let elementClass = element.constructor; while (elementClass.name !== '') { // console.log(elementClass.name) // console.log(this.elementGenerators) const elementGenerator = this.elementLinesRenderers.get(elementClass.name); if (elementGenerator !== undefined) { return elementGenerator; } elementClass = Object.getPrototypeOf(elementClass); } return undefined; } getElementTextRenderer(element) { let elementClass = element.constructor; while (elementClass.name !== '') { // console.log(elementClass.name) // console.log(this.elementGenerators) const elementGenerator = this.elementTextRenderers.get(elementClass.name); if (elementGenerator !== undefined) { return elementGenerator; } elementClass = Object.getPrototypeOf(elementClass); } return undefined; } } // ---------------------------------------------------------------------------- //# sourceMappingURL=renderers.js.map