Skip to main content

A MkDocs plugin supports for add Swagger UI in page.

Project description

MkDocs Swagger UI Tag

PyPI version PyPI downloads Codecov

A MkDocs plugin supports adding Swagger UI to the page.

Live demo with Material for MkDocs.

Features

  1. OpenAPI Specification file from online over URL or static file in docs
  2. All dependencies are using static files handled by the plugin not from CDN, especially suitable for those documents been deployed in the intranet
  3. Multiple Swagger UI on the same page
  4. Synchronized dark mode with Material for MkDocs
  5. Configure Swagger UI configuration through plugin options and tag attributes
  6. Support multiple OAS in a single Swagger UI with a top bar selector
  7. Support Swagger UI initOAuth method

Dependency

  1. Python Package
    1. beautifulsoup4>=4.13.3
  2. Swagger UI dist javascript file and CSS file
    1. swagger-ui-dist==5.27.1

Usage

  1. Install the plugin from PyPI

    pip install mkdocs-swagger-ui-tag
    
  2. Add swagger-ui-tag plugin to your mkdocs.yml plugins sections:

    plugins:
       - swagger-ui-tag
    
  3. Add swagger-ui tag in markdown to include Swagger UI

    <swagger-ui src="https://petstore.swagger.io/v2/swagger.json"/>
    

    Swagger UI Sample Image

  4. You may customize the plugin by passing options in mkdocs.yml, check more details on options:

    plugins:
       - swagger-ui-tag:
            background: White
            docExpansion: none
            filter: ""
            syntaxHighlightTheme: monokai
            tryItOutEnabled: ['get', 'post']
    
    Options Type Description
    background String Default: "". Swagger UI iframe body background attribute value. You can use any css value for background for example "#74b9ff" or "Gainsboro" or "" for nothing.
    docExpansion String Default: "list". Controls the default expansion setting for the operations and tags. It can be "list" (expands only the tags), "full" (expands the tags and operations) or "none" (expands nothing).
    filter String or Boolean Default: False. If set, enables filtering. The top bar will show an edit box that you can use to filter the tagged operations that are shown. Can be Boolean to enable or disable, or a string, in which case filtering will be enabled using that string as the filter expression. Filtering is case sensitive matching the filter expression anywhere inside the tag.
    syntaxHighlightTheme String Default: "agate". Highlight.js syntax coloring theme to use. It can be "agate", "arta", "monokai", "nord", "obsidian" or "tomorrow-night"
    tryItOutEnabled Boolean Default: False. This setting determines the default editability of the "Try it out" section, including parameters or body.
    oauth2RedirectUrl String Default: Absolute URL of "/assets/swagger-ui/oauth2-redirect.html" relative with site_url in mkdocs.yml or document root path on site without site_url, e.g. "https://blueswen.github.io/mkdocs-swagger-ui-tag/assets/swagger-ui/oauth2-redirect.html". OAuth redirect URL.
    supportedSubmitMethods Array Default: All Http Methods. Array=["get", "put", "post", "delete", "options", "head", "patch", "trace"]. List of HTTP methods that have the "Try it out" feature enabled. An empty array disables "Try it out" for all operations. This does not filter the operations from the display.
    validatorUrl String Default: "https://validator.swagger.io/validator". By default, Swagger UI attempts to validate specs against swagger.io's online validator in multiple OAS Swagger UI. You can use this parameter to set a different validator URL, for example for locally deployed validators (Validator Badge). Setting it "none" to disable validation.
    extra_css Array Default: []. List of additional CSS files to include in Swagger UI iframes.
    dark_scheme_name String Default: "slate". The color scheme name used for dark mode detection with Material for MkDocs theme.
    filter_files Array Default: []. List of file paths to filter processing. If specified, only files in this list will be processed for swagger-ui tags.

How it works

  1. Copies the Swagger UI script file into site/assets/javascripts/ directory, the CSS file into site/assets/stylesheets/ directory, and the default Oauth2 redirect html into site/assets/swagger-ui/ directory
  2. Search all swagger-ui tags, then convert them to an iframe tag and generate the iframe target HTML with the given OpenAPI Specification src path and options

Development

Upgrading the Swagger-UI version

SWAGGER_UI_VERSION=GIVEN_VERSION
./update-swagger-ui.sh $SWAGGER_UI_VERSION

License

This project is licensed under the MIT License - see the LICENSE.md file for details.

Reference

  1. Amoenus Swagger Dark Theme: source of dark mode css

Project details


Download files

Download the file for your platform. If you're not sure which to choose, learn more about installing packages.

Source Distribution

mkdocs_swagger_ui_tag-0.8.0.tar.gz (1.3 MB view details)

Uploaded Source

Built Distribution

If you're not sure about the file name format, learn more about wheel file names.

mkdocs_swagger_ui_tag-0.8.0-py3-none-any.whl (1.3 MB view details)

Uploaded Python 3

File details

Details for the file mkdocs_swagger_ui_tag-0.8.0.tar.gz.

File metadata

  • Download URL: mkdocs_swagger_ui_tag-0.8.0.tar.gz
  • Upload date:
  • Size: 1.3 MB
  • Tags: Source
  • Uploaded using Trusted Publishing? Yes
  • Uploaded via: twine/6.1.0 CPython/3.13.7

File hashes

Hashes for mkdocs_swagger_ui_tag-0.8.0.tar.gz
Algorithm Hash digest
SHA256 e6db4ae95aa224e153837cc1fd347bdb6b66be776ae7f36ca0db505e5aa87c43
MD5 1c0be76d5aed1ea4e468c03a69326af5
BLAKE2b-256 7886cca19224ee2c400204f083f973020104c45194856df55fc4047ec4d60af4

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_swagger_ui_tag-0.8.0.tar.gz:

Publisher: deploy-release.yml on blueswen/mkdocs-swagger-ui-tag

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

File details

Details for the file mkdocs_swagger_ui_tag-0.8.0-py3-none-any.whl.

File metadata

File hashes

Hashes for mkdocs_swagger_ui_tag-0.8.0-py3-none-any.whl
Algorithm Hash digest
SHA256 30fe515bcd6daa911d7b42948f99b1cd21fb749cdc20e1474e1fc6ee1ff78afb
MD5 b10e652bdca143161047bd235922d8bc
BLAKE2b-256 c0824752d86d2539779fe20e2afbde73dd757f5e6bb28b9de2352abca64cdb40

See more details on using hashes here.

Provenance

The following attestation bundles were made for mkdocs_swagger_ui_tag-0.8.0-py3-none-any.whl:

Publisher: deploy-release.yml on blueswen/mkdocs-swagger-ui-tag

Attestations: Values shown here reflect the state when the release was signed and may no longer be current.

Supported by

AWS Cloud computing and Security Sponsor Datadog Monitoring Depot Continuous Integration Fastly CDN Google Download Analytics Pingdom Monitoring Sentry Error logging StatusPage Status page