Skip to main content

Static documentation generator for Protobuf and gRPC

Project description

Sabledocs

CircleCI PyPi Python versions

A simple static documentation generator for Protobuf and gRPC contracts.

Demo: You can check out this demo showing the generated documentation for some of the Google Cloud SDK 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. It requires Python (version 3.11 or higher) to be installed.

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"

# Specifies the file which contains the content to display on the main page above the package list.
# Default value: ""
main-page-content-file = "intro.md"

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

# Controls whether the the search functionality is enabled with a prebuilt Lunr index.
# Default value: true
enable-lunr-search = true

# 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"

Main page content

Custom introduction content can be specified in a separate file, which can be displayed above the packages list on the main page of the documentation.
Then the name of the file has to be specified in the main-page-content-file configuration setting.

main-page-content-file = "intro.md"

See the example on the main page of the demo site.

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.3.180.dev0.tar.gz (47.7 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.3.180.dev0-py3-none-any.whl (49.8 kB view details)

Uploaded Python 3

File details

Details for the file sabledocs-0.3.180.dev0.tar.gz.

File metadata

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

File hashes

Hashes for sabledocs-0.3.180.dev0.tar.gz
Algorithm Hash digest
SHA256 40328861702a88bd2696376e98d6959a3e9093e68b86ba632b4942cced3263e8
MD5 ebf11b8cdd27c136daf9b9938d1794a3
BLAKE2b-256 8b6e20ed809752c04afc76872f913a2b3296e7e33300fa9e54f31c0f31f03f23

See more details on using hashes here.

File details

Details for the file sabledocs-0.3.180.dev0-py3-none-any.whl.

File metadata

File hashes

Hashes for sabledocs-0.3.180.dev0-py3-none-any.whl
Algorithm Hash digest
SHA256 53549aa83e2cb961341dd16c3b9e60b96fefd5360191ea1b54ca57deb3be344d
MD5 cd36ad62af9f93ce87b0379ba11ae423
BLAKE2b-256 350f254207a0de554614b0d2c42d1c925de67f0bc1d1e96d896ae04cf88f0894

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