如何在Gin上返回html?

时间:2017-01-05 11:31:39

标签: html go go-gin

我尝试渲染已经在字符串上的HTML,而不是在Gin框架上呈现模板。

c.HTML函数上的GET("/")函数需要呈现模板。

但是在POST("/markdown")我已经在字符串上呈现了HTML。

如何在Gin上返回?

package main

import (
    "github.com/gin-gonic/gin"
    "github.com/russross/blackfriday"
    "log"
    "net/http"
    "os"
)

func main() {

    router := gin.New()
    router.Use(gin.Logger())
    router.LoadHTMLGlob("templates/*.tmpl.html")

    router.GET("/", func(c *gin.Context) {
        c.HTML(http.StatusOK, "index.tmpl.html", nil)
    })

    router.POST("/markdown", func(c *gin.Context) {
        body := c.PostForm("body")
        log.Println(body)
        markdown := blackfriday.MarkdownCommon([]byte(c.PostForm("body")))
        log.Println(markdown)
        // TODO: render markdown content on return
    })

    router.Run(":5000")
}

2 个答案:

答案 0 :(得分:4)

您可以将已处理的降价字节数组作为iJobType返回,并将内容类型设置为RAW Data

这就是它的样子

text/html; charset=utf-8

答案 1 :(得分:0)

您还可以为内容类型使用常量:

const (
    ContentTypeBinary = "application/octet-stream"
    ContentTypeForm   = "application/x-www-form-urlencoded"
    ContentTypeJSON   = "application/json"
    ContentTypeHTML   = "text/html; charset=utf-8"
    ContentTypeText   = "text/plain; charset=utf-8"
)
c.Data(http.StatusOK, ContentTypeHTML, []byte("<html></html>"))