第七色在线视频,2021少妇久久久久久久久久,亚洲欧洲精品成人久久av18,亚洲国产精品特色大片观看完整版,孙宇晨将参加特朗普的晚宴

為了賬號(hào)安全,請(qǐng)及時(shí)綁定郵箱和手機(jī)立即綁定
已解決430363個(gè)問(wèn)題,去搜搜看,總會(huì)有你想問(wèn)的

根據(jù)主模板實(shí)際需要?jiǎng)討B(tài)解析子模板

根據(jù)主模板實(shí)際需要?jiǎng)討B(tài)解析子模板

Go
滄海一幻覺(jué) 2022-12-19 10:35:44
假設(shè)我有大量的模板和子模板,那么我如何根據(jù)管道中需要的那些來(lái)解析子模板呢?template我的想法是讀取當(dāng)前要渲染的模板并找出它使用了哪些模板,但我不知道該怎么做,也許用正則表達(dá)式?PS:答案不必考慮子模板的多層嵌套。例子package mainimport (    "html/template"    "path/filepath")func CollectFiles(dir string, excludeList []string) (fileList []string, err error) {    // ...    return}func main() {    filePathList, _ := CollectFiles("dir/src", []string{".md"})    for _, curFile := range filePathList {        _, _ = template.New(filepath.Base(curFile)).            ParseFiles(curFile, "tmplA", "tmplB", "...", "tmplN")    }}假設(shè)主模板只需要 tmplA和tmplB作為子模板。我怎樣才能檢測(cè)到它只需要這兩個(gè)?我不想每次添加或調(diào)整新模板時(shí)都更改程序。
查看完整描述

1 回答

?
Smart貓小萌

TA貢獻(xiàn)1911條經(jīng)驗(yàn) 獲得超7個(gè)贊

您可以通過(guò)這種方式找到模板中的所有關(guān)鍵字。

regexp.MustCompile(`{{-? ?(template|partial) \"([^() ]*)\" ?.* ?-?}}`)

正則表達(dá)式101

當(dāng)您遇到更復(fù)雜的情況時(shí),哪里partial只是您使用的示例。您可以刪除它或自行添加更多關(guān)鍵字。

go-playground


其他部分,比如CollectFiles我認(rèn)為不是那么重要,如果有人需要參考下面


然后只需要過(guò)濾模板,找出當(dāng)前文件使用的模板。


最后,無(wú)論何時(shí)添加模板,代碼都不會(huì)更新。(除非您想更新站點(diǎn)上下文)


我在Github上寫(xiě)了一個(gè)可以運(yùn)行的簡(jiǎn)單例子,這樣人們就可以知道我想做什么。

子模板的嵌套。

如果你想處理這個(gè)。嘗試使用這個(gè)功能

現(xiàn)在這將起作用

如果渲染:index.gohtml不僅base.gohtml包含而且還包含 { head.gohtmlnavbar.gohtmlfooter.gohtml}

<!-- index.gohtml --> 

{{- template "base.gohtml" . -}} <!-- ?? --> 

{{define "head"}}

  <style>h2 {background-color: yellow;}

  </style>

{{end}}

{{define "body"}}

<h2>Welcome to XXX</h2>

{{end}}

在哪里base.gohtml


{{template "head.gohtml" . -}}

{{template "navbar.gohtml"}}

{{- block "body" . -}}

{{- end -}}

{{template "footer.gohtml"}}


查看完整回答
反對(duì) 回復(fù) 2022-12-19
  • 1 回答
  • 0 關(guān)注
  • 76 瀏覽
慕課專欄
更多

添加回答

舉報(bào)

0/150
提交
取消
微信客服

購(gòu)課補(bǔ)貼
聯(lián)系客服咨詢優(yōu)惠詳情

幫助反饋 APP下載

慕課網(wǎng)APP
您的移動(dòng)學(xué)習(xí)伙伴

公眾號(hào)

掃描二維碼
關(guān)注慕課網(wǎng)微信公眾號(hào)