GitHub Hot Board

GitHub Hot Board · Hồ sơ kho lưu trữ

g4s8/envdoc

Go tool to generate documentation for environment variables (Mô tả đến từ chính kho lưu trữ.)

Dữ liệu tại October 25g4s8

Thứ hạng tốt nhất

#272

Kho Báu Bị Lãng Quên

100

Tổng sao

9

Tổng fork

2

Số ngày có mặt (30 ngày)

Trạng thái dự ánGiấy phép: MITPush gần nhất: October 14Issue mở (gồm PR): 4

Thu thập từ 2026-10-25; chưa rõ = chưa thu thập được

Gắn huy hiệu vào README của bạn · g4s8/envdoc[![Gắn huy hiệu vào README của bạn](https://git.vaiox.xyz/api/badge/g4s8/envdoc.svg)](https://git.vaiox.xyz/vi/repo/g4s8/envdoc)
<a href="https://git.vaiox.xyz/vi/repo/g4s8/envdoc"><img src="https://git.vaiox.xyz/api/badge/g4s8/envdoc.svg" alt="Gắn huy hiệu vào README của bạn" height="20"></a>

Tài liệu dự án

envdoc

envdoc is a tool for generating documentation for environment variables in Go structs. It takes comments associated with env tags in Go structs and creates a Markdown, plaintext or HTML file with detailed documentation.

For docenv linter see docenv/README.md.


CI Go Reference codecov Mentioned in Awesome Go

Installation

Go >= 1.24

Add envdoc tool and install it:

go get -tool github.com/g4s8/envdoc@latest
go install tool

Add go:generate:

//go:generate envdoc -output config.md
type Config struct {
    // ...
}

Generate:

go generate ./...

Before Go 1.24

Run it with go run in source file:

//go:generate go run github.com/g4s8/envdoc@latest -output environments.md
type Config struct {
    // ...
}

Or download binary to run it:

go install github.com/g4s8/envdoc@latest

And use it in code:

//go:generate envdoc -output environments.md
type Config struct {
    // ...
}

Usage

//go:generate envdoc -output <output_file_name>
  • -dir (path string, optional) - Specify the directory to search for files. Default is the file dir with go:generate command.
  • -files (glob string, optional) - File glob pattern to specify file names to process. Default is the single file with go:generate.
  • -types (glob string, optional) - Type glob pattern for type names to process. If not specified, the next type after go:generate is used.
  • -target (enum(caarlos0, cleanenv) string, optional, default caarlos0) - Set env library target.
  • -output (path string, required) - Output file name for generated documentation.
  • -format (enum(markdown, plaintext, html, dotenv, json) string, optional) - Output format for documentation. Default is markdown.
  • -no-styles (bool, optional) - If true, CSS styles will not be included for html format.
  • -env-prefix (string, optional) - Sets additional global prefix for all environment variables.
  • -tag-name (string, optional, default: env) - Use custom tag name instead of env.
  • -tag-default (string, optional, default: envDefault) - Use "default" tag name instead of envDefault.
  • -required-if-no-def (bool, optional, default: false) - Set attributes as required if no default value is set.
  • -field-names (bool, optional) - Use field names as env names if env: tag is not specified.
  • -debug (bool, optional) - Enable debug output.

These params are deprecated and will be removed in the next major release:

  • -type - Specify one type to process.
  • -all - Process all types in a file.

Both parameters could be replaced with -types param:

  • Use -types=Foo instead of -type=Foo.
  • Use -types='*' instead of -all.

Example

Suppose you have the following Go file config.go:

package foo

//go:generate envdoc --output env-doc.md
type Config struct {
  // Port to listen for incoming connections
  Port int `env:"PORT,required"`
  // Address to serve
  Address string `env:"ADDRESS" envDefault:"localhost"`
}

And the go:generate line above creates documentation in env-doc.md file:

# Environment Variables

- `PORT` (**required**) - Port to listen for incoming connections
- `ADDRESS` (default: `localhost`) - Address to serve

See _examples dir for more details.

Compatibility

This tool is compatible with

Let me know about any new lib to check compatibility.

Contributing

If you find any issues or have suggestions for improvement, feel free to open an issue or submit a pull request.

License

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

Thứ hạng hiện tại

  • 272

    Kho Báu Bị Lãng Quên

    100 sao · 9 fork · Tổng Star (tăng dần)

    Lãng quên →

Diễn biến 30 ngày

Tổng số sao

Diễn biến thứ hạng

Hàng xóm xếp hạng trên cùng bảng · Lãng quên

Dự án tương tự · chủ đề chung

← Về bảng xếp hạng