diff --git a/sui/core/build.go b/sui/core/build.go index fabfe6cf..cbe95f6f 100644 --- a/sui/core/build.go +++ b/sui/core/build.go @@ -261,8 +261,6 @@ func (page *Page) buildComponents(doc *goquery.Document, ctx *BuildContext, opti return } - sel.SetAttr("parsed", "true") - // Check if Just-In-Time Component ( "is" has variable ) if ctx.isJitComponent(name) { sel.SetAttr("s:jit", "true") @@ -271,6 +269,7 @@ func (page *Page) buildComponents(doc *goquery.Document, ctx *BuildContext, opti return } + sel.SetAttr("parsed", "true") ipage, err := tmpl.Page(name) if err != nil { setError(sel, err) diff --git a/sui/core/parser.go b/sui/core/parser.go index 2d7241e9..92eeab01 100644 --- a/sui/core/parser.go +++ b/sui/core/parser.go @@ -271,14 +271,14 @@ func (parser *TemplateParser) parseNode(node *html.Node) { func (parser *TemplateParser) parseElementNode(sel *goquery.Selection) { - if _, exist := sel.Attr("s:if"); exist { - parser.ifStatementNode(sel) - } - if _, exist := sel.Attr("s:for"); exist { parser.forStatementNode(sel) } + if _, exist := sel.Attr("s:if"); exist { + parser.ifStatementNode(sel) + } + if _, exist := sel.Attr("s:set"); exist || sel.Get(0).Data == "s:set" { parser.setStatementNode(sel) } @@ -303,6 +303,7 @@ func (parser *TemplateParser) parseJitElementNode(sel *goquery.Selection) { return } + parser.parsed(sel) // Render the JIT component Data is, _ = parser.data.Replace(is) root := sel.AttrOr("s:root", "/") @@ -312,23 +313,25 @@ func (parser *TemplateParser) parseJitElementNode(sel *goquery.Selection) { content, err := application.App.Read(file) if err != nil { log.Error("[parser] %s JIT %s", file, err.Error()) + setError(sel, err) return } + sel.ReplaceWith(string(content)) // With Properties - // copy options - option := *parser.option - option.Component = true - p := NewTemplateParser(parser.data, &option) - html, err := p.Render(string(content)) - if err != nil { - log.Error("[parser] %s JIT %s", file, err.Error()) - return - } + // // copy options + // option := *parser.option + // option.Component = true + // p := NewTemplateParser(parser.data, &option) + // html, err := p.Render(string(content)) + // if err != nil { + // log.Error("[parser] %s JIT %s", file, err.Error()) + // return + // } - // Replace the node - sel.ReplaceWithHtml(html) + // // Replace the node + // sel.ReplaceWithHtml(html) } func (parser *TemplateParser) transElementNode(sel *goquery.Selection) {