aboutsummaryrefslogtreecommitdiff
path: root/parser
diff options
context:
space:
mode:
Diffstat (limited to 'parser')
-rw-r--r--parser/parser.go14
1 files changed, 10 insertions, 4 deletions
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 {