html - 如何在 Gin 上返回 html?

标签 html go go-gin

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

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

但是在 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")
}

最佳答案

您可以将处理后的 markdown 字节数组作为 RAW Data 返回,并将 content-type 设置为 text/html; charset=utf-8

这就是它的样子

router.POST("/markdown", func(c *gin.Context) {
        body, ok := c.GetPostForm("body")
        if !ok {
            c.JSON(http.StatusBadRequest, "badrequest")
            return
        }
        markdown := blackfriday.MarkdownCommon([]byte(body))
        c.Data(http.StatusOK, "text/html; charset=utf-8", markdown)
    })

关于html - 如何在 Gin 上返回 html?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/41483970/

相关文章:

javascript - 在 reveal.js 中调暗背景图像

javascript - Jquery Ajax On-Focusout On-Submit - 需要 2 次点击

javascript - 为什么我的返回错误不起作用

mongodb - 为集合中的过期数据设置 TTL

go - 如何检查结构中是否存在结构值

php - 将 div 保存为照片?

go - Go中的Supertype如何引用Subtype

mysql - 如何处理 Golang 中插入重复键的错误?

go - 如何使用 golang gin 为 restful API 创建身份验证模型?

go - 如何使用 Go 保存和检索 Gorm 的 many2many 关系