Skip to content

feat: markdown translator#87

Merged
gummiorri merged 5 commits into
mainfrom
86-create-markdown-translator
Feb 8, 2026
Merged

feat: markdown translator#87
gummiorri merged 5 commits into
mainfrom
86-create-markdown-translator

Conversation

@gummiorri

@gummiorri gummiorri commented Feb 8, 2026

Copy link
Copy Markdown
Member

Add markdown translator for ports

The translator generates a markdown file showing the schema and constraints.

Use:
daco ports translate --format markdown

@gummiorri gummiorri linked an issue Feb 8, 2026 that may be closed by this pull request

@cubic-dev-ai cubic-dev-ai Bot left a comment

Copy link
Copy Markdown
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

1 issue found across 5 files

Prompt for AI agents (all issues)

Check if these issues are valid — if so, understand the root cause of each and fix them.


<file name="internal/translate/markdown/translator_test.go">

<violation number="1" location="internal/translate/markdown/translator_test.go:184">
P2: Incorrect index check: `strings.Index` returns 0 for a match at position 0, but this assertion requires `> 0`. Use `assert.GreaterOrEqual` or check `!= -1` to properly verify the substring was found.</violation>
</file>
Architecture diagram
sequenceDiagram
    participant CLI as CLI (cmd/daco)
    participant REG as Translator Registry
    participant MT as NEW: Markdown Translator
    participant RES as NEW: Markdown Resolver
    participant CORE as translate.Prepare (Core Lib)
    participant TPL as Go Template Engine (markdown.go.tmpl)

    Note over CLI, TPL: daco ports translate --format markdown

    CLI->>REG: registerTranslators()
    REG->>MT: NEW: Register "markdown" implementation

    CLI->>MT: Translate(portName, schema)
    
    MT->>CORE: Prepare(portName, schema, resolver)
    
    loop For each Field/Definition
        CORE->>RES: NEW: FormatRootName / FormatDefName
        RES-->>CORE: PascalCase name
        
        CORE->>RES: NEW: PrimitiveType / ArrayType
        RES-->>CORE: Markdown-friendly type string
        
        opt is Reference ($ref)
            CORE->>RES: NEW: RefType(defName)
            RES-->>CORE: Returns [Name](#Name) anchor link
        end
    end

    CORE-->>MT: Prepared Template Data (hierarchical)

    MT->>MT: NEW: formatConstraints(constraints)
    Note right of MT: Formats Enum, Min/Max, Pattern, etc.<br/>into comma-separated strings

    MT->>TPL: ExecuteTemplate("markdown.go.tmpl", data)
    
    alt Template Success
        TPL-->>MT: Generated Markdown Bytes
        MT-->>CLI: Return .md content
    else Template Error
        TPL-->>MT: Error
        MT-->>CLI: Return "failed to execute template"
    end
Loading

Reply with feedback, questions, or to request a fix. Tag @cubic-dev-ai to re-run a review.

Comment thread internal/translate/markdown/translator_test.go Outdated

@giuseppegrieco giuseppegrieco left a comment

Copy link
Copy Markdown
Member

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

LGTM

@giuseppegrieco giuseppegrieco changed the title feat: Add markdown translator feat: markdown translator Feb 8, 2026
@gummiorri gummiorri merged commit d8463cd into main Feb 8, 2026
9 checks passed
@gummiorri gummiorri deleted the 86-create-markdown-translator branch February 8, 2026 17:06
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment

Labels

None yet

Projects

None yet

Development

Successfully merging this pull request may close these issues.

Create markdown translator

2 participants