From 8bbf31f9f779ae9958ff3324f0f7735aa366f7bc Mon Sep 17 00:00:00 2001 From: Thomas Voss Date: Mon, 11 Sep 2023 05:10:54 +0200 Subject: Add the ‘=’ node for whitespace trimming MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- parser/parser.go | 14 ++++++++++---- 1 file changed, 10 insertions(+), 4 deletions(-) (limited to 'parser/parser.go') diff --git a/parser/parser.go b/parser/parser.go index f55a135..0fc0037 100644 --- a/parser/parser.go +++ b/parser/parser.go @@ -14,6 +14,7 @@ type nodeType uint const ( Normal nodeType = iota Tagless + TaglessTrim Text ) @@ -66,8 +67,8 @@ func (reader *reader) parseNode() (node AstNode, err error) { } switch r { - case '-': - return reader.parseText() + case '-', '=': + return reader.parseText(r == '=') case '>': node.Newline = true if _, err = reader.readRune(); err != nil { @@ -153,13 +154,18 @@ func (reader *reader) parseNodeName() (string, error) { return sb.String(), nil } -func (reader *reader) parseText() (AstNode, error) { +func (reader *reader) parseText(trim bool) (AstNode, error) { if _, err := reader.readRune(); err != nil { return AstNode{}, err } sb := strings.Builder{} - node := AstNode{Type: Tagless} + node := AstNode{} + if trim { + node.Type = TaglessTrim + } else { + node.Type = Tagless + } loop: for { -- cgit v1.2.3