🛜
sallyを触ってみた
sally とは
uber が作成した HTTP サービスを簡単に提供できるツール。
試してみた
とりあえず REAMDME を見ながら進めてみます。
ちなみに、README に Docker イメージのリンクが貼ってありますが、404 になってます、、、
- まず sally を install しましょう。
$ go install go.uber.org/sally@latest
- 以下のような
sally.yaml
を作成します。
# Configures documentation linking.
# Optional.
godoc:
# Host for the Go documentation server.
# Defaults to pkg.go.dev.
host: pkg.go.dev
# Base URL for your package site.
# If you want your modules available under "example.com",
# specify example.com here.
# This field is required.
url: go.uber.org
# Collection of packages under example.com
# and their Git repositories.
packages:
# The key is the name of the package following the base URL.
# For example, if you want to make a package available at
# "example.com/foo", you'd specify "foo" here.
zap:
# Path to the Git repository.
#
# This field is required.
repo: github.com/uber-go/zap
# Optional description of the package.
description: A fast, structured-logging library.
# Alternative base URL instead of the value configured at the top-level.
# This is useful if the same sally instance is
# hosted behind multiple base URLs.
#
# Defaults to the value of the top-level url field.
url: example.com
- sally を起動します
$ sally
起動ができたら、localhost:8080 で確認してみましょう 🎉
カスタムテンプレートについて
README を読むとカスタムテンプレートをサポートしているようです。
Custom Templates
You can provide your own custom templates. For this, create a directory with .html templates and provide it via the -templates flag. You only need to provide the templates you want to override. See templates for the available templates.
カスタムレスポンスの yaml で指定できるのは、実装見ると以下の通りでした。
// PackageConfig is the configuration for a single Go module
// that is served by Sally.
type PackageConfig struct {
// Repo is the URL to the Git repository for the module
// without the https:// prefix.
// This URL must serve the Git HTTPS protocol.
//
// For example, "github.com/uber-go/sally".
Repo string `yaml:"repo"` // required
// URL is the base URL of the vanity import for this module.
//
// Defaults to the URL specified in the top-level config.
URL string `yaml:"url"`
// VCS is the version control system of this module.
//
// Defaults to git.
VCS string `yaml:"vcs"`
// Desc is a plain text description of this module.
Desc string `yaml:"description"`
}
感想
sally に触ってみた感想としては、まだ自由度が低いですが、
HTML のテンプレートに埋め込んで表示できるのは良さそうですね。
Discussion