2017-01-05 2 views
0

Ich versuche, einen HTML-Code darzustellen, der sich bereits in einer Zeichenfolge befindet, anstatt eine Vorlage im Gin-Framework zu rendern.Wie gebe ich HTML auf Gin zurück?

Die Funktion c.HTML Funktion GET("/") erwartet, dass eine Vorlage gerendert wird.

Aber auf POST("/markdown") habe ich das HTML bereits in einer Zeichenfolge gerendert.

Wie kann ich es auf Gin zurückgeben?

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") 
} 
+0

Sie können in HTML-Anzeige Inhalt Abschlag aussieht Vorlage – Bhavana

+0

Ok @Bhavanna, aber ich versuche, die Beispiele aus einem Buch zu implementieren "Erstellen von Web-Apps mit Go" – AndreDurao

+0

Was möchten Sie auf Post-Anfrage tun? Welche Ausgabe erwarten Sie? – Bhavana

Antwort

2

Sie können den verarbeiteten Abschlag Byte-Array als RAW Data zurückkehren und Content-Type gesetzt, wie text/html; charset=utf-8

Dies ist, wie es wie

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) 
    }) 
Verwandte Themen