Explorar el Código

:art: Add a template function `getHPathByID` https://github.com/siyuan-note/siyuan/issues/11734

Daniel hace 9 meses
padre
commit
0ff99f758a
Se han modificado 3 ficheros con 19 adiciones y 8 borrados
  1. 2 2
      kernel/model/template.go
  2. 1 1
      kernel/sql/av.go
  3. 16 5
      kernel/treenode/template.go

+ 2 - 2
kernel/model/template.go

@@ -42,7 +42,7 @@ import (
 
 func RenderGoTemplate(templateContent string) (ret string, err error) {
 	tmpl := template.New("")
-	tplFuncMap := util.BuiltInTemplateFuncs()
+	tplFuncMap := treenode.BuiltInTemplateFuncs()
 	sql.SQLTemplateFuncs(&tplFuncMap)
 	tmpl = tmpl.Funcs(tplFuncMap)
 	tpl, err := tmpl.Parse(templateContent)
@@ -224,7 +224,7 @@ func RenderTemplate(p, id string, preview bool) (tree *parse.Tree, dom string, e
 	}
 
 	goTpl := template.New("").Delims(".action{", "}")
-	tplFuncMap := util.BuiltInTemplateFuncs()
+	tplFuncMap := treenode.BuiltInTemplateFuncs()
 	sql.SQLTemplateFuncs(&tplFuncMap)
 	goTpl = goTpl.Funcs(tplFuncMap)
 	tpl, err := goTpl.Funcs(tplFuncMap).Parse(gulu.Str.FromBytes(md))

+ 1 - 1
kernel/sql/av.go

@@ -404,7 +404,7 @@ func RenderTemplateCol(ial map[string]string, rowValues []*av.KeyValues, tplCont
 	}
 
 	goTpl := template.New("").Delims(".action{", "}")
-	tplFuncMap := util.BuiltInTemplateFuncs()
+	tplFuncMap := treenode.BuiltInTemplateFuncs()
 	SQLTemplateFuncs(&tplFuncMap)
 	goTpl = goTpl.Funcs(tplFuncMap)
 	tpl, err := goTpl.Parse(tplContent)

+ 16 - 5
kernel/util/template.go → kernel/treenode/template.go

@@ -14,7 +14,7 @@
 // You should have received a copy of the GNU Affero General Public License
 // along with this program.  If not, see <https://www.gnu.org/licenses/>.
 
-package util
+package treenode
 
 import (
 	"math"
@@ -25,21 +25,23 @@ import (
 	"github.com/Masterminds/sprig/v3"
 	"github.com/araddon/dateparse"
 	"github.com/siyuan-note/logging"
+	"github.com/siyuan-note/siyuan/kernel/util"
 	"github.com/spf13/cast"
 )
 
 func BuiltInTemplateFuncs() (ret template.FuncMap) {
 	ret = sprig.TxtFuncMap()
-	ret["Weekday"] = Weekday
-	ret["WeekdayCN"] = WeekdayCN
-	ret["WeekdayCN2"] = WeekdayCN2
-	ret["ISOWeek"] = ISOWeek
+	ret["Weekday"] = util.Weekday
+	ret["WeekdayCN"] = util.WeekdayCN
+	ret["WeekdayCN2"] = util.WeekdayCN2
+	ret["ISOWeek"] = util.ISOWeek
 	ret["pow"] = pow
 	ret["powf"] = powf
 	ret["log"] = log
 	ret["logf"] = logf
 	ret["parseTime"] = parseTime
 	ret["FormatFloat"] = FormatFloat
+	ret["getHPathByID"] = getHPathByID
 	return
 }
 
@@ -63,3 +65,12 @@ func parseTime(dateStr string) time.Time {
 func FormatFloat(format string, n float64) string {
 	return humanize.FormatFloat(format, n)
 }
+
+func getHPathByID(id string) (ret string) {
+	bt := GetBlockTree(id)
+	if nil == bt {
+		return
+	}
+	ret = bt.HPath
+	return
+}