Skip to main content

Static documentation generator for Protobuf and gRPC

Project description

sabledocs

CircleCI

A simple static documentation generator for Protobuf and gRPC contracts.

Demo: You can check out this demo showing the generated documentation for the Google Cloud Pub/Sub contracts.

How to use

Generate the proto descriptor

In order to build the documentation, you need to generate a binary descriptor from your Proto contracts using protoc. If you don't have it yet, the protoc CLI can be installed by downloading the release from the official protobuf repository.

For example in the folder where your proto files are located, you can execute the following command.

protoc *.proto -o descriptor.pb --include_source_info

(It's important to use the --include_source_info flag, otherwise the comments will not be included in the generated documentation.)

The generated descriptor.pb file will be the input needed to build the documentation site.

Build the documetation

Install the sabledocs package.

pip install sabledocs

In the same folder where the generated descriptor.pb file is located, execute the command.

sabledocs

The documentation will be generated into a folder sabledocs_output, its main page can be opened with index.html.

Customization

For further customization, create a sabledocs.toml file in the folder where the Protobuf descriptor file is located and from which the sabledocs CLI is executed. You can customize the following options. Any omitted field will use its default value.

# Configures the main title of the documentation site.
# Default value: "Protobuf module documentation"
module-title = "My Awesome Module"

# Specifies the name of the Protobuf descriptor file.
# Default value: "descriptor.pb"
input-descriptor-file = "myawesomemodule.pb"

# The output folder to which the documentation is generated.
# Default value: "sabledocs_output"
output-dir = "docs"

# Copyright message displayed in the footer.
# Default value: ""
footer-content = "© 2023 Jane Doe. All rights reserved."

# The following 3 fields configure the source control repository of the project.
# It is used to generate deeplink for the components of the Proto model pointing to the original source code.
# By default these fields are not configured, and source code links are not included in the docs.
# The repository-type field supports two possible values, "github" and "bitbucket".
# The fields repository-url and `repository-branch` should be configured to point to the correct repository.
repository-type = "github"
repository-url = "https://github.com/janedoe/myawesomeproject"
repository-branch = "main"

For maintainers

Build the Python package:

python -m build

Publish with twine:

python -m twine upload --repository testpypi dist/*

Install from the local folder:

pip install .

Project details


Release history Release notifications | RSS feed

Download files

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

Source Distribution

sabledocs-0.1.69.tar.gz (43.1 kB view details)

Uploaded Source

Built Distribution

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

sabledocs-0.1.69-py3-none-any.whl (44.8 kB view details)

Uploaded Python 3

File details

Details for the file sabledocs-0.1.69.tar.gz.

File metadata

  • Download URL: sabledocs-0.1.69.tar.gz
  • Upload date:
  • Size: 43.1 kB
  • Tags: Source
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for sabledocs-0.1.69.tar.gz
Algorithm Hash digest
SHA256 b6c9f74f4298285e622bc843d4874f16ce7f69fd26982d52b66d4e3844e14472
MD5 d6d5162f1565d1db08759f9824d12476
BLAKE2b-256 be678543ee5220bfa93ab302d5dfdd3f1027c31af4810b91a38b8f6c10541494

See more details on using hashes here.

File details

Details for the file sabledocs-0.1.69-py3-none-any.whl.

File metadata

  • Download URL: sabledocs-0.1.69-py3-none-any.whl
  • Upload date:
  • Size: 44.8 kB
  • Tags: Python 3
  • Uploaded using Trusted Publishing? No
  • Uploaded via: twine/4.0.2 CPython/3.11.3

File hashes

Hashes for sabledocs-0.1.69-py3-none-any.whl
Algorithm Hash digest
SHA256 5b2000fb8b3dc523d3859750b44cc0294fe45b4bd92939edd3a5b10af42c2474
MD5 6e6da366210a8c261d6d7fbe8faca02f
BLAKE2b-256 de3fab9d56c6ff65e05de5e28ba089c528e794ca08a06f5a90ffc9ec80fc2140

See more details on using hashes here.

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