हाँ यह संभव है। A html.Template
वास्तव में टेम्पलेट फ़ाइलों का एक सेट है। यदि आप इस सेट में एक परिभाषित ब्लॉक निष्पादित करते हैं, तो इस सेट में परिभाषित अन्य सभी ब्लॉकों तक पहुंच है।
यदि आप अपने दम पर ऐसे टेम्प्लेट सेट का नक्शा बनाते हैं, तो आपके पास मूल रूप से वही लचीलापन है जो जिंजा / जोंगो प्रदान करता है। अंतर केवल इतना है कि html / टेम्पलेट पैकेज का फाइल सिस्टम में कोई सीधा उपयोग नहीं है, इसलिए आपको अपने स्वयं के टेम्प्लेट को पार्स और कम्पोज़ करना होगा।
दो अलग-अलग पृष्ठों ("index.html" और "other.html") के साथ निम्नलिखित उदाहरण पर विचार करें, जो दोनों "base.html" से प्राप्त होते हैं:
{{define "base"}}<html>
<head>{{template "head" .}}</head>
<body>{{template "body" .}}</body>
</html>{{end}}
{{define "head"}}<title>index</title>{{end}}
{{define "body"}}index{{end}}
{{define "head"}}<title>other</title>{{end}}
{{define "body"}}other{{end}}
और टेम्पलेट सेट का निम्नलिखित नक्शा:
tmpl := make(map[string]*template.Template)
tmpl["index.html"] = template.Must(template.ParseFiles("index.html", "base.html"))
tmpl["other.html"] = template.Must(template.ParseFiles("other.html", "base.html"))
अब आप कॉल करके अपने "index.html" पेज को प्रस्तुत कर सकते हैं
tmpl["index.html"].Execute("base", data)
और आप कॉल करके अपने "other.html" पृष्ठ को प्रस्तुत कर सकते हैं
tmpl["other.html"].Execute("base", data)
कुछ तरकीबों (जैसे आपकी टेम्प्लेट फ़ाइलों का एक सुसंगत नामकरण सम्मेलन) के साथ, यह tmpl
स्वतः मानचित्र तैयार करना भी संभव है ।