gpt4 book ai didi

go - 如何将基本模板扩展到其他模板

转载 作者:行者123 更新时间:2023-12-01 22:07:11 25 4
gpt4 key购买 nike

如何扩展基本的html文件,例如:

base.html

<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
<!-- insert html here -->
</body>
</html>

然后在Python Jinja2中创建一个继承该基本模板的页面,我将这样做:

main.html
{{ extend "base.html" }}

main.html现在具有来自base.html的所有HTML。然后,只要我在base.html文件中定义了一个区域以将html插入其中,就可以从main.html做到这一点,在Jinja2中,它看起来像:

base.html
    <!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
{{ block "body" }}

{{ endblock }}
</body>
</html>

然后在main.html中
{{ extend "base.html" }}
{{ block "body" }}
<h1>Title</h1>
{{ endblock }}

我无法在任何Go框架中找到实现此目的的方法。他们似乎都说要“定义”一个模板,然后将HTML“组件”插入其中,我想采用另一种方法,定义一个基本HTML文件,并将其继承到要构建的其他HTML文件中,如果这有意义的话?

最佳答案

使用这些模板。

base.html:

<!DOCTYPE html>
<html>
<head>
<title>My Site</title>
</head>
<body>
{{block "body" $}}{{end}}
</body>
</html>`

main.html:
{{define "body"}}<h1>Title</h1>{{end}}

使用标准库模板包按扩展顺序解析模板;
t := template.Must(template.ParseFiles(
"base.html",
"main.html"))

执行生成的模板。

Run it on the playground

关于go - 如何将基本模板扩展到其他模板,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/60896894/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com