Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -340,7 +340,7 @@ When you add `openapi` to a navigation element without specifying pages, Mintlif

## SDK references

Generate SDK reference pages from documentation-tool build artifacts by adding an `sdk` property to a tab or group. Set `format` to `typedoc`, `docfx`, `javadoc`, `sphinx`, or `phpdoc`; set `source` to an artifact path or HTTPS URL; and optionally set `directory` to control the generated pages' URL prefix (defaults to `sdk-reference`). Groups and pages inherit the nearest ancestor's `sdk` settings; a nested group with its own `sdk` overrides that inheritance.
Generate SDK reference pages from documentation-tool build artifacts by adding an `sdk` property to a tab or group. Set `format` to `typedoc`, `docfx`, `javadoc`, `sphinx`, `phpdoc`, or `go` (generate Go artifacts with `go run github.com/mintlify/mintlify-go-extractor@latest -o go.json` from inside the module); set `source` to an artifact path or HTTPS URL; and optionally set `directory` to control the generated pages' URL prefix (defaults to `sdk-reference`). Groups and pages inherit the nearest ancestor's `sdk` settings; a nested group with its own `sdk` overrides that inheritance.

```json
{
Expand Down
44 changes: 39 additions & 5 deletions api-playground/sdk-reference-setup.mdx
Original file line number Diff line number Diff line change
@@ -1,8 +1,8 @@
---
title: "Generate SDK reference pages from doc-tool output"
sidebarTitle: "SDK reference setup"
description: "Publish SDK reference documentation in Mintlify from TypeDoc, DocFX, Javadoc, Sphinx, or phpDocumentor artifacts using the sdk navigation property."
keywords: ["sdk", "typedoc", "docfx", "javadoc", "sphinx", "phpdocumentor", "reference"]
description: "Publish SDK reference documentation in Mintlify from TypeDoc, DocFX, Javadoc, Sphinx, phpDocumentor, or Go artifacts using the sdk navigation property."

Check warning on line 4 in api-playground/sdk-reference-setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

api-playground/sdk-reference-setup.mdx#L4

Use 'SDK' instead of 'sdk'.
keywords: ["sdk", "typedoc", "docfx", "javadoc", "sphinx", "phpdocumentor", "go", "golang", "mintlify-go-extractor", "reference"]
---

Use the `sdk` navigation property to generate reference pages for your SDK libraries from the documentation tools you already run. Mintlify reads each tool's build artifact. It creates a page for every class, interface, module, and function. It also includes navigation groups, cross-page links, and search indexing.
Expand All @@ -16,6 +16,7 @@
| `javadoc` | [Javadoc](https://docs.oracle.com/en/java/javase/17/javadoc/javadoc.html) (Java) | Standard doclet HTML directory |
| `sphinx` | [Sphinx](https://www.sphinx-doc.org) (Python) | JSON builder output directory |
| `phpdoc` | [phpDocumentor](https://phpdoc.org) (PHP) | `structure.xml` file |
| `go` | [mintlify-go-extractor](https://github.com/mintlify/mintlify-go-extractor) (Go) | JSON artifact file |

## Generate an artifact

Expand Down Expand Up @@ -44,8 +45,33 @@
phpdoc -d src -t artifacts --template=xml
```

```bash Go
go run github.com/mintlify/mintlify-go-extractor@latest -o go.json
```

</CodeGroup>

### Go

Go's own documentation tools produce text and HTML, not a machine-readable artifact, so Mintlify maintains [`mintlify-go-extractor`](https://github.com/mintlify/mintlify-go-extractor), an open source command that writes one. Run it from anywhere inside your Go module. It reads your module's source files with the Go standard library, so it doesn't download dependencies or need credentials, and it works for private modules.

With Go 1.24 or later, pin the extractor in your module's `go.mod` so every run uses the same version:

```bash
go get -tool github.com/mintlify/mintlify-go-extractor@latest
go tool mintlify-go-extractor -o go.json
```

Each [release](https://github.com/mintlify/mintlify-go-extractor/releases) includes prebuilt binaries for macOS, Linux, and Windows.

By default, the extractor documents every package in the module except `internal` packages and commands, and it reads doc comments as Markdown, which is what generated SDKs (for example, from Stainless, Speakeasy, or Fern) write. Common options:

- `-comments=godoc`: read doc comments with Go's [doc comment syntax](https://go.dev/doc/comment) instead of Markdown.
- `-exclude`: skip packages, as a comma-separated list of package patterns.
- `-goos`, `-goarch`, `-tags`: choose the platform and build tags used to select files. The default is `linux/amd64`.

Pass package patterns, such as `./option/...`, to document part of the module. See the [extractor README](https://github.com/mintlify/mintlify-go-extractor#readme) for every option.

## Auto-populate SDK pages

Add an `sdk` property to a tab or group in your `docs.json`. Mintlify parses the artifact. It creates navigation groups and pages for the library.
Expand All @@ -57,8 +83,8 @@
"tab": "SDK Reference",
"sdk": {
"format": "typedoc",
"source": "sdk-artifacts/typedoc.json",

Check warning on line 86 in api-playground/sdk-reference-setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

api-playground/sdk-reference-setup.mdx#L86

Use 'SDK' instead of 'sdk'.
"directory": "sdk/typescript"

Check warning on line 87 in api-playground/sdk-reference-setup.mdx

View check run for this annotation

Mintlify / Mintlify Validation (mintlify) - vale-spellcheck

api-playground/sdk-reference-setup.mdx#L87

Use 'TypeScript' instead of 'typescript'.
}
}
]
Expand Down Expand Up @@ -89,7 +115,7 @@
</Note>

<ParamField path="format" type="string" required>
The documentation tool that produced the artifact: `typedoc`, `docfx`, `javadoc`, `sphinx`, or `phpdoc`.
The documentation tool that produced the artifact: `typedoc`, `docfx`, `javadoc`, `sphinx`, `phpdoc`, or `go`.
</ParamField>

<ParamField path="source" type="string" required>
Expand All @@ -114,6 +140,8 @@

For Javadoc artifacts, Mintlify groups pages by package. When a package mixes kinds, it nests them under Interfaces, Classes, Enums, Records, Exceptions, Errors, and Annotations in the order Javadoc uses on its package pages.

For Go artifacts, Mintlify groups pages by package. Each package starts with an overview page that shows the package's `README` and doc comment, followed by an index of its types and functions. Each type and package-level function gets its own page. A type's page includes its fields, constructors, and methods.

Each generated page documents a class, interface, function, type, or other symbol from the artifact and links to related generated pages. If a converter produces pages that do not belong to a group, Mintlify collects them under a `Reference` group.

## Customize a page for a single symbol
Expand All @@ -137,10 +165,12 @@

The string form follows the pattern `[source] kind name`. If you leave out `source`, the page inherits it from the tab or group `sdk` config. The string form always inherits `format`, so it only works on pages under a tab or group with `sdk`. Everywhere else, set `sdk` to an object with the fields below. For methods and properties, include the parent name, such as `method Client.getUser`.

For Go artifacts, target structs and other defined types as `type`, interfaces as `interface`, struct fields as `property`, and package overview pages as `package`. Refer to a package by its name, followed by its directory path for nested packages, such as `package openai` or `package openai.option`. Add the package to a symbol name, such as `type option.RequestOption`, when more than one package has a symbol with that name.

If you leave out `title` or `description`, Mintlify uses the title and description generated for the symbol.

<ParamField path="kind" type="string" required>
The symbol kind: `class`, `interface`, `enum`, `function`, `type`, `variable`, `method`, or `property`.
The symbol kind: `package`, `class`, `interface`, `enum`, `function`, `type`, `variable`, `method`, or `property`.
</ParamField>

<ParamField path="name" type="string" required>
Expand All @@ -151,6 +181,10 @@
Required for `method` and `property` targets. The enclosing class, interface, or type.
</ParamField>

<ParamField path="namespace" type="string">
For Go artifacts, the package that contains the symbol, such as `openai.option`. Use it when more than one package has a symbol with the same name.
</ParamField>

<ParamField path="format" type="string">
Overrides the inherited `format`. Required when the page is not under a tab or group with `sdk`. Only available in the object form.
</ParamField>
Expand All @@ -163,7 +197,7 @@

Set `source` to an HTTPS URL to fetch the artifact at build time instead of committing it to your docs repository.

Single-file formats (`typedoc`, `phpdoc`) accept a direct file URL. Directory formats (`docfx`, `javadoc`, `sphinx`) accept a zip archive. Javadoc jars published to Maven Central work without repackaging:
Single-file formats (`typedoc`, `phpdoc`, `go`) accept a direct file URL. Directory formats (`docfx`, `javadoc`, `sphinx`) accept a zip archive. Javadoc jars published to Maven Central work without repackaging:

```json
{
Expand Down
46 changes: 41 additions & 5 deletions es/api-playground/sdk-reference-setup.mdx
Original file line number Diff line number Diff line change
@@ -1,7 +1,7 @@
---
title: "Configuración de referencias de SDK"
description: "Genera páginas de referencia de SDK a partir de tus herramientas de documentación existentes: TypeDoc, DocFX, Javadoc, Sphinx o phpDocumentor."
keywords: ["sdk", "typedoc", "docfx", "javadoc", "sphinx", "phpdocumentor", "reference"]
description: "Genera páginas de referencia de SDK a partir de tus herramientas de documentación existentes: TypeDoc, DocFX, Javadoc, Sphinx, phpDocumentor o Go."
keywords: ["sdk", "typedoc", "docfx", "javadoc", "sphinx", "phpdocumentor", "go", "golang", "mintlify-go-extractor", "reference"]
---

Usa la propiedad de navegación `sdk` para generar páginas de referencia para tus bibliotecas de SDK a partir de las herramientas de documentación que ya utilizas. Mintlify lee el artefacto de compilación de cada herramienta. Después, crea una página para cada clase, interfaz, módulo y función, con grupos de navegación, enlaces entre páginas e indexación de búsqueda incluidos.
Expand All @@ -17,6 +17,7 @@ Usa la propiedad de navegación `sdk` para generar páginas de referencia para t
| `javadoc` | [Javadoc](https://docs.oracle.com/en/java/javase/17/javadoc/javadoc.html) (Java) | Directorio HTML del doclet estándar |
| `sphinx` | [Sphinx](https://www.sphinx-doc.org) (Python) | Directorio de salida del builder JSON |
| `phpdoc` | [phpDocumentor](https://phpdoc.org) (PHP) | Archivo `structure.xml` |
| `go` | [mintlify-go-extractor](https://github.com/mintlify/mintlify-go-extractor) (Go) | Archivo de artefacto JSON |

<div id="generate-an-artifact">
## Generar un artefacto
Expand Down Expand Up @@ -47,8 +48,35 @@ python -m sphinx -b json docs/source artifacts/json
phpdoc -d src -t artifacts --template=xml
```

```bash Go
go run github.com/mintlify/mintlify-go-extractor@latest -o go.json
```

</CodeGroup>

<div id="go">
### Go
</div>

Las herramientas de documentación propias de Go generan texto y HTML, no un artefacto legible por máquina, por lo que Mintlify mantiene [`mintlify-go-extractor`](https://github.com/mintlify/mintlify-go-extractor), un comando de código abierto que lo genera. Ejecútalo desde cualquier ubicación dentro de tu módulo de Go. Lee los archivos fuente de tu módulo con la biblioteca estándar de Go, por lo que no descarga dependencias ni necesita credenciales, y funciona con módulos privados.

Con Go 1.24 o posterior, fija el extractor en el `go.mod` de tu módulo para que cada ejecución use la misma versión:

```bash
go get -tool github.com/mintlify/mintlify-go-extractor@latest
go tool mintlify-go-extractor -o go.json
```

Cada [versión](https://github.com/mintlify/mintlify-go-extractor/releases) incluye binarios precompilados para macOS, Linux y Windows.

De forma predeterminada, el extractor documenta todos los paquetes del módulo excepto los paquetes `internal` y los comandos, y lee los comentarios de documentación como Markdown, que es lo que escriben los SDK generados (por ejemplo, con Stainless, Speakeasy o Fern). Opciones habituales:

- `-comments=godoc`: lee los comentarios de documentación con la [sintaxis de comentarios de documentación](https://go.dev/doc/comment) de Go en lugar de Markdown.
- `-exclude`: omite paquetes, como una lista de patrones de paquete separados por comas.
- `-goos`, `-goarch`, `-tags`: elige la plataforma y las etiquetas de compilación usadas para seleccionar archivos. El valor predeterminado es `linux/amd64`.

Pasa patrones de paquete, como `./option/...`, para documentar solo una parte del módulo. Consulta el [README del extractor](https://github.com/mintlify/mintlify-go-extractor#readme) para ver todas las opciones.

<div id="auto-populate-sdk-pages">
## Generar automáticamente páginas de SDK
</div>
Expand Down Expand Up @@ -94,7 +122,7 @@ Un grupo con `sdk` también puede incluir `pages` que escribas tú mismo. Tus p
</Note>

<ParamField path="format" type="string" required>
La herramienta de documentación que produjo el artefacto: `typedoc`, `docfx`, `javadoc`, `sphinx` o `phpdoc`.
La herramienta de documentación que produjo el artefacto: `typedoc`, `docfx`, `javadoc`, `sphinx`, `phpdoc` o `go`.
</ParamField>

<ParamField path="source" type="string" required>
Expand All @@ -121,6 +149,8 @@ Para los artefactos de TypeDoc, Mintlify sigue la organización que defines con

Para los artefactos de Javadoc, Mintlify agrupa las páginas por paquete. Cuando un paquete mezcla tipos, los anida en Interfaces, Classes, Enums, Records, Exceptions, Errors y Annotations, en el orden que Javadoc usa en sus páginas de paquete.

Para los artefactos de Go, Mintlify agrupa las páginas por paquete. Cada paquete comienza con una página de resumen que muestra el `README` y el comentario de documentación del paquete, seguida de un índice de sus tipos y funciones. Cada tipo y cada función a nivel de paquete tiene su propia página. La página de un tipo incluye sus campos, constructores y métodos.

Cada página generada documenta una clase, interfaz, función, tipo u otro símbolo del artefacto y enlaza con las páginas generadas relacionadas. Si un convertidor produce páginas que no pertenecen a ningún grupo, Mintlify las recopila en un grupo `Reference`.

<div id="customize-a-page-for-a-single-symbol">
Expand All @@ -146,10 +176,12 @@ Crea un `Client` para llamar a la API.

La forma de cadena sigue el patrón `[source] kind name`. Si omites `source`, la página lo hereda de la configuración `sdk` de la pestaña o del grupo. La forma de cadena siempre hereda `format`, por lo que solo funciona en páginas bajo una pestaña o grupo con `sdk`. En cualquier otro caso, establece `sdk` como un objeto con los campos que se indican a continuación. Para métodos y propiedades, incluye el nombre del elemento superior, por ejemplo `method Client.getUser`.

Para artefactos de Go, apunta a los structs y otros tipos definidos con `type`, a las interfaces con `interface`, a los campos de struct con `property` y a las páginas de resumen de paquete con `package`. Haz referencia a un paquete por su nombre, seguido de la ruta de su directorio para los paquetes anidados, como `package openai` o `package openai.option`. Añade el paquete al nombre de un símbolo, como `type option.RequestOption`, cuando más de un paquete tenga un símbolo con ese nombre.

Si omites `title` o `description`, Mintlify usa el título y la descripción generados para el símbolo.

<ParamField path="kind" type="string" required>
El tipo de símbolo: `class`, `interface`, `enum`, `function`, `type`, `variable`, `method` o `property`.
El tipo de símbolo: `package`, `class`, `interface`, `enum`, `function`, `type`, `variable`, `method` o `property`.
</ParamField>

<ParamField path="name" type="string" required>
Expand All @@ -160,6 +192,10 @@ Si omites `title` o `description`, Mintlify usa el título y la descripción gen
Requerido para símbolos de tipo `method` y `property`. La clase, interfaz o tipo que lo contiene.
</ParamField>

<ParamField path="namespace" type="string">
Para artefactos de Go, el paquete que contiene el símbolo, como `openai.option`. Úsalo cuando más de un paquete tenga un símbolo con el mismo nombre.
</ParamField>

<ParamField path="format" type="string">
Sobrescribe el `format` heredado. Obligatorio cuando la página no está bajo una pestaña o grupo con `sdk`. Solo disponible en la forma de objeto.
</ParamField>
Expand All @@ -174,7 +210,7 @@ Si omites `title` o `description`, Mintlify usa el título y la descripción gen

Establece `source` como una URL HTTPS para obtener el artefacto en tiempo de compilación en lugar de incluirlo en tu repositorio de documentación.

Los formatos de archivo único (`typedoc`, `phpdoc`) aceptan una URL directa al archivo. Los formatos de directorio (`docfx`, `javadoc`, `sphinx`) aceptan un archivo zip. Los jars de Javadoc publicados en Maven Central funcionan sin necesidad de reempaquetarlos:
Los formatos de archivo único (`typedoc`, `phpdoc`, `go`) aceptan una URL directa al archivo. Los formatos de directorio (`docfx`, `javadoc`, `sphinx`) aceptan un archivo zip. Los jars de Javadoc publicados en Maven Central funcionan sin necesidad de reempaquetarlos:

```json
{
Expand Down
2 changes: 1 addition & 1 deletion es/organize/navigation.mdx
Original file line number Diff line number Diff line change
Expand Up @@ -608,7 +608,7 @@ Para obtener más información sobre cómo hacer referencia a endpoints de OpenA
## Referencias de SDK
</div>

Genera páginas de referencia de SDK a partir de los artefactos de compilación de tus herramientas de documentación. Agrega una propiedad `sdk` a una pestaña con el `format` del artefacto (`typedoc`, `docfx`, `javadoc`, `sphinx` o `phpdoc`), una ruta `source` o URL HTTPS, y un `directory` opcional para el prefijo de URL de las páginas generadas.
Genera páginas de referencia de SDK a partir de los artefactos de compilación de tus herramientas de documentación. Agrega una propiedad `sdk` a una pestaña con el `format` del artefacto (`typedoc`, `docfx`, `javadoc`, `sphinx`, `phpdoc` o `go`), una ruta `source` o URL HTTPS, y un `directory` opcional para el prefijo de URL de las páginas generadas.

Mintlify analiza el artefacto y genera grupos de navegación y páginas para cada clase, interfaz, módulo y función de la biblioteca.

Expand Down
Loading
Loading