Comment ne pas supprimer les commentaires HTML dans le modèle HTML dans Gin Gonic
P粉193307465
P粉193307465 2023-07-18 19:17:03
0
1
658

J'utilise Gin Gonic et un fichier modèle HTML.

Mon fichier modèle contient des commentaires HTML (multilignes) similaires à <!--Ceci est mon commentaire -->. Je souhaite conserver le contenu HTML dans la sortie renvoyée.

c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
    "name": "World",
})

Question : Comment configurer le moteur de modèles ou c.HTML pour ne pas supprimer les commentaires HTML dans les modèles ?

Réponse plus détaillée

/static/templates/mytemplate.html :

<!DOCTYPE html>
<html lang="de">
<body>
<!--
这些行在输出中缺失。
-->
Hello World
</body>
</html>

Mon gestionnaire :

func NewRouter() *gin.Engine {
    router := gin.Default()
    // ... load templates from file system ...
    router.GET("/foo", fooHandler)
    return router
}
func fooHandler(c *gin.Context) {
    c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
        "name": "World",
    })
}

Après l'édition, j'ai essayé d'ajouter l'annotation en tant que constante  :

{{"<!-- my comment goes here -->"}}

mais le tag est échappé comme

<!-- foo --> 


P粉193307465
P粉193307465

répondre à tous(1)
P粉237029457

Je suppose que la raison pour laquelle les commentaires HTML sont supprimés est parce que je lis le modèle HTML sous forme de chaîne (au lieu de directement sous forme de fichier). La cause exacte reste indéterminée. Quoi qu'il en soit, la solution qui a fonctionné pour moi consistait à utiliser des espaces réservés dans le modèle.

<!DOCTYPE html>
<html lang="de">
<body>
{{ .myComment }}
Hello World
</body>
</html>

et passez le commentaire HTML lui-même en paramètre :

const myHtmlComment string = `
<!--
these lines are (not) missing (anymore) in the output
-->
`
func fooHandler(c *gin.Context) {
    c.HTML(http.StatusOK, "static/templates/mytemplate.html", gin.H{
        "name": "World",
        "myComment": template.HTML(myHtmlComment),
    })
}

Utilisez import "html/template" pour importer

Derniers téléchargements
Plus>
effets Web
Code source du site Web
Matériel du site Web
Modèle frontal