Redocly / redoc

📘 OpenAPI/Swagger-generated API Reference Documentation
https://redocly.github.io/redoc/
MIT License
23.63k stars 2.3k forks source link

I can't determine if powershell code-snippets should be supported #2598

Open michaelgwelch opened 1 month ago

michaelgwelch commented 1 month ago

Describe the bug

What languages are supported by syntax highlighter for x-codeSamples (Or is this a question for redoc repo?)

I'm using x-codeSamples and the powershell examples are not highlighted correctly.

To Reproduce Steps to reproduce the behavior:

Given no redocly.yaml file

and this OpenAPI file

openapi: 3.0.0
info:
  title: "API"
  version: "1.0.0"
  contact:
    name: Contact Name
    email: contact@example.com
    url: https://example.com/
tags:
  - name: Metadata
    description: Metadata related requests
paths:
  /:
    get:
      operationId: getMetadata
      summary: Get metadata from the root of the API
      tags: ["Metadata"]
      x-codeSamples:
        - lang: powershell
          source: |
            # This is a comment "With Quotes" in it
            Invoke-RestMethod -Header @{Hello = 3} -Uri https://example.com/objects -Method Get

        - lang: javascript
          source: |
            // This is a comment "With Quotes" in it
            const response = await axiosClient.get("/objects")
                .withHeader("Hello", 3);
      responses:
        "200":
          description: OK

And running this command

npx @redocly/cli build-docs openapi.yaml

I get a html file that doesn't render the powershell snippet correctly. I notice it immediately with the first line (the comment) because it highlights the quoted content as a string and the comment isn't set off in a comment color

image

Expected behavior

I think (but don't know for sure) that prismjs is the highlighter and it supports powershell.

I expect the syntax highlighting to be rendered appropriately for powershell. (Like if I create a javascript example)

image

Perhaps redoc only supports a limited subset of prismjs languages? I see here that the required lang property is documented but it links to a list of @github/linguist languages.

But the list of linguist languages includes PowerShell.

Perhaps there's a way to configure redoc with additional languages?

Redocly Version(s)

1.25.3

Node.js Version(s)

18.20.4

OS, environment

macOS 14.7

tatomyr commented 1 month ago

I believe it's a Redoc issue. @AlexVarchuk could you take a look at it?

AlexVarchuk commented 1 month ago

Hi @michaelgwelch, thank you for the question. Redoc does not highlight powershell syntax. In your case, using powershell is required? Could you use bash instead of powershell?

PR is welcome

michaelgwelch commented 1 month ago

@AlexVarchuk @tatomyr thanks for quick responses. Alex, no, powershell is not required; but it is the tool I use most often (using the Invoke-RestMethod command) for testing our own apis and want to include it in our examples. We have several other examples (curl, c#, javascript) as well so not a big deal. Fortunately, redoc supports a lang of text which I can use for powershell. While it's plain it is better than incorrect highlighting. So this will be useable.

You can consider this question answered. I just wanted to know if I was doing something wrong and I was getting mixed signals trying to figure it out from the docs.