Skip to main content

Export a JSON Schema document to Markdown documentation.

Project description

jsonschema-markdown

Generate markdown documentation from JSON Schema files. The main goal is to generate documentation that is easy to read and understand.

Can be used as a command line tool or as a library.

Installation

pipx install jsonschema-markdown

Usage

To use jsonschema-markdown as a CLI, just pass the filename as an argument and redirect the output to a file.

$ jsonschema-markdown --help
Usage: jsonschema-markdown [OPTIONS] FILENAME

  Load FILENAME and output a markdown version.

  Use '-' as FILENAME to read from stdin.

Options:
  -t, --title TEXT          Do not use the title from the schema, use this
                            title instead.
  --footer / --no-footer    Add a footer with a link to the project.
                            [default: footer]
  --resolve / --no-resolve  [Experimental] Resolve $ref pointers.  [default:
                            no-resolve]
  --debug / --no-debug      Enable debug output.  [default: no-debug]
  --version                 Show the version and exit.
  --help                    Show this message and exit.

# Example
$ jsonschema-markdown schema.json > schema.md

Usage with Docker

The jsonschema-markdown command is also available as a Docker image. To use it, you can mount the schema file as a volume.

cat my-schema.json | docker run --rm -i elisiariocouto/jsonschema-markdown - > schema.md

⚠️ Warning: Do not pass the -t flag.

The Docker image is available at:

Usage as a library

To use it as a library, load your JSON schema file as Python dict and pass it to generate. The function will return a string with the markdown.

import jsonschema_markdown

with open('schema.json') as f:
    schema = json.load(f)

markdown = jsonschema_markdown.generate(schema)

Features

Partially inspired by json-schema-for-humans, this project does not currently support all features of JSON Schema, but it should support:

  • Required fields
  • String patterns
  • Enumerations
  • Default values
  • Descriptions and titles
  • Nested objects
  • Basic OneOf, AnyOf, AllOf functionality
  • Arrays
  • Integers with minimum, maximum values and exclusives
  • Boolean values
  • Deprecation notices (searches for case-insensitive deprecated in the field description)

Caveats

  • This project is still in early development, and the output may change in the future.
  • Custom definitions are expected to be in the same file as the schema that uses them, in the definitions or $defs parameter at the root of the document.

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

jsonschema_markdown-0.3.4.tar.gz (8.3 kB view details)

Uploaded Source

Built Distribution

jsonschema_markdown-0.3.4-py3-none-any.whl (9.0 kB view details)

Uploaded Python 3

File details

Details for the file jsonschema_markdown-0.3.4.tar.gz.

File metadata

  • Download URL: jsonschema_markdown-0.3.4.tar.gz
  • Upload date:
  • Size: 8.3 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: poetry/1.8.2 CPython/3.12.2 Linux/6.5.0-1016-azure

File hashes

Hashes for jsonschema_markdown-0.3.4.tar.gz
Algorithm Hash digest
SHA256 8af21ec1b18147905a140417ee341a67a4a4c15a4c68a247268ecf3f2947375c
MD5 6770f5e01aac306f6716719f584a385d
BLAKE2b-256 85417a082f59747fc09456966ff133e0aad7af84c03eaf15e0184ccae0a13808

See more details on using hashes here.

File details

Details for the file jsonschema_markdown-0.3.4-py3-none-any.whl.

File metadata

File hashes

Hashes for jsonschema_markdown-0.3.4-py3-none-any.whl
Algorithm Hash digest
SHA256 a371706fdb98d7976d96c23a2f03d47b1ebc5d68a3f52dec3dfb155d883b4aa7
MD5 22de9b1e5c68a7801536132acdf132fe
BLAKE2b-256 71527de7b3c3170bba7055a7bc36b21c5f43e5f78e7c1308c8f2002ff2df44fb

See more details on using hashes here.

Supported by

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