dongshixingga7900 2019-02-14 02:48
浏览 6
已采纳

带字符串的模板继承

I have a few small .html files that I parse like:

template.Must(
    template.New("test").
        ParseFiles(
            "templates/f1.html",
            "templates/f2.html",
            "templates/f3.html",
        ),
)

These are all very small files and, for example, I'd like to make these just strings to make my code easier but how do I do the same type of template inheritance but with strings? All I see is the Parse method, but that only takes 1 string:

func (t *Template) Parse(text string) (*Template, error)

My strings:

f1 := `Hi there {{template "content" .}}`
f2 := `{{define "content"}}bob {{template "content2" .}}{{end}}`
f3 := `{{define "content2"}}ross{{end}}`

Not sure how to make these "play" together. (This is a simplified example of what I'm doing and these strings are used in multiple places so doesn't make sense to combine them all to 1).

  • 写回答

1条回答 默认 最新

  • douyun3799 2019-02-14 03:23
    关注

    Try:

    const (
        f1 = `Hi there {{template "content" .}}`
        f2 = `{{define "content"}}bob {{template "content2" .}}{{end}}`
        f3 = `{{define "content2"}}ross{{end}}`
    )
    
    func main() {
        t := template.New("test")
    
        t.Parse(f1)
        t.Parse(f2)
        t.Parse(f3)
    
        t.Execute(os.Stdout, nil)
    }
    

    produces: Hi there bob ross

    playground version.

    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 keil的map文件中Image component sizes各项意思
  • ¥30 BC260Y用MQTT向阿里云发布主题消息一直错误
  • ¥20 求个正点原子stm32f407开发版的贪吃蛇游戏
  • ¥15 划分vlan后,链路不通了?
  • ¥20 求各位懂行的人,注册表能不能看到usb使用得具体信息,干了什么,传输了什么数据
  • ¥15 Vue3 大型图片数据拖动排序
  • ¥15 Centos / PETGEM
  • ¥15 划分vlan后不通了
  • ¥20 用雷电模拟器安装百达屋apk一直闪退
  • ¥15 算能科技20240506咨询(拒绝大模型回答)