mirror of
https://github.com/siyuan-note/siyuan.git
synced 2026-01-06 16:58:49 +01:00
🎨 Creating a dailynote template supports doc attributes https://github.com/siyuan-note/siyuan/issues/10698
This commit is contained in:
parent
45df03aede
commit
8b7e6661f5
3 changed files with 28 additions and 20 deletions
|
|
@ -183,24 +183,21 @@ func DocSaveAsTemplate(id, name string, overwrite bool) (code int, err error) {
|
|||
return
|
||||
}
|
||||
|
||||
func RenderTemplate(p, id string, preview bool) (string, error) {
|
||||
return renderTemplate(p, id, preview)
|
||||
}
|
||||
|
||||
func renderTemplate(p, id string, preview bool) (string, error) {
|
||||
tree, err := LoadTreeByBlockID(id)
|
||||
func RenderTemplate(p, id string, preview bool) (tree *parse.Tree, dom string, err error) {
|
||||
tree, err = LoadTreeByBlockID(id)
|
||||
if nil != err {
|
||||
return "", err
|
||||
return
|
||||
}
|
||||
|
||||
node := treenode.GetNodeInTree(tree, id)
|
||||
if nil == node {
|
||||
return "", ErrBlockNotFound
|
||||
err = ErrBlockNotFound
|
||||
return
|
||||
}
|
||||
block := sql.BuildBlockFromNode(node, tree)
|
||||
md, err := os.ReadFile(p)
|
||||
if nil != err {
|
||||
return "", err
|
||||
return
|
||||
}
|
||||
|
||||
dataModel := map[string]string{}
|
||||
|
|
@ -222,20 +219,23 @@ func renderTemplate(p, id string, preview bool) (string, error) {
|
|||
goTpl = goTpl.Funcs(tplFuncMap)
|
||||
tpl, err := goTpl.Funcs(tplFuncMap).Parse(gulu.Str.FromBytes(md))
|
||||
if nil != err {
|
||||
return "", errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
|
||||
err = errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
|
||||
return
|
||||
}
|
||||
|
||||
buf := &bytes.Buffer{}
|
||||
buf.Grow(4096)
|
||||
if err = tpl.Execute(buf, dataModel); nil != err {
|
||||
return "", errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
|
||||
err = errors.New(fmt.Sprintf(Conf.Language(44), err.Error()))
|
||||
return
|
||||
}
|
||||
md = buf.Bytes()
|
||||
tree = parseKTree(md)
|
||||
if nil == tree {
|
||||
msg := fmt.Sprintf("parse tree [%s] failed", p)
|
||||
logging.LogErrorf(msg)
|
||||
return "", errors.New(msg)
|
||||
err = errors.New(msg)
|
||||
return
|
||||
}
|
||||
|
||||
var nodesNeedAppendChild, unlinks []*ast.Node
|
||||
|
|
@ -357,8 +357,8 @@ func renderTemplate(p, id string, preview bool) (string, error) {
|
|||
})
|
||||
|
||||
luteEngine := NewLute()
|
||||
dom := luteEngine.Tree2BlockDOM(tree, luteEngine.RenderOptions)
|
||||
return dom, nil
|
||||
dom = luteEngine.Tree2BlockDOM(tree, luteEngine.RenderOptions)
|
||||
return
|
||||
}
|
||||
|
||||
func addBlockIALNodes(tree *parse.Tree, removeUpdated bool) {
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue