29 lines
560 B
Go
29 lines
560 B
Go
package docs
|
|
|
|
import (
|
|
"strings"
|
|
|
|
"github.com/gin-gonic/gin"
|
|
"github.com/gobuffalo/packr/v2"
|
|
"github.com/gotify/location"
|
|
)
|
|
|
|
var box = packr.New("docs", "./")
|
|
|
|
// Serve serves the documentation.
|
|
func Serve(ctx *gin.Context) {
|
|
base := location.Get(ctx).Host
|
|
if basePathFromQuery := ctx.Query("base"); basePathFromQuery != "" {
|
|
base = basePathFromQuery
|
|
}
|
|
ctx.Writer.WriteString(get(base))
|
|
}
|
|
|
|
func get(base string) string {
|
|
spec, err := box.FindString("spec.json")
|
|
if err != nil {
|
|
panic(err)
|
|
}
|
|
return strings.Replace(spec, "localhost", base, 1)
|
|
}
|