backstage / mkdocs-techdocs-core

The core MkDocs plugin used by Backstage's TechDocs as a wrapper around multiple MkDocs plugins and Python Markdown extensions
Apache License 2.0
83 stars 61 forks source link

C4 ComponentQueue from PlantUML stdlib causing syntax error #129

Closed davidkeaveny closed 10 months ago

davidkeaveny commented 1 year ago

I'm using v1.2.0 of mkdocs-techdocs-core to render a C4 UML diagram coded in PlantUML; everything is going great with Context and Container diagrams, but when I create Component diagrams, Backstage fails to render them if they contain a ComponentQueue macro. I'm currently using the JetBrains Rider IDE, and the UML renders okay with their plugin, same for www.planttext.com, so there's nothing obviously wrong with my syntax per se - just something specific to the ComponentQueue when rendered within Backstage.

My UML is as follows:

@startuml
'ref http://plantuml.com/stdlib
!include <C4/C4_Component>

title Component diagram for ReadyTech STP API

Boundary(stp, "STP") {

    Boundary(stpEtl, "STP ETL", ".NET Core") {

        Component(messages, "MessageHandler", ".NET Core", "Handles messages received from the queue")
        Component(lodgements, "PayrollEventSubmissions", ".NET Core", "Transforms submissions to ATO format")
        Component(queries, "PayrollEventQueries", ".NET Core", "Queries the status of lodged submissions")
        Component(sdk, "StpMessageService", ".NET Core", "Communicates with the ATO SDK")
    }

    ComponentDb(db, "stp-db01", "SQL Server", "Stores client and payroll event details.")
    Component(s3, "stp-data", "AWS S3", "Stores XML requests sent to and responses received from the ATO.")
    ComponentQueue(sqs, "submissions")
}
@enduml

and this is the output seen in Backstage:

image

As you can see, the macros for Component and ComponentDb are all successfully converted into the appropriate rectangle and database objects, but it fails on the ComponentQueue

github-actions[bot] commented 10 months ago

This issue has been automatically marked as stale because it has not had recent activity. It will be closed if no further activity occurs. Thank you for your contributions.