Spaces:
Configuration error
Configuration error
| package http | |
| import ( | |
| "embed" | |
| "fmt" | |
| "html/template" | |
| "net/http" | |
| "github.com/Masterminds/sprig/v3" | |
| "github.com/gofiber/fiber/v2" | |
| fiberhtml "github.com/gofiber/template/html/v2" | |
| "github.com/microcosm-cc/bluemonday" | |
| "github.com/mudler/LocalAI/core/schema" | |
| "github.com/russross/blackfriday" | |
| ) | |
| //go:embed views/* | |
| var viewsfs embed.FS | |
| func notFoundHandler(c *fiber.Ctx) error { | |
| // Check if the request accepts JSON | |
| if string(c.Context().Request.Header.ContentType()) == "application/json" || len(c.Accepts("html")) == 0 { | |
| // The client expects a JSON response | |
| return c.Status(fiber.StatusNotFound).JSON(schema.ErrorResponse{ | |
| Error: &schema.APIError{Message: "Resource not found", Code: fiber.StatusNotFound}, | |
| }) | |
| } else { | |
| // The client expects an HTML response | |
| return c.Status(fiber.StatusNotFound).Render("views/404", fiber.Map{}) | |
| } | |
| } | |
| func renderEngine() *fiberhtml.Engine { | |
| engine := fiberhtml.NewFileSystem(http.FS(viewsfs), ".html") | |
| engine.AddFuncMap(sprig.FuncMap()) | |
| engine.AddFunc("MDToHTML", markDowner) | |
| return engine | |
| } | |
| func markDowner(args ...interface{}) template.HTML { | |
| s := blackfriday.MarkdownCommon([]byte(fmt.Sprintf("%s", args...))) | |
| return template.HTML(bluemonday.UGCPolicy().Sanitize(string(s))) | |
| } | |