From c5374e9879222d95225ca8af878bf5e152a0b9ad Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Fri, 17 Jan 2025 20:29:36 -0700 Subject: [PATCH 1/4] slim wip --- compiler/lexer.go | 41 +-- compiler/lexer_iface.go | 32 ++ compiler/lexers.go | 661 +++------------------------------------- compiler/lexers_haml.go | 637 ++++++++++++++++++++++++++++++++++++++ compiler/lexers_slim.go | 332 ++++++++++++++++++++ compiler/nodes.go | 74 +++++ compiler/parser_test.go | 50 ++- compiler/tokens.go | 8 + 8 files changed, 1188 insertions(+), 647 deletions(-) create mode 100644 compiler/lexer_iface.go create mode 100644 compiler/lexers_haml.go create mode 100644 compiler/lexers_slim.go diff --git a/compiler/lexer.go b/compiler/lexer.go index 96d2162..f23838c 100644 --- a/compiler/lexer.go +++ b/compiler/lexer.go @@ -43,6 +43,7 @@ func (l *lexer) nextToken() token { } } +// next consumes the next rune from the input. func (l *lexer) next() rune { ch, size, err := l.reader.ReadRune() if err != nil { @@ -59,6 +60,7 @@ func (l *lexer) next() rune { return ch } +// backup steps back one rune. func (l *lexer) backup() { if l.width == 0 { return @@ -72,12 +74,14 @@ func (l *lexer) backup() { l.s = l.s[:len(l.s)-l.width] } +// peek returns the next rune without consuming it. func (l *lexer) peek() rune { ch := l.next() l.backup() return ch } +// peekAhead returns the next length runes without consuming them. func (l *lexer) peekAhead(length int) (string, error) { width := 0 s := "" @@ -102,29 +106,30 @@ func (l *lexer) peekAhead(length int) (string, error) { return s, nil } +// ignore discards the current captured string. func (l *lexer) ignore() { l.s = "" } -// accept consumes the next rune if it's contained in the valid string. -func (l *lexer) accept(valid string) bool { - if strings.ContainsRune(valid, l.next()) { +// accept consumes the next rune if it's contained in the acceptRunes list. +func (l *lexer) accept(acceptRunes string) bool { + if strings.ContainsRune(acceptRunes, l.next()) { return true } l.backup() return false } -// acceptRun consumes a run of runes from the valid string. -func (l *lexer) acceptRun(valid string) { - for strings.ContainsRune(valid, l.next()) { +// acceptRun consumes a run of runes from the acceptRunes list. +func (l *lexer) acceptRun(acceptRunes string) { + for strings.ContainsRune(acceptRunes, l.next()) { } l.backup() } -// acceptUntil consumes runes until it finds a rune in the invalid string. -func (l *lexer) acceptUntil(invalid string) { - for r := l.next(); !strings.ContainsRune(invalid, r) && r != scanner.EOF; r = l.next() { +// acceptUntil consumes runes until it encounters a rune in the stopRunes list. +func (l *lexer) acceptUntil(stopRunes string) { + for r := l.next(); !strings.ContainsRune(stopRunes, r) && r != scanner.EOF; r = l.next() { } l.backup() } @@ -136,24 +141,24 @@ func (l *lexer) acceptAhead(length int) { } } -// skip consumes the next rune and then discards it. +// skip discards the next rune. func (l *lexer) skip() rune { r := l.next() l.s = l.s[:len(l.s)-1] return r } -// skipRun consumes a run of runes from the skipList and discards them. -func (l *lexer) skipRun(skipList string) { - for strings.ContainsRune(skipList, l.next()) { +// skipRun discards a contiguous run of runes from the skipRunes list. +func (l *lexer) skipRun(skipRunes string) { + for strings.ContainsRune(skipRunes, l.next()) { l.s = l.s[:len(l.s)-1] } l.backup() } -// skipUntil consumes and discards runes until it finds a rune in the stopList. -func (l *lexer) skipUntil(stopList string) { - for r := l.next(); !strings.ContainsRune(stopList, r) && r != scanner.EOF; r = l.next() { +// skipUntil discards runes until it encounters a rune in the stopRunes list. +func (l *lexer) skipUntil(stopRunes string) { + for r := l.next(); !strings.ContainsRune(stopRunes, r) && r != scanner.EOF; r = l.next() { l.s = l.s[:len(l.s)-1] } l.backup() @@ -167,7 +172,7 @@ func (l *lexer) skipAhead(length int) { l.ignore() } -// current returns the current string being built by the lexer. +// current returns the current captured string being built by the lexer. func (l *lexer) current() string { return l.s } @@ -186,7 +191,7 @@ func (l *lexer) errorf(format string, args ...any) lexFn { return func(l *lexer) lexFn { return nil } } -// position returns the current line and column of the file being lexed. +// position returns the current line and column of the content being lexed. func (l *lexer) position() (int, int) { newLinesInString := strings.Count(l.s, "\n") line := len(l.pos) - newLinesInString diff --git a/compiler/lexer_iface.go b/compiler/lexer_iface.go new file mode 100644 index 0000000..34b4413 --- /dev/null +++ b/compiler/lexer_iface.go @@ -0,0 +1,32 @@ +package compiler + +type ilexer interface { + // next consumes the next rune from the input. + next() rune + // backup steps back one rune. + backup() + // peek returns the next rune without consuming it. + peek() rune + // peekAhead returns the next length runes without consuming them. + peekAhead(length int) (string, error) + // ignore discards the current captured string. + ignore() + // accept consumes the next rune if it's contained in the acceptRunes list. + accept(acceptRunes string) bool + // acceptRun consumes a run of runes from the acceptRunes list. + acceptRun(acceptRunes string) + // acceptUntil consumes runes until it encounters a rune in the stopRunes list. + acceptUntil(stopRunes string) + // acceptAhead consumes the next length runes. + acceptAhead(length int) + // skip discards the next rune. + skip() rune + // skipRun discards a contiguous run of runes from the skipRunes list. + skipRun(skipRunes string) + // skipUntil discards runes until it encounters a rune in the stopRunes list. + skipUntil(stopRunes string) + // skipAhead consumes the next length runes and discards them. + skipAhead(length int) + // current returns the current captured string being built by the lexer. + current() string +} diff --git a/compiler/lexers.go b/compiler/lexers.go index 3715ca7..9edbde5 100644 --- a/compiler/lexers.go +++ b/compiler/lexers.go @@ -1,7 +1,6 @@ package compiler import ( - "slices" "strings" "text/scanner" ) @@ -111,13 +110,13 @@ func lexGoCode(l *lexer) lexFn { func lexTemplate(l *lexer) lexFn { l.acceptUntil(" ") switch l.current() { - case "@goht": - return lexGohtStart + case "@goht", "@haml": + return lexTemplateStart(l, lexHamlLineStart) } return nil } -func lexGohtStart(l *lexer) lexFn { +func lexTemplateStart(l *lexer, next lexFn) lexFn { l.ignore() l.skipRun(" ") l.acceptUntil(")") @@ -136,632 +135,11 @@ func lexGohtStart(l *lexer) lexFn { } } l.next() - l.emit(tGohtStart) + l.emit(tTemplateStart) l.skipRun(" {") l.skipRun("\n\r") - return lexGohtLineStart -} - -func lexGohtLineStart(l *lexer) lexFn { - switch l.peek() { - case '}': - l.emit(tGohtEnd) - l.skip() - return lexGoLineStart - case scanner.EOF: - l.emit(tEOF) - return nil - case '\n', '\r': - return lexGohtLineEnd - default: - return lexGohtIndent - } -} - -func lexGohtIndent(l *lexer) lexFn { - // accept spaces and tabs so that we can report about improper indentation - l.acceptRun(" \t") - indent := l.current() - - // there has not been any indentation yet - if l.indent == 0 && len(indent) == 0 { - // return an error that indents are required - return l.errorf("templates must be indented") - } - - if len(indent) == 0 { - l.indent = 0 - l.emit(tIndent) - return lexGohtContentStart - } - - // validate the indent against the sequence and char - if lexErr := l.validateIndent(indent); lexErr != nil { - return lexErr - } - - l.indent = len(l.current()) // useful for parsing filters - l.emit(tIndent) - return lexGohtContentStart -} - -func lexGohtContentStart(l *lexer) lexFn { - switch l.peek() { - case '%': - return lexGohtTag - case '#': - return lexGohtId - case '.': - return lexGohtClass - case '\\': - l.skip() - return lexGohtTextStart - case '!': - if s, err := l.peekAhead(3); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s == "!!!" { - // TODO return an error if we're nesting doctypes - return lexGohtDoctype - } - return lexGohtUnescaped - case '-': - return lexGohtSilentScript - case '=': - return lexGohtOutputCode - case '/': - return lexComment - case ':': - return lexFilterStart - case scanner.EOF, '\n', '\r': - return lexGohtLineEnd - default: - return lexGohtTextStart - } -} - -func lexGohtContent(l *lexer) lexFn { - switch l.peek() { - case '#': - return lexGohtId - case '.': - return lexGohtClass - case '[': - return lexObjectReference - case '{': - return lexGohtAttributesStart - case '!': - return lexGohtUnescaped - case '-': - return lexGohtSilentScript - case '=': - return lexGohtOutputCode - case '/': - return lexVoidTag - case '>', '<': - return lexWhitespaceRemoval - case scanner.EOF, '\n', '\r': - return lexGohtLineEnd - default: - return lexGohtTextStart - } -} - -func lexGohtContentEnd(l *lexer) lexFn { - switch l.peek() { - case '=': - return lexGohtOutputCode - case '/': - return lexVoidTag - case '>', '<': - return lexWhitespaceRemoval - case scanner.EOF, '\n', '\r': - return lexGohtLineEnd - default: - return lexGohtTextStart - } -} - -func lexGohtLineEnd(l *lexer) lexFn { - l.skipRun(" \t") - - switch l.peek() { - case '\n', '\r': - return lexGohtNewLine - case scanner.EOF: - l.emit(tEOF) - return nil - default: - return l.errorf("unexpected character: %q", l.peek()) - } -} - -func lexGohtNewLine(l *lexer) lexFn { - l.acceptRun("\n\r") - l.emit(tNewLine) - return lexGohtLineStart -} - -func hamlIdentifier(typ tokenType, l *lexer) lexFn { - l.skip() // eat symbol - - // these characters may follow an identifier - const mayFollowIdentifier = "%#.[{=!/<> \t\n\r" - - l.acceptUntil(mayFollowIdentifier) - if l.current() == "" { - return l.errorf("%s identifier expected", typ) - } - l.emit(typ) - return lexGohtContent -} - -func lexGohtTag(l *lexer) lexFn { - return hamlIdentifier(tTag, l) -} - -func lexGohtId(l *lexer) lexFn { - return hamlIdentifier(tId, l) -} - -func lexGohtClass(l *lexer) lexFn { - return hamlIdentifier(tClass, l) -} - -func lexObjectReference(l *lexer) lexFn { - l.skip() // eat opening bracket - r := continueToMatchingBrace(l, ']') - if r == scanner.EOF { - return l.errorf("object reference not closed: eof") - } - l.backup() - l.emit(tObjectRef) - l.skip() // skip closing bracket - return lexGohtContent -} - -func lexGohtAttributesStart(l *lexer) lexFn { - l.skip() - return lexGohtAttribute -} - -func lexGohtAttributesEnd(l *lexer) lexFn { - l.skip() - return lexGohtContent -} - -func lexGohtAttribute(l *lexer) lexFn { - // supported attributes - // key - // key:value - // key?value - // @attributes: []any (string, map[string]string, map[string]bool) - - l.skipRun(", \t\n\r") - - switch l.peek() { - case '}': - return lexGohtAttributesEnd - case '@': - return lexAttributeCommandStart - default: - return lexGohtAttributeName - } -} - -func lexGohtAttributeName(l *lexer) lexFn { - if l.peek() == '"' || l.peek() == '`' { - r := continueToMatchingQuote(l, tAttrName, false) - if r == scanner.EOF { - return l.errorf("attribute name not closed: eof") - } else if r != '"' && r != '`' { - return l.errorf("unexpected character: %q", r) - } - } else { - l.acceptUntil("?:,}{\" \t\n\r") - if l.current() == "" { - return l.errorf("attribute name expected") - } - l.emit(tAttrName) - } - - l.skipRun(" \t\n\r") - switch l.peek() { - case '?', ':': - return lexGohtAttributeOperator - case ',', '}': - return lexGohtAttributeEnd - default: - return l.errorf("unexpected character: %q", l.peek()) - } -} - -func lexGohtAttributeOperator(l *lexer) lexFn { - l.skipRun(" \t\n\r") - switch l.peek() { - case '?', ':': - l.next() - l.emit(tAttrOperator) - return lexGohtAttributeValue - } - return l.errorf("unexpected character: %q", l.peek()) -} - -func lexGohtAttributeValue(l *lexer) lexFn { - l.skipRun(" \t\n\r") - - switch l.peek() { - case '"', '`': - return lexGohtAttributeStaticValue - case '#': - return lexGohtAttributeDynamicValue - } - return l.errorf("unexpected character: %q", l.peek()) -} - -func lexGohtAttributeStaticValue(l *lexer) lexFn { - r := continueToMatchingQuote(l, tAttrEscapedValue, true) - if r == scanner.EOF { - return l.errorf("attribute value not closed: eof") - } else if r != '"' && r != '`' { - return l.errorf("unexpected character: %q", r) - } - return lexGohtAttributeEnd -} - -func lexGohtAttributeDynamicValue(l *lexer) lexFn { - l.skip() // skip hash - if l.peek() != '{' { - return l.errorf("unexpected character: %q", l.peek()) - } - l.skip() // skip opening brace - r := continueToMatchingBrace(l, '}') - if r == scanner.EOF { - return l.errorf("attribute value not closed: eof") - } - l.backup() - l.emit(tAttrDynamicValue) - l.skip() // skip closing brace - return lexGohtAttributeEnd -} - -func lexAttributeCommandStart(l *lexer) lexFn { - l.skipRun("@") - l.acceptUntil(": \t\n\r") - if l.current() == "" { - return l.errorf("command code expected") - } - switch l.current() { - case "attributes": - return lexGohtAttributeCommand(tAttributesCommand) - default: - return l.errorf("unknown attribute command: %s", l.current()) - } -} - -func lexGohtAttributeCommand(command tokenType) lexFn { - return func(l *lexer) lexFn { - l.ignore() - l.skipUntil(":") - l.skipUntil("{") - l.skip() // skip opening brace - r := continueToMatchingBrace(l, '}') - if r == scanner.EOF { - return l.errorf("attribute value not closed: eof") - } - l.backup() - l.emit(command) - l.skip() // skip closing brace - - return lexGohtAttributeEnd - } -} - -func lexGohtAttributeEnd(l *lexer) lexFn { - l.skipRun(" \t\n\r") - switch l.peek() { - case ',': - l.skip() - return lexGohtAttribute - case '}': - return lexGohtAttributesEnd - default: - return l.errorf("unexpected character: %c", l.peek()) - } -} - -func lexWhitespaceRemoval(l *lexer) lexFn { - direction := l.skip() - switch direction { - case '>': - l.emit(tNukeOuterWhitespace) - case '<': - l.emit(tNukeInnerWhitespace) - default: - return l.errorf("unexpected character: %q", direction) - } - return lexGohtContentEnd -} - -func lexGohtTextStart(l *lexer) lexFn { - l.skipRun(" \t") - return lexGohtTextContent -} - -func lexGohtTextContent(l *lexer) lexFn { - l.acceptUntil("\\#\n\r") - switch l.peek() { - case '\\': - isHashComing, err := l.peekAhead(2) - if err != nil { - return l.errorf("unexpected error: %s", err) - } - if isHashComing == "\\#" { - l.skip() - // was the backslash being escaped? - if !strings.HasSuffix(l.current(), "\\") { - l.next() - } - } else { - l.next() - } - return lexGohtTextContent - case '#': - return lexGohtDynamicText - default: - if l.current() != "" { - l.emit(tPlainText) - } - return lexGohtLineEnd - } -} - -func lexGohtDynamicText(l *lexer) lexFn { - if s, err := l.peekAhead(2); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s != "#{" { - l.next() - return lexGohtTextContent - } - if l.current() != "" { - l.emit(tPlainText) - } - l.skipRun("#{") - r := continueToMatchingBrace(l, '}') - if r == scanner.EOF { - return l.errorf("dynamic text value was not closed: eof") - } - l.backup() - l.emit(tDynamicText) - l.skip() // skip closing brace - return lexGohtTextContent -} - -func lexGohtDoctype(l *lexer) lexFn { - l.skipRun("! ") - l.acceptUntil("\n\r") - l.emit(tDoctype) - return lexGohtLineEnd -} - -func lexGohtUnescaped(l *lexer) lexFn { - l.skip() - l.ignore() - l.emit(tUnescaped) - switch l.peek() { - case '=': - return lexGohtOutputCode - default: - return lexGohtTextStart - } -} - -func lexGohtSilentScript(l *lexer) lexFn { - l.skip() // eat dash - - // ruby style comment - if l.peek() == '#' { - // ignore the rest of the line - l.skipUntil("\n\r") - l.emit(tRubyComment) - return ignoreIndentedLines(l.indent + 1) - } - - l.skipRun(" \t") - l.acceptUntil("\n\r") - l.emit(tSilentScript) - return lexGohtLineEnd -} - -func ignoreIndentedLines(indent int) lexFn { - return func(l *lexer) lexFn { - switch l.peek() { - case '\n', '\r': - l.skip() - return ignoreIndentedLines(indent) - case ' ', '\t': - priorIndents, err := l.peekAhead(indent) - if err != nil { - return l.errorf("unexpected error while evaluating indents: %s", err) - } - if len(strings.TrimSpace(priorIndents)) != 0 { - return lexGohtLineStart - } - // validate we have the correct indents - if lexErr := l.validateIndent(priorIndents); lexErr != nil { - return lexErr - } - l.skipUntil("\n\r") - return ignoreIndentedLines(indent) - case scanner.EOF: - l.emit(tEOF) - return nil - default: - return lexGohtLineStart - } - } -} - -func lexGohtOutputCode(l *lexer) lexFn { - l.skipRun("= \t") - switch l.peek() { - case '@': - return lexGohtCommandCode - default: - l.acceptUntil("\n\r") - l.emit(tScript) - return lexGohtLineEnd - } -} - -func lexComment(l *lexer) lexFn { - l.skipRun("/ \t") - l.acceptUntil("\n\r") - l.emit(tComment) - return lexGohtLineEnd -} - -func lexVoidTag(l *lexer) lexFn { - l.skipRun("/ \t") - l.acceptUntil("\n\r") - if l.current() != "" { - l.ignore() - return l.errorf("self-closing tags can't have content") - } - l.emit(tVoidTag) - return lexGohtLineEnd -} - -func lexGohtCommandCode(l *lexer) lexFn { - l.skipRun("@") - l.acceptUntil("() \t\n\r") - if l.current() == "" { - return l.errorf("command code expected") - } - switch l.current() { - case "render": - l.acceptRun("() \t") - l.ignore() - l.acceptUntil("\n\r") - if l.current() == "" { - return l.errorf("render argument expected") - } - l.emit(tRenderCommand) - case "children": - l.acceptRun("() \t") - l.ignore() - l.acceptUntil("\n\r") - if l.current() != "" { - return l.errorf("children command does not accept arguments") - } - l.emit(tChildrenCommand) - } - l.skipRun("\n\r") - return lexGohtLineStart -} - -var filters = []string{"javascript", "css", "plain", "escaped", "preserve"} - -func lexFilterStart(l *lexer) lexFn { - l.skipRun(": \t") - l.acceptUntil(" \t\n\r") - if l.current() == "" { - return l.errorf("filter name expected") - } - if !slices.Contains(filters, l.current()) { - return l.errorf("unknown filter: %s", l.current()) - } - filter := l.current() - l.emit(tFilterStart) - l.skipUntil("\n\r") // ignore the rest of the current line - l.skipRun("\n\r") // split so we don't consume the indent on the next line - - switch filter { - case "javascript", "css", "plain": - return lexFilterLineStart(l.indent+1, tPlainText) - case "escaped": - return lexFilterLineStart(l.indent+1, tEscapedText) - case "preserve": - return lexFilterLineStart(l.indent+1, tPreserveText) - } - return lexGohtLineEnd -} - -func lexFilterLineStart(indent int, textType tokenType) lexFn { - return func(l *lexer) lexFn { - switch l.peek() { - case ' ', '\t': - return lexFilterIndent(indent, textType) - case scanner.EOF: - l.emit(tEOF) - return nil - default: - l.emit(tFilterEnd) - return lexGohtLineStart - } - } -} - -func lexFilterIndent(indent int, textType tokenType) lexFn { - return func(l *lexer) lexFn { - var indents string - - // only accept the whitespace that belongs to the indent - var err error - - // peeking first, in case we've reached the end of the filter - indents, err = l.peekAhead(indent) - if err != nil { - return l.errorf("unexpected error while evaluating filter indents: %s", err) - } - - // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines - if len(strings.Trim(indents, "\t")) != 0 { - l.emit(tFilterEnd) - return lexGohtLineStart - } - - l.skipAhead(indent) - - return lexFilterContent(indent, textType) - } -} - -func lexFilterContent(indent int, textType tokenType) lexFn { - return func(l *lexer) lexFn { - l.acceptUntil("#\n\r") - if l.peek() == '#' { - return lexFilterDynamicText(textType, lexFilterContent(indent, textType)) - } - l.acceptRun("\n\r") - if l.current() != "" { - l.emit(textType) - } - return lexFilterLineStart(indent, textType) - } -} - -func lexFilterDynamicText(textType tokenType, next lexFn) lexFn { - return func(l *lexer) lexFn { - if s, err := l.peekAhead(2); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s != "#{" { - l.next() - return next - } - if l.current() != "" { - l.emit(textType) - } - l.skipRun("#{") - r := continueToMatchingBrace(l, '}') - if r == scanner.EOF { - return l.errorf("dynamic text value was not closed: eof") - } - l.backup() - l.emit(tDynamicText) - l.skip() // skip closing brace - return next - } + return next } func continueToMatchingQuote(l *lexer, typ tokenType, captureQuotes bool) rune { @@ -830,3 +208,32 @@ func continueToMatchingBrace(l *lexer, endBrace rune) rune { } } } + +func ignoreIndentedLines(indent int, next lexFn) lexFn { + return func(l *lexer) lexFn { + switch l.peek() { + case '\n', '\r': + l.skip() + return ignoreIndentedLines(indent, next) + case ' ', '\t': + priorIndents, err := l.peekAhead(indent) + if err != nil { + return l.errorf("unexpected error while evaluating indents: %s", err) + } + if len(strings.TrimSpace(priorIndents)) != 0 { + return next + } + // validate we have the correct indents + if lexErr := l.validateIndent(priorIndents); lexErr != nil { + return lexErr + } + l.skipUntil("\n\r") + return ignoreIndentedLines(indent, next) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + return next + } + } +} diff --git a/compiler/lexers_haml.go b/compiler/lexers_haml.go new file mode 100644 index 0000000..dd68ff8 --- /dev/null +++ b/compiler/lexers_haml.go @@ -0,0 +1,637 @@ +package compiler + +import ( + "slices" + "strings" + "text/scanner" +) + +// func lexHamlStart(l *lexer) lexFn { +// l.ignore() +// l.skipRun(" ") +// l.acceptUntil(")") +// if strings.HasPrefix(l.current(), "(") { +// // we've only captured the receiver, so we need to capture the rest of the function signature +// l.next() +// for { +// l.acceptUntil(")") +// // handle the situation where the function signature contains an `interface{}` type with one or more methods +// openParens := strings.Count(l.current(), "(") +// closeParens := strings.Count(l.current(), ")") +// if openParens == closeParens+1 { +// break +// } +// l.next() +// } +// } +// l.next() +// l.emit(tGohtStart) +// l.skipRun(" {") +// l.skipRun("\n\r") +// +// return lexHamlLineStart +// } + +func lexHamlLineStart(l *lexer) lexFn { + switch l.peek() { + case '}': + l.emit(tTemplateEnd) + l.skip() + return lexGoLineStart + case scanner.EOF: + l.emit(tEOF) + return nil + case '\n', '\r': + return lexHamlLineEnd + default: + return lexHamlIndent + } +} + +func lexHamlIndent(l *lexer) lexFn { + // accept spaces and tabs so that we can report about improper indentation + l.acceptRun(" \t") + indent := l.current() + + // there has not been any indentation yet + if l.indent == 0 && len(indent) == 0 { + // return an error that indents are required + return l.errorf("haml templates must be indented") + } + + // if len(indent) == 0 { + // l.indent = 0 + // l.emit(tIndent) + // return lexHamlContentStart + // } + + // validate the indent against the sequence and char + if lexHamlErr := l.validateIndent(indent); lexHamlErr != nil { + return lexHamlErr + } + + l.indent = len(l.current()) // useful for parsing filters + l.emit(tIndent) + return lexHamlContentStart +} + +func lexHamlContentStart(l *lexer) lexFn { + switch l.peek() { + case '%': + return lexHamlTag + case '#': + return lexHamlId + case '.': + return lexHamlClass + case '\\': + l.skip() + return lexHamlTextStart + case '!': + if s, err := l.peekAhead(3); err != nil { + return l.errorf("unexpected error: %s", err) + } else if s == "!!!" { + // TODO return an error if we're nesting doctypes + return lexHamlDoctype + } + return lexHamlUnescaped + case '-': + return lexHamlSilentScript + case '=': + return lexHamlOutputCode + case '/': + return lexHamlComment + case ':': + return lexHamlFilterStart + case scanner.EOF, '\n', '\r': + return lexHamlLineEnd + default: + return lexHamlTextStart + } +} + +func lexHamlContent(l *lexer) lexFn { + switch l.peek() { + case '#': + return lexHamlId + case '.': + return lexHamlClass + case '[': + return lexHamlObjectReference + case '{': + return lexHamlAttributesStart + case '!': + return lexHamlUnescaped + case '-': + return lexHamlSilentScript + case '=': + return lexHamlOutputCode + case '/': + return lexHamlVoidTag + case '>', '<': + return lexHamlWhitespaceRemoval + case scanner.EOF, '\n', '\r': + return lexHamlLineEnd + default: + return lexHamlTextStart + } +} + +func lexHamlContentEnd(l *lexer) lexFn { + switch l.peek() { + case '=': + return lexHamlOutputCode + case '/': + return lexHamlVoidTag + case '>', '<': + return lexHamlWhitespaceRemoval + case scanner.EOF, '\n', '\r': + return lexHamlLineEnd + default: + return lexHamlTextStart + } +} + +func lexHamlLineEnd(l *lexer) lexFn { + l.skipRun(" \t") + + switch l.peek() { + case '\n', '\r': + return lexHamlNewLine + case scanner.EOF: + l.emit(tEOF) + return nil + default: + return l.errorf("unexpected character: %q", l.peek()) + } +} + +func lexHamlNewLine(l *lexer) lexFn { + l.acceptRun("\n\r") + l.emit(tNewLine) + return lexHamlLineStart +} + +func hamlIdentifier(typ tokenType, l *lexer) lexFn { + l.skip() // eat symbol + + // these characters may follow an identifier + const mayFollowIdentifier = "%#.[{=!/<> \t\n\r" + + l.acceptUntil(mayFollowIdentifier) + if l.current() == "" { + return l.errorf("%s identifier expected", typ) + } + l.emit(typ) + return lexHamlContent +} + +func lexHamlTag(l *lexer) lexFn { + return hamlIdentifier(tTag, l) +} + +func lexHamlId(l *lexer) lexFn { + return hamlIdentifier(tId, l) +} + +func lexHamlClass(l *lexer) lexFn { + return hamlIdentifier(tClass, l) +} + +func lexHamlObjectReference(l *lexer) lexFn { + l.skip() // eat opening bracket + r := continueToMatchingBrace(l, ']') + if r == scanner.EOF { + return l.errorf("object reference not closed: eof") + } + l.backup() + l.emit(tObjectRef) + l.skip() // skip closing bracket + return lexHamlContent +} + +func lexHamlAttributesStart(l *lexer) lexFn { + l.skip() + return lexHamlAttribute +} + +func lexHamlAttributesEnd(l *lexer) lexFn { + l.skip() + return lexHamlContent +} + +func lexHamlAttribute(l *lexer) lexFn { + // supported attributes + // key + // key:value + // key?value + // @attributes: []any (string, map[string]string, map[string]bool) + + l.skipRun(", \t\n\r") + + switch l.peek() { + case '}': + return lexHamlAttributesEnd + case '@': + return lexHamlAttributeCommandStart + default: + return lexHamlAttributeName + } +} + +func lexHamlAttributeName(l *lexer) lexFn { + if l.peek() == '"' || l.peek() == '`' { + r := continueToMatchingQuote(l, tAttrName, false) + if r == scanner.EOF { + return l.errorf("attribute name not closed: eof") + } else if r != '"' && r != '`' { + return l.errorf("unexpected character: %q", r) + } + } else { + l.acceptUntil("?:,}{\" \t\n\r") + if l.current() == "" { + return l.errorf("attribute name expected") + } + l.emit(tAttrName) + } + + l.skipRun(" \t\n\r") + switch l.peek() { + case '?', ':': + return lexHamlAttributeOperator + case ',', '}': + return lexHamlAttributeEnd + default: + return l.errorf("unexpected character: %q", l.peek()) + } +} + +func lexHamlAttributeOperator(l *lexer) lexFn { + l.skipRun(" \t\n\r") + switch l.peek() { + case '?', ':': + l.next() + l.emit(tAttrOperator) + return lexHamlAttributeValue + } + return l.errorf("unexpected character: %q", l.peek()) +} + +func lexHamlAttributeValue(l *lexer) lexFn { + l.skipRun(" \t\n\r") + + switch l.peek() { + case '"', '`': + return lexHamlAttributeStaticValue + case '#': + return lexHamlAttributeDynamicValue + } + return l.errorf("unexpected character: %q", l.peek()) +} + +func lexHamlAttributeStaticValue(l *lexer) lexFn { + r := continueToMatchingQuote(l, tAttrEscapedValue, true) + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } else if r != '"' && r != '`' { + return l.errorf("unexpected character: %q", r) + } + return lexHamlAttributeEnd +} + +func lexHamlAttributeDynamicValue(l *lexer) lexFn { + l.skip() // skip hash + if l.peek() != '{' { + return l.errorf("unexpected character: %q", l.peek()) + } + l.skip() // skip opening brace + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } + l.backup() + l.emit(tAttrDynamicValue) + l.skip() // skip closing brace + return lexHamlAttributeEnd +} + +func lexHamlAttributeCommandStart(l *lexer) lexFn { + l.skipRun("@") + l.acceptUntil(": \t\n\r") + if l.current() == "" { + return l.errorf("command code expected") + } + switch l.current() { + case "attributes": + return lexHamlAttributeCommand(tAttributesCommand) + default: + return l.errorf("unknown attribute command: %s", l.current()) + } +} + +func lexHamlAttributeCommand(command tokenType) lexFn { + return func(l *lexer) lexFn { + l.ignore() + l.skipUntil(":") + l.skipUntil("{") + l.skip() // skip opening brace + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } + l.backup() + l.emit(command) + l.skip() // skip closing brace + + return lexHamlAttributeEnd + } +} + +func lexHamlAttributeEnd(l *lexer) lexFn { + l.skipRun(" \t\n\r") + switch l.peek() { + case ',': + l.skip() + return lexHamlAttribute + case '}': + return lexHamlAttributesEnd + default: + return l.errorf("unexpected character: %c", l.peek()) + } +} + +func lexHamlWhitespaceRemoval(l *lexer) lexFn { + direction := l.skip() + switch direction { + case '>': + l.emit(tNukeOuterWhitespace) + case '<': + l.emit(tNukeInnerWhitespace) + default: + return l.errorf("unexpected character: %q", direction) + } + return lexHamlContentEnd +} + +func lexHamlTextStart(l *lexer) lexFn { + l.skipRun(" \t") + return lexHamlTextContent +} + +func lexHamlTextContent(l *lexer) lexFn { + l.acceptUntil("\\#\n\r") + switch l.peek() { + case '\\': + isHashComing, err := l.peekAhead(2) + if err != nil { + return l.errorf("unexpected error: %s", err) + } + if isHashComing == "\\#" { + l.skip() + // was the backslash being escaped? + if !strings.HasSuffix(l.current(), "\\") { + l.next() + } + } else { + l.next() + } + return lexHamlTextContent + case '#': + return lexHamlDynamicText + default: + if l.current() != "" { + l.emit(tPlainText) + } + return lexHamlLineEnd + } +} + +func lexHamlDynamicText(l *lexer) lexFn { + if s, err := l.peekAhead(2); err != nil { + return l.errorf("unexpected error: %s", err) + } else if s != "#{" { + l.next() + return lexHamlTextContent + } + if l.current() != "" { + l.emit(tPlainText) + } + l.skipRun("#{") + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("dynamic text value was not closed: eof") + } + l.backup() + l.emit(tDynamicText) + l.skip() // skip closing brace + return lexHamlTextContent +} + +func lexHamlDoctype(l *lexer) lexFn { + l.skipRun("! ") + l.acceptUntil("\n\r") + l.emit(tDoctype) + return lexHamlLineEnd +} + +func lexHamlUnescaped(l *lexer) lexFn { + l.skip() + l.ignore() + l.emit(tUnescaped) + switch l.peek() { + case '=': + return lexHamlOutputCode + default: + return lexHamlTextStart + } +} + +func lexHamlSilentScript(l *lexer) lexFn { + l.skip() // eat dash + + // ruby style comment + if l.peek() == '#' { + // ignore the rest of the line + l.skipUntil("\n\r") + l.emit(tRubyComment) + return ignoreIndentedLines(l.indent+1, lexHamlLineStart) + } + + l.skipRun(" \t") + l.acceptUntil("\n\r") + // TODO: Support multiline silent scripts when they end with a backslash or comma + // example: + // - foo = bar \ + // + baz + // - foo = bigCall( \ + // bar, + // baz, + // ) + // Extended lines must be indented once. + // Additional indentation is captured and emitted with the script + l.emit(tSilentScript) + return lexHamlLineEnd +} + +func lexHamlOutputCode(l *lexer) lexFn { + l.skipRun("= \t") + switch l.peek() { + case '@': + return lexHamlCommandCode + default: + l.acceptUntil("\n\r") + // TODO: Support multiline output code when they end with a backslash or comma + // see the comments in lexHamlSilentScript + l.emit(tScript) + return lexHamlLineEnd + } +} + +func lexHamlComment(l *lexer) lexFn { + l.skipRun("/ \t") + l.acceptUntil("\n\r") + l.emit(tComment) + return lexHamlLineEnd +} + +func lexHamlVoidTag(l *lexer) lexFn { + l.skipRun("/ \t") + l.acceptUntil("\n\r") + if l.current() != "" { + l.ignore() + return l.errorf("self-closing tags can't have content") + } + l.emit(tVoidTag) + return lexHamlLineEnd +} + +func lexHamlCommandCode(l *lexer) lexFn { + l.skipRun("@") + l.acceptUntil("() \t\n\r") + if l.current() == "" { + return l.errorf("command code expected") + } + switch l.current() { + case "render": + l.acceptRun("() \t") + l.ignore() + l.acceptUntil("\n\r") + if l.current() == "" { + return l.errorf("render argument expected") + } + l.emit(tRenderCommand) + case "children": + l.acceptRun("() \t") + l.ignore() + l.acceptUntil("\n\r") + if l.current() != "" { + return l.errorf("children command does not accept arguments") + } + l.emit(tChildrenCommand) + } + l.skipRun("\n\r") + return lexHamlLineStart +} + +var hamlFilters = []string{"javascript", "css", "plain", "escaped", "preserve"} + +func lexHamlFilterStart(l *lexer) lexFn { + l.skipRun(": \t") + l.acceptUntil(" \t\n\r") + if l.current() == "" { + return l.errorf("filter name expected") + } + if !slices.Contains(hamlFilters, l.current()) { + return l.errorf("unknown filter: %s", l.current()) + } + filter := l.current() + l.emit(tFilterStart) + l.skipUntil("\n\r") // ignore the rest of the current line + l.skipRun("\n\r") // split so we don't consume the indent on the next line + + switch filter { + case "javascript", "css", "plain": + return lexHamlFilterLineStart(l.indent+1, tPlainText) + case "escaped": + return lexHamlFilterLineStart(l.indent+1, tEscapedText) + case "preserve": + return lexHamlFilterLineStart(l.indent+1, tPreserveText) + } + return lexHamlLineEnd +} + +func lexHamlFilterLineStart(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + switch l.peek() { + case ' ', '\t': + return lexHamlFilterIndent(indent, textType) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + l.emit(tFilterEnd) + return lexHamlLineStart + } + } +} + +func lexHamlFilterIndent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + var indents string + + // only accept the whitespace that belongs to the indent + var err error + + // peeking first, in case we've reached the end of the filter + indents, err = l.peekAhead(indent) + if err != nil { + return l.errorf("unexpected error while evaluating filter indents: %s", err) + } + + // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines + if len(strings.Trim(indents, "\t")) != 0 { + l.emit(tFilterEnd) + return lexHamlLineStart + } + + l.skipAhead(indent) + + return lexHamlFilterContent(indent, textType) + } +} + +func lexHamlFilterContent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + l.acceptUntil("#\n\r") + if l.peek() == '#' { + return lexHamlFilterDynamicText(textType, lexHamlFilterContent(indent, textType)) + } + l.acceptRun("\n\r") + if l.current() != "" { + l.emit(textType) + } + return lexHamlFilterLineStart(indent, textType) + } +} + +func lexHamlFilterDynamicText(textType tokenType, next lexFn) lexFn { + return func(l *lexer) lexFn { + if s, err := l.peekAhead(2); err != nil { + return l.errorf("unexpected error: %s", err) + } else if s != "#{" { + l.next() + return next + } + if l.current() != "" { + l.emit(textType) + } + l.skipRun("#{") + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("dynamic text value was not closed: eof") + } + l.backup() + l.emit(tDynamicText) + l.skip() // skip closing brace + return next + } +} diff --git a/compiler/lexers_slim.go b/compiler/lexers_slim.go new file mode 100644 index 0000000..59a2c72 --- /dev/null +++ b/compiler/lexers_slim.go @@ -0,0 +1,332 @@ +package compiler + +import ( + "slices" + "strings" + "text/scanner" +) + +func lexSlimLineStart(l *lexer) lexFn { + switch l.peek() { + case '}': + l.emit(tTemplateEnd) + l.skip() + return lexGoLineStart + case scanner.EOF: + l.emit(tEOF) + return nil + case '\n', '\r': + return lexSlimLineEnd + default: + return lexSlimIndent + } +} + +func lexSlimIndent(l *lexer) lexFn { + // accept spaces and tabs so that we can report about improper indentation + l.acceptRun(" \t") + indent := l.current() + + // there has not been any indentation yet + if l.indent == 0 && len(indent) == 0 { + // return an error that indents are required + return l.errorf("slim templates must be indented") + } + + // if len(indent) == 0 { + // l.indent = 0 + // l.emit(tIndent) + // return lexSlimContentStart + // } + + // validate the indent against the sequence and char + if lexSlimErr := l.validateIndent(indent); lexSlimErr != nil { + return lexSlimErr + } + + l.indent = len(l.current()) // useful for parsing filters + l.emit(tIndent) + return lexSlimContentStart +} + +func lexSlimContentStart(l *lexer) lexFn { + switch l.peek() { + case '#': + return lexSlimId + case '.': + return lexSlimClass + case '-': + return lexSlimControlCode + case '=': + return lexSlimOutputCode + case '/': + return lexSlimComment + case ':': + return lexSlimFilterStart + case '|': + return lexSlimTextBlock + case scanner.EOF, '\n', '\r': + return lexSlimLineEnd + default: + // if the next character is a letter, we're starting a tag + if isLetter(l.peek()) { + return lexSlimTag + } + return l.errorf("unexpected character: %q", l.peek()) + } +} + +func isLetter(r rune) bool { + return r >= 'a' && r <= 'z' || r >= 'A' && r <= 'Z' +} + +func lexSlimContent(l *lexer) lexFn { + switch l.peek() { + case '#': + return lexSlimId + case '.': + return lexSlimClass + case '[': + return lexSlimObjectReference + case '{': + return lexSlimAttributesStart + case '!': + return lexSlimUnescaped + case '-': + return lexSlimControlCode + case '=': + return lexSlimOutputCode + case '/': + return lexSlimVoidTag + case '>', '<': + return lexSlimWhitespaceAddition + case scanner.EOF, '\n', '\r': + return lexSlimLineEnd + default: + return lexSlimTextStart + } +} + +func lexSlimContentEnd(l *lexer) lexFn { + switch l.peek() { + case '=': + return lexSlimOutputCode + case '/': + return lexSlimVoidTag + case '>', '<': + return lexSlimWhitespaceAddition + case scanner.EOF, '\n', '\r': + return lexSlimLineEnd + default: + return lexSlimTextStart + } +} + +func lexSlimLineEnd(l *lexer) lexFn { + l.skipRun(" \t") + + switch l.peek() { + case '\n', '\r': + return lexSlimNewLine + case scanner.EOF: + l.emit(tEOF) + return nil + default: + return l.errorf("unexpected character: %q", l.peek()) + } +} + +func lexSlimNewLine(l *lexer) lexFn { + l.acceptRun("\n\r") + l.emit(tNewLine) + return lexSlimLineStart +} + +func slimIdentifier(typ tokenType, l *lexer) lexFn { + if typ != tTag { + l.skip() // eat symbol + } + + // these characters may follow an identifier + const mayFollowIdentifier = "#.{=!/<> \t\n\r" + + l.acceptUntil(mayFollowIdentifier) + if l.current() == "" { + return l.errorf("%s identifier expected", typ) + } + if l.current() == "doctype" { + l.emit(tDoctype) + l.skipUntil("\n\r") + return lexSlimLineEnd + } + l.emit(typ) + return lexSlimContent +} + +func lexSlimTag(l *lexer) lexFn { + return slimIdentifier(tTag, l) +} + +func lexSlimId(l *lexer) lexFn { + return slimIdentifier(tId, l) +} + +func lexSlimClass(l *lexer) lexFn { + return slimIdentifier(tClass, l) +} + +func lexSlimControlCode(l *lexer) lexFn { + l.skip() // eat dash + + l.skipRun(" \t") + l.acceptUntil("\n\r") + // TODO: Support multiline silent scripts when they end with a backslash or comma + // example: + // - foo = bar \ + // + baz + // - foo = bigCall( \ + // bar, + // baz, + // ) + // Extended lines must be indented once. + // Additional indentation is captured and emitted with the script + l.emit(tSilentScript) + return lexSlimLineEnd +} + +func lexSlimOutputCode(l *lexer) lexFn { + l.skip() // eat equals + // if next character is an equals sign, then this content is not escaped + if l.peek() == '=' { + l.skip() + l.emit(tUnescaped) + } + l.skipRun(" \t") + switch l.peek() { + case '@': + return lexSlimCommandCode + default: + l.acceptUntil("\n\r") + // TODO: Support multiline output code when they end with a backslash or comma + // see the comments in lexHamlSilentScript + l.emit(tScript) + return lexSlimLineEnd + } +} + +func lexSlimComment(l *lexer) lexFn { + l.skip() // eat slash + if l.peek() != '!' { + // ignore the rest of the line + l.skipUntil("\n\r") + l.emit(tRubyComment) + return ignoreIndentedLines(l.indent+1, lexHamlLineStart) + } + l.skip() // eat bang + l.skipRun(" \t") + l.acceptUntil("\n\r") + l.emit(tComment) + return lexSlimLineEnd +} + +var slimFilters = []string{"javascript", "css"} + +func lexSlimFilterStart(l *lexer) lexFn { + l.skipRun(": \t") + l.acceptUntil(" \t\n\r") + if l.current() == "" { + return l.errorf("filter name expected") + } + if !slices.Contains(slimFilters, l.current()) { + return l.errorf("unknown filter: %s", l.current()) + } + filter := l.current() + l.emit(tFilterStart) + l.skipUntil("\n\r") // ignore the rest of the current line + l.skipRun("\n\r") // split so we don't consume the indent on the next line + + switch filter { + case "javascript", "css": + return lexSlimFilterLineStart(l.indent+1, tPlainText) + } + return lexSlimLineEnd +} + +func lexSlimFilterLineStart(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + switch l.peek() { + case ' ', '\t': + return lexSlimFilterIndent(indent, textType) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + l.emit(tFilterEnd) + return lexSlimLineStart + } + } +} + +func lexSlimFilterIndent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + var indents string + + // only accept the whitespace that belongs to the indent + var err error + + // peeking first, in case we've reached the end of the filter + indents, err = l.peekAhead(indent) + if err != nil { + return l.errorf("unexpected error while evaluating filter indents: %s", err) + } + + // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines + if len(strings.Trim(indents, "\t")) != 0 { + l.emit(tFilterEnd) + return lexSlimLineStart + } + + l.skipAhead(indent) + + return lexSlimFilterContent(indent, textType) + } +} + +func lexSlimFilterContent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + l.acceptUntil("#\n\r") + // we have reached some interpolation as long as it wasn't escaped + if l.peek() == '#' && !strings.HasSuffix(l.current(), "\\") { + return lexSlimFilterDynamicText(textType, lexSlimFilterContent(indent, textType)) + } + l.acceptRun("\n\r") + if l.current() != "" { + l.emit(textType) + } + return lexSlimFilterLineStart(indent, textType) + } +} + +// lexSlimFilterDynamicText parses out dynamic text values within a filter block. +func lexSlimFilterDynamicText(textType tokenType, next lexFn) lexFn { + return func(l *lexer) lexFn { + if s, err := l.peekAhead(2); err != nil { + return l.errorf("unexpected error: %s", err) + } else if s != "#{" { + l.next() + return next + } + if l.current() != "" { + l.emit(textType) + } + l.skipRun("#{") + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("dynamic text value was not closed: eof") + } + l.backup() + l.emit(tDynamicText) + l.skip() // skip closing brace + return next + } +} diff --git a/compiler/nodes.go b/compiler/nodes.go index 81ca278..f70369f 100644 --- a/compiler/nodes.go +++ b/compiler/nodes.go @@ -19,6 +19,7 @@ const ( nRoot nGoCode nGoht + nTemplate nIndent nDoctype nElement @@ -43,6 +44,8 @@ func (n nodeType) String() string { return "GoCode" case nGoht: return "Goht" + case nTemplate: + return "Template" case nIndent: return "Indent" case nDoctype: @@ -203,6 +206,8 @@ func (n *node) handleNode(p *parser, indent int) error { } case tGohtEnd: return p.backToType(nGoht) + case tTemplateEnd: + return p.backToType(nTemplate) case tEOF: return n.errorf("template is incomplete: %s", p.peek()) case tError: @@ -310,6 +315,8 @@ func (n *RootNode) parse(p *parser) error { p.addNode(NewCodeNode(p.next())) case tGohtStart: p.addNode(NewGohtNode(p.next())) + case tTemplateStart: + p.addNode(NewTemplateNode(p.next())) case tEOF: p.next() return nil @@ -364,6 +371,73 @@ func (n *CodeNode) parse(p *parser) error { } } +type TemplateNode struct { + node + decl string +} + +func NewTemplateNode(t token) *TemplateNode { + return &TemplateNode{ + node: newNode(nTemplate, -1, t), + decl: t.lit, + } +} + +func (n *TemplateNode) Source(tw *templateWriter) error { + entry := ` goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children +` + exit := ` if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +}` + tw.ResetVarName() + if _, err := tw.Write("func "); err != nil { + return err + } + if r, err := tw.Write(n.decl); err != nil { + return err + } else { + tw.Add(n.origin, r) + } + if _, err := tw.Write(entry); err != nil { + return err + } + + itw := tw.Indent(2) + for _, c := range n.children { + if err := c.Source(itw); err != nil { + return err + } + } + if _, err := itw.Close(); err != nil { + return err + } + + _, err := tw.Write(exit) + return err +} + +func (n *TemplateNode) parse(p *parser) error { + switch p.peek().Type() { + case tTemplateEnd: + p.next() + return p.backToType(nRoot) + default: + return n.handleNode(p, 0) + } +} + type GohtNode struct { node decl string diff --git a/compiler/parser_test.go b/compiler/parser_test.go index fd33035..ab44988 100644 --- a/compiler/parser_test.go +++ b/compiler/parser_test.go @@ -5,13 +5,13 @@ import ( "testing" ) -func Test_GohtParsing(t *testing.T) { +func Test_Parsing(t *testing.T) { tests := map[string]struct { input string want string wantErr bool }{ - "full document": { + "full haml document": { input: `package testing var foo = "bar" @@ -56,6 +56,52 @@ var foo = "bar" Element p() Script GoCode +`, + }, + "full slim document": { + input: `package testing + +var foo = "bar" + +@slim test(title string, err error) { + doctype 5 + html + head + title= title + body + p some text #{foo} + #main-content + p= "Hello World" + - if err != nil + .error + p= "Something went wrong" +`, + want: `Root + GoCode + Slim + Doctype + NewLine + Element html() + NewLine + Element head() + NewLine + Element title() + Script + Element body() + NewLine + Element p() + Text(S) + Text(D) + Element div() + NewLine + Element p() + Script + SilentScript + Element div() + NewLine + Element p() + Script + GoCode `, }, } diff --git a/compiler/tokens.go b/compiler/tokens.go index 0671e5b..9227cf0 100644 --- a/compiler/tokens.go +++ b/compiler/tokens.go @@ -22,8 +22,12 @@ const ( tPackage tImport tGoCode + + // Template tokens tGohtStart tGohtEnd + tTemplateStart + tTemplateEnd // Goht/Haml tokens tDoctype @@ -75,6 +79,10 @@ func (t tokenType) String() string { return "GohtStart" case tGohtEnd: return "GohtEnd" + case tTemplateStart: + return "TemplateStart" + case tTemplateEnd: + return "TemplateEnd" case tDoctype: return "Doctype" case tTag: From 74c79196dd56d75d522f8f6a4717f626bd95b4f9 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Sat, 18 Jan 2025 22:03:23 -0700 Subject: [PATCH 2/4] slim wip --- compiler/lexer.go | 18 ++++---- compiler/lexer_test.go | 6 +-- compiler/lexers.go | 37 +++++++++++++-- compiler/lexers_haml.go | 32 ++++++------- compiler/lexers_slim.go | 71 ++++++++++++++++++++--------- examples/attributes/additional.goht | 6 +-- examples/attributes/classes.goht | 2 +- examples/attributes/general.goht | 22 ++++----- examples/attributes/names.goht | 22 ++++----- examples/attributes/optional.goht | 4 +- examples/commands/children.goht | 6 +-- examples/commands/render.goht | 10 ++-- examples/comments/html.goht | 10 ++-- examples/comments/rubystyle.goht | 12 ++--- examples/doctype/doctype.goht | 2 +- examples/filters/css.goht | 8 ++-- examples/filters/javascript.goht | 4 +- examples/filters/text.goht | 24 +++++----- examples/formatting/formats.goht | 44 +++++++++--------- examples/go/code.goht | 6 +-- examples/go/doc.goht | 2 +- examples/go/imports.goht | 2 +- examples/go/inlining.goht | 46 +++++++++---------- examples/go/interpolation.goht | 26 +++++------ examples/go/receivers.goht | 8 ++-- examples/hello/world.goht | 46 +++++++++---------- examples/indents/tabs.goht | 22 ++++----- examples/tags/general.goht | 20 ++++---- examples/tags/objectreference.goht | 6 +-- examples/tags/selfclosing.goht | 10 ++-- examples/tags/whitespace.goht | 22 ++++----- 31 files changed, 302 insertions(+), 254 deletions(-) diff --git a/compiler/lexer.go b/compiler/lexer.go index f23838c..5d40adf 100644 --- a/compiler/lexer.go +++ b/compiler/lexer.go @@ -82,7 +82,7 @@ func (l *lexer) peek() rune { } // peekAhead returns the next length runes without consuming them. -func (l *lexer) peekAhead(length int) (string, error) { +func (l *lexer) peekAhead(length int) string { width := 0 s := "" var err error @@ -96,14 +96,14 @@ func (l *lexer) peekAhead(length int) (string, error) { width += size s += string(ch) } - if err != nil && err != io.EOF { - return "", fmt.Errorf("failed to peek ahead: %v", err) - } - _, err = l.reader.Seek(int64(-width), io.SeekCurrent) - if err != nil { - return "", fmt.Errorf("failed to seek back: %v", err) - } - return s, nil + // if err != nil && err != io.EOF { + // return "", fmt.Errorf("failed to peek ahead: %v", err) + // } + _, _ = l.reader.Seek(int64(-width), io.SeekCurrent) + // if err != nil { + // return "", fmt.Errorf("failed to seek back: %v", err) + // } + return s } // ignore discards the current captured string. diff --git a/compiler/lexer_test.go b/compiler/lexer_test.go index 809885b..365d77c 100644 --- a/compiler/lexer_test.go +++ b/compiler/lexer_test.go @@ -193,11 +193,7 @@ func Test_LexerPeekAhead(t *testing.T) { for i := 0; i < tt.next; i++ { l.next() } - got, err := l.peekAhead(tt.length) - if err != nil { - t.Errorf("peekAhead: %v", err) - return - } + got := l.peekAhead(tt.length) if got != tt.want { t.Errorf("peekAhead: want %v, got %v", tt.want, got) return diff --git a/compiler/lexers.go b/compiler/lexers.go index 9edbde5..61fb85e 100644 --- a/compiler/lexers.go +++ b/compiler/lexers.go @@ -216,10 +216,10 @@ func ignoreIndentedLines(indent int, next lexFn) lexFn { l.skip() return ignoreIndentedLines(indent, next) case ' ', '\t': - priorIndents, err := l.peekAhead(indent) - if err != nil { - return l.errorf("unexpected error while evaluating indents: %s", err) - } + priorIndents := l.peekAhead(indent) + // if err != nil { + // return l.errorf("unexpected error while evaluating indents: %s", err) + // } if len(strings.TrimSpace(priorIndents)) != 0 { return next } @@ -237,3 +237,32 @@ func ignoreIndentedLines(indent int, next lexFn) lexFn { } } } + +func acceptIndentedLines(indent int, next lexFn) lexFn { + return func(l *lexer) lexFn { + switch l.peek() { + case '\n', '\r': + l.next() + return ignoreIndentedLines(indent, next) + case ' ', '\t': + priorIndents := l.peekAhead(indent) + // if err != nil { + // return l.errorf("unexpected error while evaluating indents: %s", err) + // } + if len(strings.TrimSpace(priorIndents)) != 0 { + return next + } + // validate we have the correct indents + if lexErr := l.validateIndent(priorIndents); lexErr != nil { + return lexErr + } + l.acceptUntil("\n\r") + return ignoreIndentedLines(indent, next) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + return next + } + } +} diff --git a/compiler/lexers_haml.go b/compiler/lexers_haml.go index dd68ff8..6e1be32 100644 --- a/compiler/lexers_haml.go +++ b/compiler/lexers_haml.go @@ -87,9 +87,7 @@ func lexHamlContentStart(l *lexer) lexFn { l.skip() return lexHamlTextStart case '!': - if s, err := l.peekAhead(3); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s == "!!!" { + if s := l.peekAhead(3); s == "!!!" { // TODO return an error if we're nesting doctypes return lexHamlDoctype } @@ -381,10 +379,10 @@ func lexHamlTextContent(l *lexer) lexFn { l.acceptUntil("\\#\n\r") switch l.peek() { case '\\': - isHashComing, err := l.peekAhead(2) - if err != nil { - return l.errorf("unexpected error: %s", err) - } + isHashComing := l.peekAhead(2) + // if err != nil { + // return l.errorf("unexpected error: %s", err) + // } if isHashComing == "\\#" { l.skip() // was the backslash being escaped? @@ -406,9 +404,7 @@ func lexHamlTextContent(l *lexer) lexFn { } func lexHamlDynamicText(l *lexer) lexFn { - if s, err := l.peekAhead(2); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s != "#{" { + if s := l.peekAhead(2); s != "#{" { l.next() return lexHamlTextContent } @@ -578,14 +574,14 @@ func lexHamlFilterIndent(indent int, textType tokenType) lexFn { return func(l *lexer) lexFn { var indents string - // only accept the whitespace that belongs to the indent - var err error + // // only accept the whitespace that belongs to the indent + // var err error // peeking first, in case we've reached the end of the filter - indents, err = l.peekAhead(indent) - if err != nil { - return l.errorf("unexpected error while evaluating filter indents: %s", err) - } + indents = l.peekAhead(indent) + // if err != nil { + // return l.errorf("unexpected error while evaluating filter indents: %s", err) + // } // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines if len(strings.Trim(indents, "\t")) != 0 { @@ -615,9 +611,7 @@ func lexHamlFilterContent(indent int, textType tokenType) lexFn { func lexHamlFilterDynamicText(textType tokenType, next lexFn) lexFn { return func(l *lexer) lexFn { - if s, err := l.peekAhead(2); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s != "#{" { + if s := l.peekAhead(2); s != "#{" { l.next() return next } diff --git a/compiler/lexers_slim.go b/compiler/lexers_slim.go index 59a2c72..e0ad24f 100644 --- a/compiler/lexers_slim.go +++ b/compiler/lexers_slim.go @@ -50,7 +50,7 @@ func lexSlimIndent(l *lexer) lexFn { } func lexSlimContentStart(l *lexer) lexFn { - switch l.peek() { + switch p := l.peek(); p { case '#': return lexSlimId case '.': @@ -69,10 +69,10 @@ func lexSlimContentStart(l *lexer) lexFn { return lexSlimLineEnd default: // if the next character is a letter, we're starting a tag - if isLetter(l.peek()) { + if isLetter(p) { return lexSlimTag } - return l.errorf("unexpected character: %q", l.peek()) + return l.errorf("unexpected character: %q", p) } } @@ -86,12 +86,8 @@ func lexSlimContent(l *lexer) lexFn { return lexSlimId case '.': return lexSlimClass - case '[': - return lexSlimObjectReference case '{': return lexSlimAttributesStart - case '!': - return lexSlimUnescaped case '-': return lexSlimControlCode case '=': @@ -214,19 +210,54 @@ func lexSlimOutputCode(l *lexer) lexFn { } } +func lexSlimTextStart(l *lexer) lexFn { + l.acceptUntil("#.{=!/<> \t\n\r") + if l.current() == "" { + return l.errorf("text expected") + } + l.emit(tPlainText) + return lexSlimContentEnd +} + func lexSlimComment(l *lexer) lexFn { l.skip() // eat slash if l.peek() != '!' { // ignore the rest of the line l.skipUntil("\n\r") l.emit(tRubyComment) - return ignoreIndentedLines(l.indent+1, lexHamlLineStart) + return ignoreIndentedLines(l.indent+1, lexSlimLineStart) } + // HTML comments in slim can be multiline + // The comment continues to the next line if: + // - the number of indents are the same + // - there is at least one more whitespace characters + // The additional whitespace characters are removed from the second+ lines if they are + // to the left of the first non-whitespace character on the first line. + // TODO: Testing appears that this is space based and when you use tabs for the additional whitespace, it doesn't work as expected. + // The '/' and '!' will both count as whitespace characters in this case. + // One additional whitespace character may follow the '!' character. + // This one additional whitespace character is removed from the first line + // and will allow the second+ lines to have one additional whitespace character. + // Example counts: + // "/!This is a comment" is 2 whitespace characters and up to 2 whitespace characters are removed from the second+ lines + // "/! This is a comment" is 3 whitespace characters and up to 3 whitespace characters are removed from the second+ lines + // "/! This is a comment" is 4 whitespace characters and only the first is removed and the second+ lines can have up to 3 whitespace characters + // We remove "up to" the count but do not require the count to be the same. (at least one whitespace character rule remains though) + // In practice, this means if the comments all start at the same column then they are considered to have no whitespace padding. + l.skip() // eat bang - l.skipRun(" \t") - l.acceptUntil("\n\r") - l.emit(tComment) - return lexSlimLineEnd + return lexSlimFilterLineStart(l.indent+1, tEscapedText) +} + +func lexSlimTextBlockLineStart(indent int, spaces int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + if l.peek() == '|' { + l.skip() + l.skipRun(" \t") + return lexSlimTextBlockContent(indent, spaces, textType) + } + return lexSlimLineEnd + } } var slimFilters = []string{"javascript", "css"} @@ -271,14 +302,14 @@ func lexSlimFilterIndent(indent int, textType tokenType) lexFn { return func(l *lexer) lexFn { var indents string - // only accept the whitespace that belongs to the indent - var err error + // // only accept the whitespace that belongs to the indent + // var err error // peeking first, in case we've reached the end of the filter - indents, err = l.peekAhead(indent) - if err != nil { - return l.errorf("unexpected error while evaluating filter indents: %s", err) - } + indents = l.peekAhead(indent) + // if err != nil { + // return l.errorf("unexpected error while evaluating filter indents: %s", err) + // } // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines if len(strings.Trim(indents, "\t")) != 0 { @@ -310,9 +341,7 @@ func lexSlimFilterContent(indent int, textType tokenType) lexFn { // lexSlimFilterDynamicText parses out dynamic text values within a filter block. func lexSlimFilterDynamicText(textType tokenType, next lexFn) lexFn { return func(l *lexer) lexFn { - if s, err := l.peekAhead(2); err != nil { - return l.errorf("unexpected error: %s", err) - } else if s != "#{" { + if s := l.peekAhead(2); s != "#{" { l.next() return next } diff --git a/examples/attributes/additional.goht b/examples/attributes/additional.goht index 0e074a2..7f3d298 100644 --- a/examples/attributes/additional.goht +++ b/examples/attributes/additional.goht @@ -17,7 +17,7 @@ var strAttrs = map[string]string{ } @goht AttributesCmd() { -%input{ - @attributes: #{boolAttrs, strAttrs}, -} + %input{ + @attributes: #{boolAttrs, strAttrs}, + } } diff --git a/examples/attributes/classes.goht b/examples/attributes/classes.goht index b8268c5..04894ec 100644 --- a/examples/attributes/classes.goht +++ b/examples/attributes/classes.goht @@ -24,5 +24,5 @@ var myOptionalClasses = map[string]bool{ } @goht Classes() { -%p.fizz.buzz{class: #{myClassList, myOptionalClasses}} + %p.fizz.buzz{class: #{myClassList, myOptionalClasses}} } diff --git a/examples/attributes/general.goht b/examples/attributes/general.goht index 2fa1013..bcdb955 100644 --- a/examples/attributes/general.goht +++ b/examples/attributes/general.goht @@ -6,7 +6,7 @@ package attributes // by Go for maps. @goht StaticAttrs() { -%p{class: "foo", id: "bar"} This is a paragraph. + %p{class: "foo", id: "bar"} This is a paragraph. } // You can also use dynamic values for your attributes. Dynamic attribute @@ -16,7 +16,7 @@ package attributes var myDynamicValue = "foo" @goht DynamicAttrs() { -%p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. + %p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. } // There are times when you have a lot of attributes and you want to keep @@ -26,20 +26,20 @@ var myDynamicValue = "foo" // not required. @goht MultilineAttrs() { -%p{ - class: #{myDynamicValue}, - id: "bar", -} This is a paragraph. + %p{ + class: #{myDynamicValue}, + id: "bar", + } This is a paragraph. } // You may include as much whitespace as you wish between the attribute, // operator, value, and attribute separator. The following are all valid. @goht WhitespaceAttrs() { -%p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. -%p{class:#{myDynamicValue},id:"bar"} This is a paragraph. -%p{class: #{myDynamicValue},id: "bar"} This is a paragraph. -%p{class :#{myDynamicValue}, id : "bar"} This is a paragraph. + %p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. + %p{class:#{myDynamicValue},id:"bar"} This is a paragraph. + %p{class: #{myDynamicValue},id: "bar"} This is a paragraph. + %p{class :#{myDynamicValue}, id : "bar"} This is a paragraph. } // The dynamic attribute values may also include formatting rules just like @@ -49,5 +49,5 @@ var myDynamicValue = "foo" var intVar = 10 @goht FormattedValue() { -%textarea{rows: #{%d intVar}, cols: "80"} + %textarea{rows: #{%d intVar}, cols: "80"} } diff --git a/examples/attributes/names.goht b/examples/attributes/names.goht index 119d020..8377738 100644 --- a/examples/attributes/names.goht +++ b/examples/attributes/names.goht @@ -6,12 +6,12 @@ package attributes // underscores (_) are all acceptable as-is. @goht SimpleNames() { -%a{ - href: "https://github.com/stackus/goht", - data-foo: "bar", - odd_name: "baz", - _: "I'm a _hyperscript attribute!" -} Goht + %a{ + href: "https://github.com/stackus/goht", + data-foo: "bar", + odd_name: "baz", + _: "I'm a _hyperscript attribute!" + } Goht } // For more complex names, such as data attributes, you can use @@ -22,9 +22,9 @@ package attributes // The names will be rendered into the HTML without the quotes. @goht ComplexNames() { -%a{ - href: "https://github.com/stackus/goht", - `:class`: "show ? '' : 'hidden'", - `@click`: "show = !show", -} Goht + %a{ + href: "https://github.com/stackus/goht", + `:class`: "show ? '' : 'hidden'", + `@click`: "show = !show", + } Goht } diff --git a/examples/attributes/optional.goht b/examples/attributes/optional.goht index d31ec0d..81117b1 100644 --- a/examples/attributes/optional.goht +++ b/examples/attributes/optional.goht @@ -15,6 +15,6 @@ var disabled = true var foo = "bar" @goht ConditionalAttrs() { -%button{disabled? #{disabled}} Click me! -%button{disabled? #{foo == "bar"}} Click me! + %button{disabled? #{disabled}} Click me! + %button{disabled? #{foo == "bar"}} Click me! } diff --git a/examples/commands/children.goht b/examples/commands/children.goht index a3a24d4..e4b613d 100644 --- a/examples/commands/children.goht +++ b/examples/commands/children.goht @@ -11,7 +11,7 @@ package commands // code syntax `=`. @goht ChildrenExample() { -%p - The following was passed in from the calling template: - = @children + %p + The following was passed in from the calling template: + = @children } diff --git a/examples/commands/render.goht b/examples/commands/render.goht index 4c09a73..81d8242 100644 --- a/examples/commands/render.goht +++ b/examples/commands/render.goht @@ -6,8 +6,8 @@ package commands // code syntax `=`. @goht RenderExample() { -%p= @render ChildrenExample() -%p the other template was rendered above. + %p= @render ChildrenExample() + %p the other template was rendered above. } // You may also include nested content to be rendered by the template. @@ -15,7 +15,7 @@ package commands // are passing content on to be rendered by another template. @goht RenderWithChildrenExample() { -%p The other template will be rendered below. -= @render ChildrenExample() - %span this content will be rendered by the other template. + %p The other template will be rendered below. + = @render ChildrenExample() + %span this content will be rendered by the other template. } diff --git a/examples/comments/html.goht b/examples/comments/html.goht index 9d73e07..859d5bb 100644 --- a/examples/comments/html.goht +++ b/examples/comments/html.goht @@ -6,8 +6,8 @@ package comments // of the line @goht HtmlComments() { -%p This is a paragraph -/ This is a HTML comment + %p This is a paragraph + / This is a HTML comment } // You may also use them to comment out nested elements. This does @@ -15,7 +15,7 @@ package comments // displayed. @goht HtmlCommentsNested() { -%p This is a paragraph -/ - %p This is a paragraph that is commented out + %p This is a paragraph + / + %p This is a paragraph that is commented out } diff --git a/examples/comments/rubystyle.goht b/examples/comments/rubystyle.goht index 96c5928..a9376f7 100644 --- a/examples/comments/rubystyle.goht +++ b/examples/comments/rubystyle.goht @@ -10,16 +10,16 @@ package comments // output. @goht RubyStyle() { -%p This is the only paragraph in the output. --# %p This comment is removed from the output. + %p This is the only paragraph in the output. + -# %p This comment is removed from the output. } // Ruby style comments can also be nested. @goht RubyStyleNested() { -%p This is the only paragraph in the output. --# - %p This paragraph is removed. - %%% broken syntax is no problem. + %p This is the only paragraph in the output. + -# + %p This paragraph is removed. + %%% broken syntax is no problem. } diff --git a/examples/doctype/doctype.goht b/examples/doctype/doctype.goht index a40b432..ff767f7 100644 --- a/examples/doctype/doctype.goht +++ b/examples/doctype/doctype.goht @@ -3,5 +3,5 @@ package doctype // Adds a doctype to the top of the page // HTML5 doctype is the default @goht Doctype() { -!!! + !!! } diff --git a/examples/filters/css.goht b/examples/filters/css.goht index 1ac215b..1404b27 100644 --- a/examples/filters/css.goht +++ b/examples/filters/css.goht @@ -6,8 +6,8 @@ package filters var color = "red" @goht Css() { -:css - .color { - color: #{color}; - } + :css + .color { + color: #{color}; + } } diff --git a/examples/filters/javascript.goht b/examples/filters/javascript.goht index d0556c5..5cf2b5b 100644 --- a/examples/filters/javascript.goht +++ b/examples/filters/javascript.goht @@ -7,6 +7,6 @@ package filters var name = "Bob" @goht JavaScript() { -:javascript - console.log("Hello #{name}!"); + :javascript + console.log("Hello #{name}!"); } diff --git a/examples/filters/text.goht b/examples/filters/text.goht index db8abf0..bcd3a95 100644 --- a/examples/filters/text.goht +++ b/examples/filters/text.goht @@ -6,22 +6,22 @@ package filters // Variable interpolation is still performed. @goht Plain() { -%p - :plain - This is plain text. It
will
be displayed as HTML. - #{"This
\"will\"
be interpolated with HTML intact."} + %p + :plain + This is plain text. It
will
be displayed as HTML. + #{"This
\"will\"
be interpolated with HTML intact."} } @goht Escaped() { -%p - :escaped - This is escaped text. It
will not
be displayed as HTML. - #{"This
\"will not\"
be interpolated with HTML intact."} + %p + :escaped + This is escaped text. It
will not
be displayed as HTML. + #{"This
\"will not\"
be interpolated with HTML intact."} } @goht Preserve() { -%p - :preserve - This is preserved text. It
will
be displayed as HTML. - #{"This
\"will\"
be interpolated with HTML intact."} + %p + :preserve + This is preserved text. It
will
be displayed as HTML. + #{"This
\"will\"
be interpolated with HTML intact."} } diff --git a/examples/formatting/formats.goht b/examples/formatting/formats.goht index 7ab44d1..5cc00fe 100644 --- a/examples/formatting/formats.goht +++ b/examples/formatting/formats.goht @@ -15,35 +15,35 @@ var boolVar = true var stringVar = "Hello" @goht IntExample() { -%p The integer is (#{%d intVar}). -%p The integer is (#{%b intVar}) in binary. -%p The integer is (#{%o intVar}) in octal. -%p The integer is (#{%x intVar}) in hex. -%p The integer is (#{%X intVar}) in hex with uppercase. -%p The integer is (#{%c intVar}) as a character. + %p The integer is (#{%d intVar}). + %p The integer is (#{%b intVar}) in binary. + %p The integer is (#{%o intVar}) in octal. + %p The integer is (#{%x intVar}) in hex. + %p The integer is (#{%X intVar}) in hex with uppercase. + %p The integer is (#{%c intVar}) as a character. } @goht FloatExample() { -%p The float is (#{%f floatVar}). -%p The float is (#{%e floatVar}) in scientific notation. -%p The float is (#{%.2f floatVar}) with 2 decimal places. -%p The float is (#{%9.2f floatVar}) with 2 decimal places and padded to 9 characters. -%p The float is (#{%-9.2f floatVar}) with 2 decimal places and padded to 9 characters and left aligned. -%p The float is (#{%09.2f floatVar}) with 2 decimal places and padded to 9 characters with 0s. + %p The float is (#{%f floatVar}). + %p The float is (#{%e floatVar}) in scientific notation. + %p The float is (#{%.2f floatVar}) with 2 decimal places. + %p The float is (#{%9.2f floatVar}) with 2 decimal places and padded to 9 characters. + %p The float is (#{%-9.2f floatVar}) with 2 decimal places and padded to 9 characters and left aligned. + %p The float is (#{%09.2f floatVar}) with 2 decimal places and padded to 9 characters with 0s. } @goht BoolExample() { -%p The bool is (#{%t boolVar}). + %p The bool is (#{%t boolVar}). } @goht StringExample() { -%p The string is (#{stringVar}). Strings do not require any additional formatting. -%p The string is (#{%q stringVar}) quoted. -%p The string is (#{%x stringVar}) as hex. -%p The string is (#{%X stringVar}) as hex with uppercase. -%p The string is (#{%s stringVar}) as is. -%p The string is (#{%.4s stringVar}), truncated to 4 characters. -%p The string is (#{%6s stringVar}), padded to 6 characters. -%p The string is (#{%6.4s stringVar}), truncated to 4 characters and padded to 6 characters. -%p The string is (#{%6.4q stringVar}), truncated to 4 characters and padded to 6 characters and quoted. + %p The string is (#{stringVar}). Strings do not require any additional formatting. + %p The string is (#{%q stringVar}) quoted. + %p The string is (#{%x stringVar}) as hex. + %p The string is (#{%X stringVar}) as hex with uppercase. + %p The string is (#{%s stringVar}) as is. + %p The string is (#{%.4s stringVar}), truncated to 4 characters. + %p The string is (#{%6s stringVar}), padded to 6 characters. + %p The string is (#{%6.4s stringVar}), truncated to 4 characters and padded to 6 characters. + %p The string is (#{%6.4q stringVar}), truncated to 4 characters and padded to 6 characters and quoted. } diff --git a/examples/go/code.goht b/examples/go/code.goht index 4da42bd..079d227 100644 --- a/examples/go/code.goht +++ b/examples/go/code.goht @@ -10,10 +10,10 @@ func sayHello() string { } @goht ExecuteCode() { -- foo := sayHello() -%p= foo + - foo := sayHello() + %p= foo } @goht RenderCode() { -%p= sayHello() + %p= sayHello() } diff --git a/examples/go/doc.goht b/examples/go/doc.goht index e972a03..c70ae80 100644 --- a/examples/go/doc.goht +++ b/examples/go/doc.goht @@ -2,5 +2,5 @@ package example @goht Doc() { -.doc An example of package documentation. + .doc An example of package documentation. } diff --git a/examples/go/imports.goht b/examples/go/imports.goht index 4b5493f..d089671 100644 --- a/examples/go/imports.goht +++ b/examples/go/imports.goht @@ -13,5 +13,5 @@ import ( // will be removed. @goht ImportExample() { -%p= fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")) + %p= fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")) } diff --git a/examples/go/inlining.goht b/examples/go/inlining.goht index a4d154f..31224e8 100644 --- a/examples/go/inlining.goht +++ b/examples/go/inlining.goht @@ -6,14 +6,14 @@ package example var isAdmin = true @goht Conditional() { -.actions - - if isAdmin { - %button< - Edit content - - } else { - %button Login - - } - %button View content + .actions + - if isAdmin { + %button< + Edit content + - } else { + %button Login + - } + %button View content } // However, we are using Haml and so we're into shortcuts. We can @@ -25,13 +25,13 @@ var isAdmin = true // for, if, else, else if, switch @goht ShorthandConditional() { -.actions - - if isAdmin - %button< - Edit content - - else - %button Login - %button View content + .actions + - if isAdmin + %button< + Edit content + - else + %button Login + %button View content } // With a switch statement, we can use the case and default keywords @@ -39,12 +39,12 @@ var isAdmin = true // shorthand syntax. (win some, lose some) @goht ShorthandSwitch() { -.actions - - switch isAdmin - - case true: - %button< - Edit content - - case false: - %button Login - %button View content + .actions + - switch isAdmin + - case true: + %button< + Edit content + - case false: + %button Login + %button View content } diff --git a/examples/go/interpolation.goht b/examples/go/interpolation.goht index 7c86477..34f951a 100644 --- a/examples/go/interpolation.goht +++ b/examples/go/interpolation.goht @@ -6,14 +6,14 @@ package example var someVar = "Hello" @goht InterpolateCode() { -%p #{someVar}, World! + %p #{someVar}, World! } // Interpolation is not done within Go code or within a string literal. @goht NoInterpolation() { -%p Do the following; No interpolation is necessary. -%p= someVar + ", World!" -%p= "No interpolation is #{performed} here." + %p Do the following; No interpolation is necessary. + %p= someVar + ", World!" + %p= "No interpolation is #{performed} here." } // Because the interpolation and tag id share the same starting character, @@ -23,8 +23,8 @@ var someVar = "Hello" // when it is the first character of text following a tag. @goht EscapeInterpolation() { -\#{someVar}, World! -%p #{someVar}, World! + \#{someVar}, World! + %p #{someVar}, World! } // There are also times when you want to ignore the interpolation and just @@ -42,11 +42,11 @@ var someVar = "Hello" // will render as "#{someVar}" in the final HTML. @goht IgnoreInterpolation() { -\\#{someVar}, World! -%p - \\#{someVar}, World! -A greeting: \#{someVar}, World! -\. this line begins with a period -\# this line begins with a hash -\% this line begins with a percent + \\#{someVar}, World! + %p + \\#{someVar}, World! + A greeting: \#{someVar}, World! + \. this line begins with a period + \# this line begins with a hash + \% this line begins with a percent } diff --git a/examples/go/receivers.goht b/examples/go/receivers.goht index dcf8547..b7e61ff 100644 --- a/examples/go/receivers.goht +++ b/examples/go/receivers.goht @@ -17,8 +17,8 @@ type User struct { // @render u.Details() @goht (u User) Details() { -.name User name: #{u.Name} -.age - User Age: - !=%d u.Age + .name User name: #{u.Name} + .age + User Age: + !=%d u.Age } diff --git a/examples/hello/world.goht b/examples/hello/world.goht index 49b22ec..5eac69c 100644 --- a/examples/hello/world.goht +++ b/examples/hello/world.goht @@ -4,30 +4,30 @@ package hello var terms = []string{"foo", "bar", "baz", "fizz", "buzz", "quux"} @goht termsWrapper(term string) { -%p=@children -%p And it was passed in as well #{term} + %p=@children + %p And it was passed in as well #{term} } @goht World() { -!!! -%html{lang: "en"} - %head - %meta{charset: "utf-8"} - %title Hello World - :css - body { - color: white; - font-family: sans-serif; - background-color: #333; - } - .term { - font-weight: bold; - color: #99f; - } - %body - %h1 Hello World - %p the following will loop a slice of strings and will pass each string into a child template - - for _, term := range terms - =@render termsWrapper(term) - %p.term= term + !!! + %html{lang: "en"} + %head + %meta{charset: "utf-8"} + %title Hello World + :css + body { + color: white; + font-family: sans-serif; + background-color: #333; + } + .term { + font-weight: bold; + color: #99f; + } + %body + %h1 Hello World + %p the following will loop a slice of strings and will pass each string into a child template + - for _, term := range terms + =@render termsWrapper(term) + %p.term= term } diff --git a/examples/indents/tabs.goht b/examples/indents/tabs.goht index b5a9606..8008422 100644 --- a/examples/indents/tabs.goht +++ b/examples/indents/tabs.goht @@ -8,15 +8,15 @@ package indents // spaces in another. @goht UsingTabs() { -!!! -%html{lang: "en"} - %head - %meta{charset: "utf-8"} - %title - Hello World - %body - %h1 - Hello World - %p - Hello World + !!! + %html{lang: "en"} + %head + %meta{charset: "utf-8"} + %title + Hello World + %body + %h1 + Hello World + %p + Hello World } diff --git a/examples/tags/general.goht b/examples/tags/general.goht index facdc6d..edaa5d2 100644 --- a/examples/tags/general.goht +++ b/examples/tags/general.goht @@ -2,26 +2,26 @@ package tags // You may specify the type of tag that you want created with `%`. @goht SpecifyTag() { -%p This is a paragraph tag. -%main This is a main tag. + %p This is a paragraph tag. + %main This is a main tag. } // You may also let the tag default to a `div` when using the id or // class syntax's, `#` and `.` respectively. @goht DefaultToDivs() { -#main This is a div tag with an id of `main`. -.main This is a div tag with a class of `main`. + #main This is a div tag with an id of `main`. + .main This is a div tag with a class of `main`. } // The three may also be combined. The `%` must come first, followed // by either the `#` or `.`. The `#` and `.` may be in any order. @goht Combined() { -%p#main This is a paragraph tag with an id of `main`. -%main.main This is a main tag with a class of `main`. -.main#main This is a div tag with an id and class of `main`. -%p.main#main This is a paragraph tag with an id and class of `main`. + %p#main This is a paragraph tag with an id of `main`. + %main.main This is a main tag with a class of `main`. + .main#main This is a div tag with an id and class of `main`. + %p.main#main This is a paragraph tag with an id and class of `main`. } // The class operator may be repeated to add multiple classes. @@ -29,6 +29,6 @@ package tags // but will not throw an error. @goht MultipleClasses() { -.main.main2 This is a div tag with two classes, `main` and `main2`. -#main#main2 This is a div tag with an id of `main2`. + .main.main2 This is a div tag with two classes, `main` and `main2`. + #main#main2 This is a div tag with an id of `main2`. } diff --git a/examples/tags/objectreference.goht b/examples/tags/objectreference.goht index 29362cb..1165b56 100644 --- a/examples/tags/objectreference.goht +++ b/examples/tags/objectreference.goht @@ -25,13 +25,13 @@ func (f *Foo) ObjectClass() string { //
Foo article
@goht ObjectRefs(obj Foo) { -%article[obj] Foo article + %article[obj] Foo article } // You may include a prefix to be used with the id and class. var prefixVar = "article" @goht PrefixedObjectRefs(obj Foo) { -%article[obj, "prefix"] Foo article with id "prefix_foo_bar" and class "prefix_foo" -%article[obj, prefixVar] Foo article with id "article_foo_bar" and class "article_foo" + %article[obj, "prefix"] Foo article with id "prefix_foo_bar" and class "prefix_foo" + %article[obj, prefixVar] Foo article with id "article_foo_bar" and class "article_foo" } diff --git a/examples/tags/selfclosing.goht b/examples/tags/selfclosing.goht index e6f8928..b673e17 100644 --- a/examples/tags/selfclosing.goht +++ b/examples/tags/selfclosing.goht @@ -8,10 +8,10 @@ package tags // to display an error. @goht SelfClosing() { -%img{src: "logo.png", alt: "logo"} -%p - A paragraph is not self closing. - %img{src: "logo.png", alt: "logo"} + %img{src: "logo.png", alt: "logo"} + %p + A paragraph is not self closing. + %img{src: "logo.png", alt: "logo"} } // You may also use the self closing tag syntax to create a tag @@ -25,5 +25,5 @@ package tags // "meta", "param", "source", "track", "wbr", @goht AlsoSelfClosing() { -%isNowSelfClosing/ + %isNowSelfClosing/ } diff --git a/examples/tags/whitespace.goht b/examples/tags/whitespace.goht index a01ec4c..b083be6 100644 --- a/examples/tags/whitespace.goht +++ b/examples/tags/whitespace.goht @@ -17,10 +17,10 @@ package tags // rendered HTML, so it is important to understand how it works. @goht Whitespace() { -%p This text has no whitespace between it and the tag. -%p - This text has whitespace between it and the tag. - %p This tag has whitespace between it and the tag above. + %p This text has no whitespace between it and the tag. + %p + This text has whitespace between it and the tag. + %p This tag has whitespace between it and the tag above. } // You can control the whitespace that will be rendered between tags @@ -33,12 +33,12 @@ package tags // both, the order does not matter. @goht RemoveWhitespace() { -%p< - This text has no whitespace between it and the parent tag. -%p - There is whitespace between this text and the parent tag. - %p>< + %p< This text has no whitespace between it and the parent tag. - There is also no whitespace between this tag and the sibling text above it. - Finally, the tag has no whitespace between it and the outer tag. + %p + There is whitespace between this text and the parent tag. + %p>< + This text has no whitespace between it and the parent tag. + There is also no whitespace between this tag and the sibling text above it. + Finally, the tag has no whitespace between it and the outer tag. } From 81b95aa28cf02ea3ae0955e0ff83bc89a100ffe1 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Fri, 25 Apr 2025 21:21:24 -0600 Subject: [PATCH 3/4] Slim templating added --- .gitignore | 1 + .version | 2 +- README.md | 168 +- compiler/lexer.go | 9 +- compiler/lexer_test.go | 1618 ++++++++++++++--- compiler/lexers.go | 2 + compiler/lexers_haml.go | 43 +- compiler/lexers_slim.go | 444 ++++- compiler/nodes.go | 87 +- compiler/{parser_test.go => nodes_test.go} | 101 +- compiler/testdata/attributes.goht.go | 4 +- compiler/testdata/comments.goht.go | 2 +- compiler/testdata/conditionals.goht.go | 2 +- compiler/testdata/elements.goht.go | 2 +- compiler/testdata/filters.goht.go | 2 +- compiler/testdata/imports.goht.go | 2 +- compiler/testdata/interpolation.goht.go | 2 +- compiler/testdata/newlines.goht.go | 2 +- compiler/testdata/obj_references.goht.go | 2 +- compiler/testdata/package.goht.go | 2 +- compiler/testdata/rendering.goht.go | 2 +- compiler/testdata/whitespace.goht.go | 2 +- compiler/tokens.go | 10 +- compiler/tokens_test.go | 8 - docs/goht_header_html.png | Bin 0 -> 914978 bytes examples/attributes/additional.goht | 12 + examples/attributes/additional.goht.go | 64 +- examples/attributes/classes.goht | 8 + examples/attributes/classes.goht.go | 62 + examples/attributes/general.goht | 52 + examples/attributes/general.goht.go | 344 ++++ examples/attributes/names.goht | 34 + examples/attributes/names.goht.go | 80 + examples/attributes/optional.goht | 10 + examples/attributes/optional.goht.go | 72 + examples/commands/children.goht | 12 + examples/commands/children.goht.go | 52 + examples/commands/render.goht | 22 + examples/commands/render.goht.go | 126 ++ examples/comments/html.goht | 25 + examples/comments/html.goht.go | 83 + examples/comments/rubystyle.goht | 28 +- examples/comments/rubystyle.goht.go | 85 +- examples/doctype/doctype.goht | 8 + examples/doctype/doctype.goht.go | 40 + examples/examples_test.go | 346 +++- examples/filters/css.goht | 14 + examples/filters/css.goht.go | 64 +- examples/filters/javascript.goht | 10 + examples/filters/javascript.goht.go | 62 +- examples/filters/text.goht | 21 + examples/filters/text.goht.go | 102 +- examples/formatting/formats.goht | 68 + examples/formatting/formats.goht.go | 610 ++++++- examples/go/code.goht | 18 + examples/go/code.goht.go | 122 ++ examples/go/doc.goht | 8 + examples/go/doc.goht.go | 40 + examples/go/imports.goht | 8 + examples/go/imports.goht.go | 60 + examples/go/inlining.goht | 92 + examples/go/inlining.goht.go | 248 ++- examples/go/interpolation.goht | 35 + examples/go/interpolation.goht.go | 197 ++ examples/go/package.goht | 1 - examples/go/receivers.goht | 14 + examples/go/receivers.goht.go | 80 + examples/hello/world.goht | 58 + examples/hello/world.goht.go | 180 +- examples/indents/tabs.goht | 28 + examples/indents/tabs.goht.go | 40 + examples/tags/general.goht | 44 + examples/tags/general.goht.go | 160 ++ examples/tags/inline.goht | 11 + examples/tags/inline.goht.go | 31 + examples/tags/objectreference.goht | 9 + examples/tags/objectreference.goht.go | 88 + examples/tags/selfclosing.goht | 22 + examples/tags/selfclosing.goht.go | 80 + examples/tags/whitespace.goht | 38 + examples/tags/whitespace.goht.go | 80 + .../testdata/attributes_attributesCmd.html | 1 - examples/testdata/filters_preserve.html | 3 - .../haml/attributes_attributesCmd.html | 1 + .../{ => haml}/attributes_classes.html | 0 .../{ => haml}/attributes_complexNames.html | 0 .../attributes_conditionalAttrs.html | 0 .../{ => haml}/attributes_dynamicAttrs.html | 0 .../{ => haml}/attributes_formattedValue.html | 0 .../{ => haml}/attributes_multilineAttrs.html | 0 .../{ => haml}/attributes_simpleNames.html | 0 .../{ => haml}/attributes_staticAttrs.html | 0 .../attributes_whitespaceAttrs.html | 0 .../{ => haml}/commands_childrenExample.html | 0 .../{ => haml}/commands_renderExample.html | 0 .../commands_renderWithChildrenExample.html | 0 .../{ => haml}/comments_htmlComments.html | 0 .../comments_htmlCommentsNested.html | 0 .../{ => haml}/comments_rubyStyle.html | 0 .../{ => haml}/comments_rubyStyleNested.html | 0 .../testdata/{ => haml}/doctype_doctype.html | 0 .../{ => haml}/example_conditional.html | 0 examples/testdata/{ => haml}/example_doc.html | 0 .../example_escapeInterpolation.html | 0 .../{ => haml}/example_executeCode.html | 0 .../example_ignoreInterpolation.html | 0 .../{ => haml}/example_importExample.html | 0 .../{ => haml}/example_interpolateCode.html | 0 .../{ => haml}/example_noInterpolation.html | 0 .../{ => haml}/example_packageExample.html | 0 .../{ => haml}/example_renderCode.html | 0 .../example_shorthandConditional.html | 0 .../{ => haml}/example_shorthandSwitch.html | 0 .../{ => haml}/example_userDetails.html | 0 examples/testdata/{ => haml}/filters_css.html | 0 .../testdata/{ => haml}/filters_escaped.html | 0 .../{ => haml}/filters_javascript.html | 0 .../testdata/{ => haml}/filters_plain.html | 0 examples/testdata/haml/filters_preserve.html | 3 + .../{ => haml}/formatting_boolExample.html | 0 .../{ => haml}/formatting_floatExample.html | 0 .../{ => haml}/formatting_intExample.html | 0 .../{ => haml}/formatting_stringExample.html | 0 examples/testdata/{ => haml}/hello_world.html | 0 .../{ => haml}/indents_usingTabs.html | 0 .../{ => haml}/tags_alsoSelfClosing.html | 0 .../testdata/{ => haml}/tags_combined.html | 0 .../{ => haml}/tags_defaultToDivs.html | 0 .../{ => haml}/tags_multipleClasses.html | 0 .../testdata/{ => haml}/tags_objectRefs.html | 0 .../{ => haml}/tags_prefixedObjectRefs.html | 0 .../{ => haml}/tags_removeWhitespace.html | 0 .../testdata/{ => haml}/tags_selfClosing.html | 0 .../testdata/{ => haml}/tags_specifyTag.html | 0 .../testdata/{ => haml}/tags_whitespace.html | 0 .../testdata/haml/unescape_unescapeCode.html | 2 + .../haml/unescape_unescapeInterpolation.html | 2 + .../{ => haml}/unescape_unescapeText.html | 0 examples/testdata/indents_usingSpaces.html | 13 - .../slim/attributes_attributesCmd.html | 1 + .../testdata/slim/attributes_classes.html | 1 + .../slim/attributes_complexNames.html | 1 + .../slim/attributes_conditionalAttrs.html | 2 + .../slim/attributes_dynamicAttrs.html | 1 + .../slim/attributes_formattedValue.html | 1 + .../slim/attributes_multilineAttrs.html | 1 + .../testdata/slim/attributes_simpleNames.html | 1 + .../testdata/slim/attributes_staticAttrs.html | 1 + .../slim/attributes_whitespaceAttrs.html | 4 + .../slim/commands_childrenExample.html | 3 + .../testdata/slim/commands_renderExample.html | 5 + .../commands_renderWithChildrenExample.html | 5 + .../testdata/slim/comments_htmlComments.html | 2 + .../slim/comments_htmlCommentsNested.html | 3 + .../testdata/slim/comments_rubyStyle.html | 1 + .../slim/comments_rubyStyleNested.html | 1 + examples/testdata/slim/doctype_doctype.html | 1 + .../testdata/slim/example_conditional.html | 6 + examples/testdata/slim/example_doc.html | 1 + .../slim/example_escapeInterpolation.html | 2 + .../testdata/slim/example_executeCode.html | 1 + .../slim/example_ignoreInterpolation.html | 8 + .../testdata/slim/example_importExample.html | 1 + .../slim/example_interpolateCode.html | 1 + .../slim/example_noInterpolation.html | 3 + .../testdata/slim/example_packageExample.html | 0 .../testdata/slim/example_renderCode.html | 1 + .../slim/example_shorthandConditional.html | 6 + .../slim/example_shorthandSwitch.html | 6 + .../testdata/slim/example_userDetails.html | 5 + examples/testdata/slim/filters_css.html | 5 + .../testdata/slim/filters_javascript.html | 3 + .../testdata/slim/formatting_boolExample.html | 1 + .../slim/formatting_floatExample.html | 6 + .../testdata/slim/formatting_intExample.html | 6 + .../slim/formatting_stringExample.html | 9 + examples/testdata/slim/hello_world.html | 38 + examples/testdata/slim/indents_usingTabs.html | 11 + .../testdata/slim/tags_alsoSelfClosing.html | 1 + examples/testdata/slim/tags_combined.html | 4 + .../testdata/slim/tags_defaultToDivs.html | 2 + examples/testdata/slim/tags_inlineTags.html | 8 + .../testdata/slim/tags_multipleClasses.html | 2 + .../testdata/slim/tags_removeWhitespace.html | 13 + examples/testdata/slim/tags_selfClosing.html | 3 + examples/testdata/slim/tags_specifyTag.html | 2 + examples/testdata/slim/tags_whitespace.html | 5 + .../testdata/slim/unescape_unescapeCode.html | 2 + examples/testdata/unescape_unescapeCode.html | 2 - .../unescape_unescapeInterpolation.html | 2 - examples/unescaping/unescape.goht | 35 +- examples/unescaping/unescape.goht.go | 149 +- version.go | 2 +- 193 files changed, 6543 insertions(+), 696 deletions(-) rename compiler/{parser_test.go => nodes_test.go} (92%) create mode 100644 docs/goht_header_html.png create mode 100644 examples/tags/inline.goht create mode 100644 examples/tags/inline.goht.go delete mode 100644 examples/testdata/attributes_attributesCmd.html delete mode 100644 examples/testdata/filters_preserve.html create mode 100644 examples/testdata/haml/attributes_attributesCmd.html rename examples/testdata/{ => haml}/attributes_classes.html (100%) rename examples/testdata/{ => haml}/attributes_complexNames.html (100%) rename examples/testdata/{ => haml}/attributes_conditionalAttrs.html (100%) rename examples/testdata/{ => haml}/attributes_dynamicAttrs.html (100%) rename examples/testdata/{ => haml}/attributes_formattedValue.html (100%) rename examples/testdata/{ => haml}/attributes_multilineAttrs.html (100%) rename examples/testdata/{ => haml}/attributes_simpleNames.html (100%) rename examples/testdata/{ => haml}/attributes_staticAttrs.html (100%) rename examples/testdata/{ => haml}/attributes_whitespaceAttrs.html (100%) rename examples/testdata/{ => haml}/commands_childrenExample.html (100%) rename examples/testdata/{ => haml}/commands_renderExample.html (100%) rename examples/testdata/{ => haml}/commands_renderWithChildrenExample.html (100%) rename examples/testdata/{ => haml}/comments_htmlComments.html (100%) rename examples/testdata/{ => haml}/comments_htmlCommentsNested.html (100%) rename examples/testdata/{ => haml}/comments_rubyStyle.html (100%) rename examples/testdata/{ => haml}/comments_rubyStyleNested.html (100%) rename examples/testdata/{ => haml}/doctype_doctype.html (100%) rename examples/testdata/{ => haml}/example_conditional.html (100%) rename examples/testdata/{ => haml}/example_doc.html (100%) rename examples/testdata/{ => haml}/example_escapeInterpolation.html (100%) rename examples/testdata/{ => haml}/example_executeCode.html (100%) rename examples/testdata/{ => haml}/example_ignoreInterpolation.html (100%) rename examples/testdata/{ => haml}/example_importExample.html (100%) rename examples/testdata/{ => haml}/example_interpolateCode.html (100%) rename examples/testdata/{ => haml}/example_noInterpolation.html (100%) rename examples/testdata/{ => haml}/example_packageExample.html (100%) rename examples/testdata/{ => haml}/example_renderCode.html (100%) rename examples/testdata/{ => haml}/example_shorthandConditional.html (100%) rename examples/testdata/{ => haml}/example_shorthandSwitch.html (100%) rename examples/testdata/{ => haml}/example_userDetails.html (100%) rename examples/testdata/{ => haml}/filters_css.html (100%) rename examples/testdata/{ => haml}/filters_escaped.html (100%) rename examples/testdata/{ => haml}/filters_javascript.html (100%) rename examples/testdata/{ => haml}/filters_plain.html (100%) create mode 100644 examples/testdata/haml/filters_preserve.html rename examples/testdata/{ => haml}/formatting_boolExample.html (100%) rename examples/testdata/{ => haml}/formatting_floatExample.html (100%) rename examples/testdata/{ => haml}/formatting_intExample.html (100%) rename examples/testdata/{ => haml}/formatting_stringExample.html (100%) rename examples/testdata/{ => haml}/hello_world.html (100%) rename examples/testdata/{ => haml}/indents_usingTabs.html (100%) rename examples/testdata/{ => haml}/tags_alsoSelfClosing.html (100%) rename examples/testdata/{ => haml}/tags_combined.html (100%) rename examples/testdata/{ => haml}/tags_defaultToDivs.html (100%) rename examples/testdata/{ => haml}/tags_multipleClasses.html (100%) rename examples/testdata/{ => haml}/tags_objectRefs.html (100%) rename examples/testdata/{ => haml}/tags_prefixedObjectRefs.html (100%) rename examples/testdata/{ => haml}/tags_removeWhitespace.html (100%) rename examples/testdata/{ => haml}/tags_selfClosing.html (100%) rename examples/testdata/{ => haml}/tags_specifyTag.html (100%) rename examples/testdata/{ => haml}/tags_whitespace.html (100%) create mode 100644 examples/testdata/haml/unescape_unescapeCode.html create mode 100644 examples/testdata/haml/unescape_unescapeInterpolation.html rename examples/testdata/{ => haml}/unescape_unescapeText.html (100%) delete mode 100644 examples/testdata/indents_usingSpaces.html create mode 100644 examples/testdata/slim/attributes_attributesCmd.html create mode 100644 examples/testdata/slim/attributes_classes.html create mode 100644 examples/testdata/slim/attributes_complexNames.html create mode 100644 examples/testdata/slim/attributes_conditionalAttrs.html create mode 100644 examples/testdata/slim/attributes_dynamicAttrs.html create mode 100644 examples/testdata/slim/attributes_formattedValue.html create mode 100644 examples/testdata/slim/attributes_multilineAttrs.html create mode 100644 examples/testdata/slim/attributes_simpleNames.html create mode 100644 examples/testdata/slim/attributes_staticAttrs.html create mode 100644 examples/testdata/slim/attributes_whitespaceAttrs.html create mode 100644 examples/testdata/slim/commands_childrenExample.html create mode 100644 examples/testdata/slim/commands_renderExample.html create mode 100644 examples/testdata/slim/commands_renderWithChildrenExample.html create mode 100644 examples/testdata/slim/comments_htmlComments.html create mode 100644 examples/testdata/slim/comments_htmlCommentsNested.html create mode 100644 examples/testdata/slim/comments_rubyStyle.html create mode 100644 examples/testdata/slim/comments_rubyStyleNested.html create mode 100644 examples/testdata/slim/doctype_doctype.html create mode 100644 examples/testdata/slim/example_conditional.html create mode 100644 examples/testdata/slim/example_doc.html create mode 100644 examples/testdata/slim/example_escapeInterpolation.html create mode 100644 examples/testdata/slim/example_executeCode.html create mode 100644 examples/testdata/slim/example_ignoreInterpolation.html create mode 100644 examples/testdata/slim/example_importExample.html create mode 100644 examples/testdata/slim/example_interpolateCode.html create mode 100644 examples/testdata/slim/example_noInterpolation.html create mode 100644 examples/testdata/slim/example_packageExample.html create mode 100644 examples/testdata/slim/example_renderCode.html create mode 100644 examples/testdata/slim/example_shorthandConditional.html create mode 100644 examples/testdata/slim/example_shorthandSwitch.html create mode 100644 examples/testdata/slim/example_userDetails.html create mode 100644 examples/testdata/slim/filters_css.html create mode 100644 examples/testdata/slim/filters_javascript.html create mode 100644 examples/testdata/slim/formatting_boolExample.html create mode 100644 examples/testdata/slim/formatting_floatExample.html create mode 100644 examples/testdata/slim/formatting_intExample.html create mode 100644 examples/testdata/slim/formatting_stringExample.html create mode 100644 examples/testdata/slim/hello_world.html create mode 100644 examples/testdata/slim/indents_usingTabs.html create mode 100644 examples/testdata/slim/tags_alsoSelfClosing.html create mode 100644 examples/testdata/slim/tags_combined.html create mode 100644 examples/testdata/slim/tags_defaultToDivs.html create mode 100644 examples/testdata/slim/tags_inlineTags.html create mode 100644 examples/testdata/slim/tags_multipleClasses.html create mode 100644 examples/testdata/slim/tags_removeWhitespace.html create mode 100644 examples/testdata/slim/tags_selfClosing.html create mode 100644 examples/testdata/slim/tags_specifyTag.html create mode 100644 examples/testdata/slim/tags_whitespace.html create mode 100644 examples/testdata/slim/unescape_unescapeCode.html delete mode 100644 examples/testdata/unescape_unescapeCode.html delete mode 100644 examples/testdata/unescape_unescapeInterpolation.html diff --git a/.gitignore b/.gitignore index 71ee55e..2cfc73f 100644 --- a/.gitignore +++ b/.gitignore @@ -149,3 +149,4 @@ $RECYCLE.BIN/ *.lnk # End of https://www.toptal.com/developers/gitignore/api/goland+all,windows,macos +/scratch/ diff --git a/.version b/.version index 5d7996f..3442262 100644 --- a/.version +++ b/.version @@ -1 +1 @@ -VERSION=v0.5.0 +VERSION=v0.6.0 diff --git a/README.md b/README.md index 2db423f..d549c93 100644 --- a/README.md +++ b/README.md @@ -1,7 +1,7 @@ -# GoHT (Go Haml Templates) -A [Haml](http://haml.info/) template engine and file generation tool for Go. +# GoHT (Go HTML Templates) +A [Haml](http://haml.info/) and [Slim](https://slim-template.github.io/) template engine and file generation tool for Go. -![GoHT](docs/goht_header.png) +![GoHT](docs/goht_header_html.png) [![Go Report Card](https://goreportcard.com/badge/github.com/stackus/goht)](https://goreportcard.com/report/github.com/stackus/goht) [![](https://godoc.org/github.com/stackus/goht?status.svg)](https://pkg.go.dev/github.com/stackus/goht) @@ -11,6 +11,8 @@ A [Haml](http://haml.info/) template engine and file generation tool for Go. - [Quick Start](#quick-start) - [Supported Haml Syntax & Features](#supported-haml-syntax--features) - [Unsupported Haml Features](#unsupported-haml-features) +- [Supported Slim Syntax & Features](#supported-slim-syntax--features) + - [Unsupported Slim Features](#unsupported-slim-features) - [GoHT CLI](#goht-cli) - [IDE Support](#ide-support) - [LSP](#lsp) @@ -19,8 +21,8 @@ A [Haml](http://haml.info/) template engine and file generation tool for Go. - [Using GoHT with HTTP handlers](#using-goht-with-http-handlers) - [A big nod to Templ](#a-big-nod-to-templ) - [The GoHT template](#the-goht-template) -- [Haml Syntax](#haml-syntax) - - [GoHT and Haml differences](#goht-and-haml-differences) +- [GoHT Syntax](#goht-syntax) + - [GoHT template differences](#goht-template-differences) - [Go package and imports](#go-package-and-imports) - [Multiple templates per file](#multiple-templates-per-file) - [Doctypes](#doctypes) @@ -29,6 +31,7 @@ A [Haml](http://haml.info/) template engine and file generation tool for Go. - [Attributes](#attributes) - [Classes](#classes) - [Object References](#object-references) + - [Inlined Tags](#inlined-tags) - [Filters](#filters) - [Template nesting](#template-nesting) - [Contributing](#contributing) @@ -42,13 +45,13 @@ A [Haml](http://haml.info/) template engine and file generation tool for Go. - Easy nesting of templates ## Quick Start -First create a GoHT file, a file which mixes Go and Haml with a `.goht` extension: +First create a GoHT file, a file which mixes Go and Haml (and Slim!) with a `.goht` extension: ```haml package main var siteTitle = "GoHT" -@goht SiteLayout(pageTitle string) { +@haml SiteLayout(pageTitle string) { !!! %html{lang:"en"} %head @@ -59,9 +62,9 @@ var siteTitle = "GoHT" = @children } -@goht HomePage() { +@slim HomePage() { = @render SiteLayout("Home Page") - %p This is the home page for GoHT. + p This is the home page for GoHT. } ``` @@ -110,19 +113,39 @@ Which would serve the following HTML: - [x] Doctypes (`!!!`) - [x] Tags (`%tag`) - [x] Attributes (`{name: value}`) [(more info)](#attributes) -- [x] Classes and IDs (`.class` `#id`) [(more info)](#classes) +- [x] Classes and IDs (`.class`, `#id`) [(more info)](#classes) - [x] Object References (`[obj]`) [(more info)](#object-references) - [x] Unescaped Text (`!` `!=`) - [x] Comments (`/` `-#`) +- [x] Self-closing Tags (`%tag/`)] - [x] Inline Interpolation (`#{value}`) - [x] Inlining Code (`- code`) - [x] Rendering Code (`= code`) - [x] Filters (`:plain`, ...) [(more info)](#filters) -- [x] Whitespace Removal (`%tag>` `%tag<`) [(more info)](#whitespace-removal) +- [x] Whitespace Removal (`%tag>`, `%tag<`) [(more info)](#whitespace-removal) ### Unsupported Haml Features - [ ] Probably something I've missed, please raise an issue if you find something missing. +## Supported Slim Syntax & Features +- [x] Doctypes (`doctype`) +- [x] Tags (`tag`) +- [x] Attributes (`{name: value}`) [(more info)](#attributes) +- [x] Classes and IDs (`.class`, `#id`) [(more info)](#classes) +- [x] Inline Tags (`tag: othertag`) +- [x] Unescaped Text (`|`) +- [x] Comments (`/`, `/!`) +- [x] Self-closing Tags (`tag/`) +- [x] Inline Interpolation (`#{value}`) +- [x] Inlining Code (`- code`) +- [x] Rendering Code (`= code`, `== code`) +- [x] Filters (`:plain`, ...) [(more info)](#filters) +- [x] Long Statement wrapping (`\`), (`,`)] + +### Unsupported Slim Features + +- [ ] Whitespace Addition (`tag<` `tag>`) + ## GoHT CLI ### Installation @@ -149,6 +172,9 @@ goht generate --force See more options with `goht help generate` or `goht generate -h`. ## IDE Support + +> Note: The IDE extensions are being worked on to add the new Slim syntax highlighting. + ![vscode_ide_example.png](docs/vscode_ide_example.png) - VSCode [Extension](https://marketplace.visualstudio.com/items?itemName=stackus.goht-vscode) and code [repository](https://github.com/stackus/goht-vscode) - JetBrains (GoLand and others) [Plugin](https://plugins.jetbrains.com/plugin/23783-goht) and code [repository](https://github.com/stackus/goht-jetbrains) @@ -217,7 +243,7 @@ The second parameter passed into the `Render` method can be anything that implem such as a file or a buffer, or the `http.ResponseWriter` that you get from an HTTP handler. ### Using GoHT with HTTP handlers -Using the GoHT templates is made very easy. +Using the GoHT templates is made straightforward. ```go package main @@ -245,36 +271,48 @@ There are a number of examples showing various Haml and GoHT features in the [ex ### A big nod to Templ The way that you use GoHT is very similar to how you would use [Templ](https://templ.guide). This is no accident as I am a big fan of the work being done with that engine. -After getting the Haml properly lexed, and parsed, I did not want to reinvent the wheel and come up with a whole new rendering API. +After getting the Haml properly lexed and parsed, I did not want to reinvent the wheel and come up with a whole new rendering API. The API that Templ presents is nice and easy to use, so I decided to replicate it in GoHT. ## The GoHT template GoHT templates are files with the extension `.goht` that when processed will produce a matching Go file with the extension `.goht.go`. -In these files you are free to write any Go code that you wish, and then drop into Haml mode using the `@goht` directive. +In these files you are free to write any Go code that you wish, and then drop into Haml mode using the `@haml` directive. + +> Note: The original `@goht` directive is still supported for HAML templating, but it is deprecated and will be removed in a future version. The following starts the creation of a SiteLayout template: ```haml -@goht SiteLayout() { +@haml SiteLayout() { + +or + +@slim SiteLayout() { ``` GoHT templates are closed like Go functions, with a closing brace `}`. So a complete but empty example is this: ```haml -@goht SiteLayout() { +@haml SiteLayout() { +} + +or + +@slim SiteLayout() { } ``` -Inside the template you can use any Haml features, such as tags, attributes, classes, +Inside the templates you can use any Haml or Slim features, such as tags, attributes, classes, IDs, text, comments, interpolation, code inlining, code rendering, and filters. -## Haml Syntax +## GoHT Syntax The Haml syntax is documented at the [Haml](http://haml.info/) website. Please see that site or the [Haml Reference](https://haml.info/docs/yardoc/file.REFERENCE.html) for more information. +The Slim syntax is documented at the [Slim](https://slim-lang.com/) website. -GoHT has implemented the Haml syntax very closely. -So, if you are already familiar with Haml then you should be able to jump right in. +GoHT has implemented nearly all Haml and Slim syntax. +So, if you are already familiar with Haml or Slim then you should be able to jump right in. There are some minor differences that I will document in the next section. -### GoHT and Haml differences +### GoHT template differences Important differences are: - [Go package and imports](#go-package-and-imports): You can declare a package and imports for your templates. @@ -283,9 +321,9 @@ Important differences are: - [Indents](#indents): GoHT follows the rules of GoFMT for indents. - [Inlined code](#inlined-code): You won't be using Ruby here, you'll be using Go. - [Rendering code](#rendering-code): The catch is what is being outputted will need to be a string in all cases. -- [Attributes](#attributes): Only the Ruby 1.9 style of attributes is supported. +- [Attributes](#attributes): Only the Ruby 1.9 (`{...}`) style of attributes is supported. - [Classes](#classes): Multiple sources of classes are supported. -- [Object References](#object-references): Limited support for object references. +- [Object References](#object-references): Haml Only: Limited support for object references. - [Filters](#filters): Partial list of supported filters. - [Template nesting](#template-nesting): Templates can be nested, and content can be passed into them. @@ -295,19 +333,21 @@ You can provide a package name at the top of your GoHT template file. If you do You may also import any packages that you need to use in your template. The imports you use and the ones brought in by GoHT will be combined and deduplicated. ### Multiple templates per file -You can declare as many templates in a file as you wish. Each template must have a unique name in the module they will be output into. +You can declare as many templates in a file as you wish. +Each template must have a unique name in the module they will be output into. +You may also mix Haml and Slim templates in the same file. ```haml -@goht SiteLayout() { +@slim SiteLayout() { } -@goht HomePage() { +@haml HomePage() { } ``` The templates are converted into Go functions, so they must be valid Go function names. This also means that you can declare them with parameters and can use those parameters in the template. ```haml -@goht SiteLayout(title string) { +@haml SiteLayout(title string) { !!! %html{lang:"en"} %head @@ -316,23 +356,38 @@ This also means that you can declare them with parameters and can use those para -# ... the rest of the template } ``` +The same applies to Slim templates: +```slim +@slim SiteLayout(title string) { + doctype html + html(lang="en") + head + title= title + body + / ... the rest of the template +} +``` ### Doctypes Only the HTML 5 doctype is supported, and is written using `!!!`. ```haml -@goht SiteLayout() { +@haml SiteLayout() { !!! } + +@slim SiteLayout() { + doctype +} ``` -> Note about indenting. GoHT follows the similar rules as Haml for indenting. The first line of the template must be at the same level as the `@goht` directive. After that, you MUST use tabs to indent the content of the template. +> Note about indenting. GoHT follows the same rules as Haml for indenting. The first line of the template must be at the same level as the `@haml` or `@slim` directive. After that, you MUST use tabs to indent the content of the template. ### Indents GoHT follows the rules of GoFMT for indents, meaning that you should use tabs for indentation. -You must also indent the content of the template, and the closing brace should be at the same level as the `@goht` directive. +You must also indent the content of the template, and the closing brace should be at the same level as the `@haml` directive. ```haml -@goht SiteLayout() { +@haml SiteLayout() { %html %head %title GoHT @@ -341,6 +396,18 @@ You must also indent the content of the template, and the closing brace should b } ``` +Slim: +```slim +@slim SiteLayout() { + doctype + html + head + title GoHT + body + h1 GoHT +} +``` + > Note: Two spaces are being used in this README for display only. Keep that in mind if you copy and paste the examples from this document. ### Inlined code @@ -353,20 +420,26 @@ So instead of this with Ruby: - if user %strong The user exists ``` -You would write this with Go: +You would write this with Go (Go needs the `!= nil` check): ```haml - if user != nil %strong The user exists ``` There is minimal processing performed on the Go code you put into the templates, so it needs to be valid Go code sans braces. + > You may continue to use the braces if you wish. Existing code with braces will continue to work without modifications. ### Rendering code -Like in Haml, you can output variables and the results of expressions. The `=` script syntax and text interpolation `#{}` are supported. +Like in Haml, you can output variables and the results of expressions. The `=` script syntax and text interpolation `#{}` are supported for both template languages. ```haml %strong= user.Name %strong The user's name is #{user.Name} ``` +Slim: +```slim + strong= user.Name + strong The user's name is #{user.Name} +``` The catch is what is being outputted will need to be a string in all cases. So instead of writing this to output an integer value: @@ -388,7 +461,8 @@ The interpolation also supports the shortcut: When formatting a value into a string `fmt.Sprintf` is used under the hood, so you can use any of the formatting options that it supports. ### Attributes -Only the Ruby 1.9 style of attributes is supported. +**Only the Ruby 1.9 style of attributes is supported.** + This syntax is closest to the Go syntax, and is the most readable. Between the attribute name, operator, and value you can include or leave out as much whitespace as you like. ```haml @@ -472,15 +546,29 @@ type ObjectClasser interface { The result of these methods will be used to populate the id and class attributes in a similar way to how Haml would apply the Ruby object references. +### Inlined Tags +**Slim Only** + +GoHT supports inlining tags to keep templates as compact as possible. + +```slim + ul + li: a.First Fist Item + li: a.Second Second Item + li: a.Third Third Item +``` + ### Filters Only the following Haml filters are supported: -- `:plain` -- `:escaped` -- `:preserve` +- `:plain` (Haml Only) +- `:escaped` (Haml Only) +- `:preserve` (Haml Only) - `:javascript` - `:css` ### Whitespace Removal +**Haml Only** + GoHT supports the removal of whitespace between tags. This is done by adding a `>` or `<` to the end of the tag. - `>` will remove all whitespace between the tag and its parent or siblings. @@ -491,20 +579,20 @@ Both can be used together to remove whitespace both inside and outside a tag; th ### Template nesting The biggest departure from Haml is how templates can be combined. When working Haml you could use `= render :partial_name` or `= haml :partial_name` to render a partial. The `render` and `haml` functions are not available in GoHT, instead you can use the `@render` directive. ```haml -@goht HomePage() { +@haml HomePage() { = @render SiteLayout() } ``` The above would render the `SiteLayout` template, and you would call it with any parameters that it needs. You can also call it and provide it with a block of content to render where it chooses. ```haml -@goht HomePage() { +@haml HomePage() { = @render SiteLayout() %p This is the home page for GoHT. } ``` Any content nested under the `@render` directive will be passed into the template that it can render where it wants using the `@children` directive. ```haml -@goht SiteLayout() { +@haml SiteLayout() { !!! %html{lang:"en"} %head diff --git a/compiler/lexer.go b/compiler/lexer.go index 5d40adf..b4c70cf 100644 --- a/compiler/lexer.go +++ b/compiler/lexer.go @@ -96,13 +96,7 @@ func (l *lexer) peekAhead(length int) string { width += size s += string(ch) } - // if err != nil && err != io.EOF { - // return "", fmt.Errorf("failed to peek ahead: %v", err) - // } _, _ = l.reader.Seek(int64(-width), io.SeekCurrent) - // if err != nil { - // return "", fmt.Errorf("failed to seek back: %v", err) - // } return s } @@ -169,7 +163,8 @@ func (l *lexer) skipAhead(length int) { for i := 0; i < length; i++ { l.next() } - l.ignore() + l.s = l.s[:len(l.s)-length] + // l.ignore() } // current returns the current captured string being built by the lexer. diff --git a/compiler/lexer_test.go b/compiler/lexer_test.go index 365d77c..0518d2d 100644 --- a/compiler/lexer_test.go +++ b/compiler/lexer_test.go @@ -407,8 +407,32 @@ func Test_GoTransition(t *testing.T) { {typ: tPackage, lit: "foo"}, {typ: tNewLine, lit: "\n"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtStart, lit: "test()"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tEOF, lit: ""}, + }, + }, + "into haml": { + input: "package foo\n\n@haml test() {\n}\n", + want: []token{ + {typ: tPackage, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tEOF, lit: ""}, + }, + }, + "into slim": { + input: "package foo\n\n@slim test() {\n}\n", + want: []token{ + {typ: tPackage, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, {typ: tNewLine, lit: "\n"}, {typ: tEOF, lit: ""}, }, @@ -432,11 +456,41 @@ func Test_GohtTransition(t *testing.T) { input string want []token }{ - "into go": { + "into go from goht": { input: "@goht test() {\n}\n\nfunc foo() {\n\tprintln(`bar`)\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "func foo() {"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "\tprintln(`bar`)"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "}"}, + {typ: tEOF, lit: ""}, + }, + }, + "into go from haml": { + input: "@haml test() {\n}\n\nfunc foo() {\n\tprintln(`bar`)\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "func foo() {"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "\tprintln(`bar`)"}, + {typ: tNewLine, lit: "\n"}, + {typ: tGoCode, lit: "}"}, + {typ: tEOF, lit: ""}, + }, + }, + "into go from slim": { + input: "@slim test() {\n}\n\nfunc foo() {\n\tprintln(`bar`)\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tTemplateEnd, lit: ""}, {typ: tNewLine, lit: "\n"}, {typ: tNewLine, lit: "\n"}, {typ: tGoCode, lit: "func foo() {"}, @@ -450,7 +504,7 @@ func Test_GohtTransition(t *testing.T) { "incomplete goht": { input: "@goht test() {\n", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tEOF, lit: ""}, }, }, @@ -476,7 +530,7 @@ func Test_HamlText(t *testing.T) { "simple": { input: "@goht test() {\n\tfoobar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "foobar"}, {typ: tEOF, lit: ""}, @@ -485,7 +539,7 @@ func Test_HamlText(t *testing.T) { "multiple lines": { input: "@goht test() {\n\tfoobar\n\tbaz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "foobar"}, {typ: tNewLine, lit: "\n"}, @@ -497,7 +551,7 @@ func Test_HamlText(t *testing.T) { "with escaped quotes": { input: "@goht test() {\n\t\"foo\\\"bar\"", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "\"foo\\\"bar\""}, {typ: tEOF, lit: ""}, @@ -506,7 +560,7 @@ func Test_HamlText(t *testing.T) { "escape control characters": { input: "@goht test() {\n\t\\#foo\n\t\\%bar\n\t\\.baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "#foo"}, {typ: tNewLine, lit: "\n"}, @@ -520,7 +574,7 @@ func Test_HamlText(t *testing.T) { "text with dynamic value": { input: "@goht test() {\n\tfoo #{bar} baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "foo "}, {typ: tDynamicText, lit: "bar"}, @@ -531,7 +585,7 @@ func Test_HamlText(t *testing.T) { "escape dynamic text at start of line": { input: "@goht test() {\n\t\\#{foo}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tDynamicText, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -540,7 +594,7 @@ func Test_HamlText(t *testing.T) { "ignore dynamic text in line": { input: "@goht test() {\n\tfoo \\#{bar} \\{f} baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "foo #{bar} \\{f} baz"}, {typ: tEOF, lit: ""}, @@ -549,7 +603,7 @@ func Test_HamlText(t *testing.T) { "error in dynamic syntax": { input: "@goht test() {\n\tfoo #{bar baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tPlainText, lit: "foo "}, {typ: tError, lit: "dynamic text value was not closed: eof"}, @@ -570,6 +624,159 @@ func Test_HamlText(t *testing.T) { } } +func Test_SlimText(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@slim test() {\n\t|foobar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tEOF, lit: ""}, + }, + }, + "simple with space": { + input: "@slim test() {\n\t| foobar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tEOF, lit: ""}, + }, + }, + "simple with spaces": { + input: "@slim test() {\n\t| foobar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: " foobar"}, + {typ: tEOF, lit: ""}, + }, + }, + "simple with tab": { + input: "@slim test() {\n\t|\tfoobar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tEOF, lit: ""}, + }, + }, + "simple with tabs": { + input: "@slim test() {\n\t|\t\tfoobar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "\tfoobar"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple lines": { + input: "@slim test() {\n\t|foobar\n\t|baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple indented lines": { + input: "@slim test() {\n\t|foobar\n\t\tbaz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple indented lines with space": { + input: "@slim test() {\n\t| foobar\n\t\t baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple indented lines with tab": { + input: "@slim test() {\n\t| foobar\n\t\t\tbaz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple indented lines with spaces": { + input: "@slim test() {\n\t| foobar\n\t\t baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: " baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple indented lines with tabs and spaces": { + input: "@slim test() {\n\t| foobar\n\t\t\t baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foobar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: " baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "text with dynamic value": { + input: "@slim test() {\n\t|foo #{bar} baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foo "}, + {typ: tDynamicText, lit: "bar"}, + {typ: tPlainText, lit: " baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "text and close": { + input: "@slim test() {\n\t|foo bar\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tPlainText, lit: "foo bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + func Test_HamlTag(t *testing.T) { tests := map[string]struct { input string @@ -578,7 +785,7 @@ func Test_HamlTag(t *testing.T) { "simple": { input: "@goht test() {\n\t%foo\n", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tNewLine, lit: "\n"}, @@ -588,7 +795,7 @@ func Test_HamlTag(t *testing.T) { "multiple tags": { input: "@goht test() {\n\t%foo\n\t%bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tNewLine, lit: "\n"}, @@ -600,7 +807,7 @@ func Test_HamlTag(t *testing.T) { "tag and id": { input: "@goht test() {\n\t%foo#bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tId, lit: "bar"}, @@ -610,7 +817,7 @@ func Test_HamlTag(t *testing.T) { "tag and class": { input: "@goht test() {\n\t%foo.bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tClass, lit: "bar"}, @@ -620,7 +827,7 @@ func Test_HamlTag(t *testing.T) { "tag and attribute": { input: "@goht test() {\n\t%foo{id:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -632,7 +839,7 @@ func Test_HamlTag(t *testing.T) { "tag and text": { input: "@goht test() {\n\t%foo bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tPlainText, lit: "bar"}, @@ -642,18 +849,18 @@ func Test_HamlTag(t *testing.T) { "tag and text and close": { input: "@goht test() {\n\t%foo bar\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tPlainText, lit: "bar"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "tag and unescaped text": { input: "@goht test() {\n\t%foo! bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tUnescaped, lit: ""}, @@ -664,7 +871,7 @@ func Test_HamlTag(t *testing.T) { "tag and output code": { input: "@goht test() {\n\t%foo= bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tScript, lit: "bar"}, @@ -674,7 +881,7 @@ func Test_HamlTag(t *testing.T) { "tag and tag again": { input: "@goht test() {\n\t%foo%bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tPlainText, lit: "%bar"}, @@ -684,7 +891,7 @@ func Test_HamlTag(t *testing.T) { "space before tag identifier": { input: "@goht test() {\n\t% foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tError, lit: "Tag identifier expected"}, {typ: tEOF, lit: ""}, @@ -704,133 +911,154 @@ func Test_HamlTag(t *testing.T) { } } -func Test_HamlId(t *testing.T) { +func Test_SlimTag(t *testing.T) { tests := map[string]struct { input string want []token }{ "simple": { - input: "@goht test() {\n\t#foo", + input: "@slim test() {\n\tfoo\n", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, + {typ: tTag, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, {typ: tEOF, lit: ""}, }, }, - "multiple ids": { - input: "@goht test() {\n\t#foo\n\t#bar", + "multiple tags": { + input: "@slim test() {\n\tfoo\n\tbar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, + {typ: tTag, lit: "foo"}, {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "bar"}, + {typ: tTag, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "with underscore": { - input: "@goht test() {\n\t#foo_bar\n}", + "tag and id": { + input: "@slim test() {\n\tfoo#bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo_bar"}, - {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTag, lit: "foo"}, + {typ: tId, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "with hyphen": { - input: "@goht test() {\n\t#foo-bar\n}", + "tag and class": { + input: "@slim test() {\n\tfoo.bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo-bar"}, - {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTag, lit: "foo"}, + {typ: tClass, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "id and class": { - input: "@goht test() {\n\t#foo.bar", + "tag and classes": { + input: "@slim test() {\n\tfoo.bar.baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, + {typ: tTag, lit: "foo"}, {typ: tClass, lit: "bar"}, + {typ: tClass, lit: "baz"}, {typ: tEOF, lit: ""}, }, }, - "id and tag": { - input: "@goht test() {\n\t#foo%bar", + "tag and attribute": { + input: "@slim test() {\n\tfoo{id:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tPlainText, lit: "%bar"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, {typ: tEOF, lit: ""}, }, }, - "id and attribute": { - input: "@goht test() {\n\t#foo{id:\"bar\"}", + "tag and text": { + input: "@slim test() {\n\tfoo bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tAttrName, lit: "id"}, - {typ: tAttrOperator, lit: ":"}, - {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tTag, lit: "foo"}, + {typ: tPlainText, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "id and text": { - input: "@goht test() {\n\t#foo bar", + "tag and text and close": { + input: "@slim test() {\n\tfoo bar\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, + {typ: tTag, lit: "foo"}, {typ: tPlainText, lit: "bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, - "id and unescaped text": { - input: "@goht test() {\n\t#foo! bar", + "tag and multiple text lines": { + input: "@slim test() {\n\tfoo bar\n\t\tbaz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tUnescaped, lit: ""}, + {typ: tTag, lit: "foo"}, {typ: tPlainText, lit: "bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tPlainText, lit: "baz"}, {typ: tEOF, lit: ""}, }, }, - "id and output code": { - input: "@goht test() {\n\t#foo= bar", + "tag and interpolation": { + input: "@slim test() {\n\tfoo #{bar} baz", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tScript, lit: "bar"}, + {typ: tTag, lit: "foo"}, + {typ: tDynamicText, lit: "bar"}, + {typ: tPlainText, lit: " baz"}, {typ: tEOF, lit: ""}, }, }, - "id and id again": { - input: "@goht test() {\n\t#foo#bar", + "tag and multiline interpolation": { + input: "@slim test() {\n\tfoo bar\n\t\t#{baz} qux", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tId, lit: "bar"}, + {typ: tTag, lit: "foo"}, + {typ: tPlainText, lit: "bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tDynamicText, lit: "baz"}, + {typ: tPlainText, lit: " qux"}, {typ: tEOF, lit: ""}, }, }, - "space before id identifier": { - input: "@goht test() {\n\t# foo", + "tag and output code": { + input: "@slim test() {\n\tfoo= bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tError, lit: "Id identifier expected"}, + {typ: tTag, lit: "foo"}, + {typ: tScript, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "inlined tag": { + input: "@slim test() {\n\tfoo: a.bar\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tTag, lit: "a"}, + {typ: tClass, lit: "bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -848,46 +1076,314 @@ func Test_HamlId(t *testing.T) { } } -func Test_HamlClass(t *testing.T) { +func Test_HamlId(t *testing.T) { tests := map[string]struct { input string want []token }{ "simple": { - input: "@goht test() {\n\t.foo", + input: "@goht test() {\n\t#foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tClass, lit: "foo"}, + {typ: tId, lit: "foo"}, {typ: tEOF, lit: ""}, }, }, "multiple ids": { - input: "@goht test() {\n\t.foo\n\t.bar", + input: "@goht test() {\n\t#foo\n\t#bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tClass, lit: "foo"}, + {typ: tId, lit: "foo"}, {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t"}, - {typ: tClass, lit: "bar"}, + {typ: tId, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "class and id": { - input: "@goht test() {\n\t.foo#bar", + "with underscore": { + input: "@goht test() {\n\t#foo_bar\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tClass, lit: "foo"}, - {typ: tId, lit: "bar"}, + {typ: tId, lit: "foo_bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "with hyphen": { + input: "@goht test() {\n\t#foo-bar\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo-bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "id and class": { + input: "@goht test() {\n\t#foo.bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tClass, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and tag": { + input: "@goht test() {\n\t#foo%bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tPlainText, lit: "%bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and attribute": { + input: "@goht test() {\n\t#foo{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "id and text": { + input: "@goht test() {\n\t#foo bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and unescaped text": { + input: "@goht test() {\n\t#foo! bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tUnescaped, lit: ""}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and output code": { + input: "@goht test() {\n\t#foo= bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tScript, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and id again": { + input: "@goht test() {\n\t#foo#bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tId, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "space before id identifier": { + input: "@goht test() {\n\t# foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tError, lit: "Id identifier expected"}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_SlimId(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@slim test() {\n\t#bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple ids": { + input: "@slim test() {\n\t#foo\n\t#bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "with underscore": { + input: "@slim test() {\n\t#foo_bar\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo_bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "with hyphen": { + input: "@slim test() {\n\t#foo-bar\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo-bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "id and class": { + input: "@slim test() {\n\t#foo.bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tClass, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and attribute": { + input: "@slim test() {\n\t#foo{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "id and text": { + input: "@slim test() {\n\t#foo bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and interpolation": { + input: "@slim test() {\n\t#foo #{bar} baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tDynamicText, lit: "bar"}, + {typ: tPlainText, lit: " baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "id and output code": { + input: "@slim test() {\n\t#foo= bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tScript, lit: "bar"}, + }, + }, + "id and id again": { + input: "@slim test() {\n\t#foo#bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tId, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_HamlClass(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@goht test() {\n\t.foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiple classes": { + input: "@goht test() {\n\t.foo\n\t.bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "class and id": { + input: "@goht test() {\n\t.foo#bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tId, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, "class and tag": { input: "@goht test() {\n\t.foo%bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tPlainText, lit: "%bar"}, @@ -897,7 +1393,7 @@ func Test_HamlClass(t *testing.T) { "class and attribute": { input: "@goht test() {\n\t.foo{id:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -909,7 +1405,7 @@ func Test_HamlClass(t *testing.T) { "class and text": { input: "@goht test() {\n\t.foo bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tPlainText, lit: "bar"}, @@ -919,7 +1415,7 @@ func Test_HamlClass(t *testing.T) { "class and unescaped text": { input: "@goht test() {\n\t.foo! bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tUnescaped, lit: ""}, @@ -930,7 +1426,7 @@ func Test_HamlClass(t *testing.T) { "class and output code": { input: "@goht test() {\n\t.foo= bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tScript, lit: "bar"}, @@ -940,7 +1436,7 @@ func Test_HamlClass(t *testing.T) { "class and class again": { input: "@goht test() {\n\t.foo.bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tClass, lit: "foo"}, {typ: tClass, lit: "bar"}, @@ -950,7 +1446,7 @@ func Test_HamlClass(t *testing.T) { "space before class identifier": { input: "@goht test() {\n\t. foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tError, lit: "Class identifier expected"}, {typ: tEOF, lit: ""}, @@ -970,104 +1466,468 @@ func Test_HamlClass(t *testing.T) { } } -func Test_WhitespaceRemoval(t *testing.T) { +func Test_SlimClass(t *testing.T) { tests := map[string]struct { input string want []token }{ - "remove outer": { - input: "@goht test() {\n\t%p>\n}", + "simple": { + input: "@slim test() {\n\t.bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tTag, lit: "p"}, - {typ: tNukeOuterWhitespace, lit: ""}, - {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tClass, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "remove inner": { - input: "@goht test() {\n\t%p<\n}", + "multiple classes": { + input: "@slim test() {\n\t.foo\n\t.bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tTag, lit: "p"}, - {typ: tNukeInnerWhitespace, lit: ""}, + {typ: tClass, lit: "foo"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - "remove both": { - input: "@goht test() {\n\t%p<>\n}", + "class and id": { + input: "@slim test() {\n\t.foo#bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tTag, lit: "p"}, - {typ: tNukeInnerWhitespace, lit: ""}, - {typ: tNukeOuterWhitespace, lit: ""}, - {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tClass, lit: "foo"}, + {typ: tId, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "class and attribute": { + input: "@slim test() {\n\t.foo{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "class and text": { + input: "@slim test() {\n\t.foo bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "class and interpolation": { + input: "@slim test() {\n\t.foo #{bar} baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tDynamicText, lit: "bar"}, + {typ: tPlainText, lit: " baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "class and output code": { + input: "@slim test() {\n\t.foo= bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tScript, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_WhitespaceRemoval(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "remove outer": { + input: "@goht test() {\n\t%p>\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tNukeOuterWhitespace, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "remove inner": { + input: "@goht test() {\n\t%p<\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tNukeInnerWhitespace, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "remove both": { + input: "@goht test() {\n\t%p<>\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tNukeInnerWhitespace, lit: ""}, + {typ: tNukeOuterWhitespace, lit: ""}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_HamlObjectRef(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@goht test() {\n\t%p[foo]", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tObjectRef, lit: "foo"}, + {typ: tEOF, lit: ""}, + }, + }, + "with prefix": { + input: "@goht test() {\n\t%p[foo, \"bar\"]", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "on tag from class": { + input: "@goht test() {\n\t.foo[foo, \"bar\"]", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tClass, lit: "foo"}, + {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "on tag from id": { + input: "@goht test() {\n\t#foo[foo, \"bar\"]", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tId, lit: "foo"}, + {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_HamlAttributes(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@goht test() {\n\t%foo{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "no tag": { + input: "@goht test() {\n\t{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "names with dashes": { + input: "@goht test() {\n\t%foo{data-foo:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "data-foo"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "names with underscores": { + input: "@goht test() {\n\t%foo{data_foo:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "data_foo"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "names with numbers": { + input: "@goht test() {\n\t%foo{data1:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "data1"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, + "names with colons": { + input: "@goht test() {\n\t%foo{\":x-data\":\"bar\",`x-on:click`:#{onClick}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: ":x-data"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tAttrName, lit: "x-on:click"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "onClick"}, + {typ: tEOF, lit: ""}, + }, + }, + "names with dots": { + input: "@goht test() {\n\t%foo{data.foo:\"bar\",x.on.click:#{onClick}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "data.foo"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tAttrName, lit: "x.on.click"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "onClick"}, + {typ: tEOF, lit: ""}, + }, + }, + "names with at signs": { + input: "@goht test() {\n\t%foo{\"@data\":\"bar\",`x@on@click`:#{onClick}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "@data"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tAttrName, lit: "x@on@click"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "onClick"}, + }, + }, + "several": { + input: "@goht test() {\n\t%foo{id:\"bar\", class: `baz` , title : \"qux\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tAttrName, lit: "class"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "`baz`"}, + {typ: tAttrName, lit: "title"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"qux\""}, + {typ: tEOF, lit: ""}, + }, + }, + "several on multiple lines": { + input: "@goht test() {\n\t%foo{\n\tid:\"bar\",\n\tclass: `baz` ,\n\ttitle : \"qux\"\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tAttrName, lit: "class"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "`baz`"}, + {typ: tAttrName, lit: "title"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"qux\""}, + {typ: tEOF, lit: ""}, + }, + }, + "static value with escaped quotes": { + input: "@goht test() {\n\t%foo{id:\"bar\\\"baz\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\\\"baz\""}, + {typ: tEOF, lit: ""}, + }, + }, + "dynamic value": { + input: "@goht test() {\n\t%foo{id:#{bar}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "dynamic value with escaped curly": { + input: "@goht test() {\n\t%foo{id:#{\"big}\"}, class: #{\"ba\"+'}'}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "\"big}\""}, + {typ: tAttrName, lit: "class"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "\"ba\"+'}'"}, + {typ: tEOF, lit: ""}, + }, + }, + "dynamic values": { + input: "@goht test() {\n\t%foo{id:#{bar}, class: #{baz}}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "bar"}, + {typ: tAttrName, lit: "class"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrDynamicValue, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "boolean attribute": { + input: "@goht test() {\n\t%foo{bar}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "bar"}, {typ: tEOF, lit: ""}, }, }, - } - for name, tt := range tests { - t.Run(name, func(t *testing.T) { - l := newLexer([]byte(tt.input)) - for _, want := range tt.want { - got := l.nextToken() - if got.typ != want.typ || got.lit != want.lit { - t.Errorf("want %v, got %v", want, got) - } - } - }) - } -} - -func Test_HamlObjectRef(t *testing.T) { - tests := map[string]struct { - input string - want []token - }{ - "simple": { - input: "@goht test() {\n\t%p[foo]", + "boolean operator": { + input: "@goht test() {\n\t%foo{bar?#{isBar}, baz ? #{isBaz}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tTag, lit: "p"}, - {typ: tObjectRef, lit: "foo"}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "bar"}, + {typ: tAttrOperator, lit: "?"}, + {typ: tAttrDynamicValue, lit: "isBar"}, + {typ: tAttrName, lit: "baz"}, + {typ: tAttrOperator, lit: "?"}, + {typ: tAttrDynamicValue, lit: "isBaz"}, {typ: tEOF, lit: ""}, }, }, - "with prefix": { - input: "@goht test() {\n\t%p[foo, \"bar\"]", + "attributes command": { + input: "@goht test() {\n\t%foo{@attributes:#{listA, \"}}\", listB}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tTag, lit: "p"}, - {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tTag, lit: "foo"}, + {typ: tAttributesCommand, lit: "listA, \"}}\", listB"}, {typ: tEOF, lit: ""}, }, }, - "on tag from class": { - input: "@goht test() {\n\t.foo[foo, \"bar\"]", + "missing delimiter": { + input: "@goht test() {\n\t%foo{id\"bar\", class: \"baz\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tClass, lit: "foo"}, - {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tError, lit: "unexpected character: '\"'"}, {typ: tEOF, lit: ""}, }, }, - "on tag from id": { - input: "@goht test() {\n\t#foo[foo, \"bar\"]", + "missing separator": { + input: "@goht test() {\n\t%foo{id:\"bar\" class: \"baz\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, - {typ: tId, lit: "foo"}, - {typ: tObjectRef, lit: "foo, \"bar\""}, + {typ: tTag, lit: "foo"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tError, lit: "unexpected character: c"}, {typ: tEOF, lit: ""}, }, }, @@ -1085,15 +1945,15 @@ func Test_HamlObjectRef(t *testing.T) { } } -func Test_HamlAttributes(t *testing.T) { +func Test_SlimAttributes(t *testing.T) { tests := map[string]struct { input string want []token }{ "simple": { - input: "@goht test() {\n\t%foo{id:\"bar\"}", + input: "@slim test() {\n\tfoo{id:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1102,10 +1962,21 @@ func Test_HamlAttributes(t *testing.T) { {typ: tEOF, lit: ""}, }, }, + "no tag": { + input: "@slim test() {\n\t{id:\"bar\"}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tAttrName, lit: "id"}, + {typ: tAttrOperator, lit: ":"}, + {typ: tAttrEscapedValue, lit: "\"bar\""}, + {typ: tEOF, lit: ""}, + }, + }, "names with dashes": { - input: "@goht test() {\n\t%foo{data-foo:\"bar\"}", + input: "@slim test() {\n\tfoo{data-foo:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "data-foo"}, @@ -1115,9 +1986,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "names with underscores": { - input: "@goht test() {\n\t%foo{data_foo:\"bar\"}", + input: "@slim test() {\n\tfoo{data_foo:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "data_foo"}, @@ -1127,9 +1998,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "names with numbers": { - input: "@goht test() {\n\t%foo{data1:\"bar\"}", + input: "@slim test() {\n\tfoo{data1:\"bar\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "data1"}, @@ -1139,9 +2010,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "names with colons": { - input: "@goht test() {\n\t%foo{\":x-data\":\"bar\",`x-on:click`:#{onClick}}", + input: "@slim test() {\n\tfoo{\":x-data\":\"bar\",`x-on:click`:#{onClick}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: ":x-data"}, @@ -1154,9 +2025,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "names with dots": { - input: "@goht test() {\n\t%foo{data.foo:\"bar\",x.on.click:#{onClick}}", + input: "@slim test() {\n\tfoo{data.foo:\"bar\",x.on.click:#{onClick}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "data.foo"}, @@ -1169,9 +2040,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "names with at signs": { - input: "@goht test() {\n\t%foo{\"@data\":\"bar\",`x@on@click`:#{onClick}}", + input: "@slim test() {\n\tfoo{\"@data\":\"bar\",`x@on@click`:#{onClick}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "@data"}, @@ -1183,9 +2054,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "several": { - input: "@goht test() {\n\t%foo{id:\"bar\", class: `baz` , title : \"qux\"}", + input: "@slim test() {\n\tfoo{id:\"bar\", class: `baz` , title : \"qux\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1201,9 +2072,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "several on multiple lines": { - input: "@goht test() {\n\t%foo{\n\tid:\"bar\",\n\tclass: `baz` ,\n\ttitle : \"qux\"\n}", + input: "@slim test() {\n\tfoo{\n\tid:\"bar\",\n\tclass: `baz` ,\n\ttitle : \"qux\"\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1219,9 +2090,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "static value with escaped quotes": { - input: "@goht test() {\n\t%foo{id:\"bar\\\"baz\"}", + input: "@slim test() {\n\tfoo{id:\"bar\\\"baz\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1231,9 +2102,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "dynamic value": { - input: "@goht test() {\n\t%foo{id:#{bar}}", + input: "@slim test() {\n\tfoo{id:#{bar}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1243,9 +2114,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "dynamic value with escaped curly": { - input: "@goht test() {\n\t%foo{id:#{\"big}\"}, class: #{\"ba\"+'}'}}", + input: "@slim test() {\n\tfoo{id:#{\"big}\"}, class: #{\"ba\"+'}'}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1258,9 +2129,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "dynamic values": { - input: "@goht test() {\n\t%foo{id:#{bar}, class: #{baz}}", + input: "@slim test() {\n\tfoo{id:#{bar}, class: #{baz}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1273,9 +2144,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "boolean attribute": { - input: "@goht test() {\n\t%foo{bar}", + input: "@slim test() {\n\tfoo{bar}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "bar"}, @@ -1283,9 +2154,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "boolean operator": { - input: "@goht test() {\n\t%foo{bar?#{isBar}, baz ? #{isBaz}}", + input: "@slim test() {\n\tfoo{bar?#{isBar}, baz ? #{isBaz}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "bar"}, @@ -1298,9 +2169,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "attributes command": { - input: "@goht test() {\n\t%foo{@attributes:#{listA, \"}}\", listB}}", + input: "@slim test() {\n\tfoo{@attributes:#{listA, \"}}\", listB}}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttributesCommand, lit: "listA, \"}}\", listB"}, @@ -1308,9 +2179,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "missing delimiter": { - input: "@goht test() {\n\t%foo{id\"bar\", class: \"baz\"}", + input: "@slim test() {\n\tfoo{id\"bar\", class: \"baz\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1319,9 +2190,9 @@ func Test_HamlAttributes(t *testing.T) { }, }, "missing separator": { - input: "@goht test() {\n\t%foo{id:\"bar\" class: \"baz\"}", + input: "@slim test() {\n\tfoo{id:\"bar\" class: \"baz\"}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tAttrName, lit: "id"}, @@ -1353,7 +2224,7 @@ func Test_HamlDoctype(t *testing.T) { "simple": { input: "@goht test() {\n\t!!!", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tDoctype, lit: ""}, {typ: tEOF, lit: ""}, @@ -1362,7 +2233,7 @@ func Test_HamlDoctype(t *testing.T) { "with type": { input: "@goht test() {\n\t!!! Strict", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tDoctype, lit: "Strict"}, {typ: tEOF, lit: ""}, @@ -1371,7 +2242,7 @@ func Test_HamlDoctype(t *testing.T) { "not a doctype": { input: "@goht test() {\n\t!foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tUnescaped, lit: ""}, {typ: tPlainText, lit: "foo"}, @@ -1381,14 +2252,69 @@ func Test_HamlDoctype(t *testing.T) { "doctype with content": { input: "@goht test() {\n\t!!! 5\n\t%html\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tDoctype, lit: "5"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "html"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func TestSlimDoctype(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@slim test() {\n\tdoctype", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tDoctype, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "with type": { + input: "@slim test() {\n\tdoctype Strict", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tDoctype, lit: "Strict"}, + {typ: tEOF, lit: ""}, + }, + }, + "with content": { + input: "@slim test() {\n\tdoctype 5\n\thtml\n\t\ttitle foo\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tDoctype, lit: "5"}, {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "html"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tIndent, lit: "\t\t"}, + {typ: tTag, lit: "title"}, + {typ: tPlainText, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -1414,7 +2340,7 @@ func Test_HamlUnescaped(t *testing.T) { "simple": { input: "@goht test() {\n\t!foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tUnescaped, lit: ""}, {typ: tPlainText, lit: "foo"}, @@ -1424,7 +2350,7 @@ func Test_HamlUnescaped(t *testing.T) { "with space": { input: "@goht test() {\n\t! foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tUnescaped, lit: ""}, {typ: tPlainText, lit: "foo"}, @@ -1434,7 +2360,7 @@ func Test_HamlUnescaped(t *testing.T) { "dynamic text": { input: "@goht test() {\n\t! #{foo}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tUnescaped, lit: ""}, {typ: tDynamicText, lit: "foo"}, @@ -1444,7 +2370,7 @@ func Test_HamlUnescaped(t *testing.T) { "unescaped code": { input: "@goht test() {\n\t!= foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tUnescaped, lit: ""}, {typ: tScript, lit: "foo"}, @@ -1453,7 +2379,7 @@ func Test_HamlUnescaped(t *testing.T) { "not unescaped": { input: "@goht test() {\n\t%p ! foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p"}, {typ: tPlainText, lit: "! foo"}, @@ -1463,7 +2389,7 @@ func Test_HamlUnescaped(t *testing.T) { "tag with unescaped text": { input: "@goht test() {\n\t%foo! bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tUnescaped, lit: ""}, @@ -1473,7 +2399,7 @@ func Test_HamlUnescaped(t *testing.T) { "tag with unescaped code": { input: "@goht test() {\n\t%foo!= bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tUnescaped, lit: ""}, @@ -1487,7 +2413,7 @@ func Test_HamlUnescaped(t *testing.T) { %p! This #{html} HTML. }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "var html = \"is\""}, {typ: tNewLine, lit: "\n"}, @@ -1504,7 +2430,7 @@ func Test_HamlUnescaped(t *testing.T) { {typ: tDynamicText, lit: "html"}, {typ: tPlainText, lit: " HTML."}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -1530,16 +2456,16 @@ func Test_HamlComment(t *testing.T) { "simple": { input: "@goht test() {\n\t/ foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tComment, lit: "foo"}, {typ: tEOF, lit: ""}, }, }, - "nested content": { + "with content": { input: "@goht test() {\n\t/\n\t%p bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tComment, lit: ""}, {typ: tNewLine, lit: "\n"}, @@ -1552,7 +2478,7 @@ func Test_HamlComment(t *testing.T) { "haml comment": { input: "@goht test() {\n\t-# foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tRubyComment, lit: ""}, {typ: tEOF, lit: ""}, @@ -1565,21 +2491,21 @@ func Test_HamlComment(t *testing.T) { %p bar }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p"}, {typ: tPlainText, lit: "foo"}, {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t"}, {typ: tRubyComment, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "both comments": { input: "@goht test() {\n\t/ foo\n\t-# bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tComment, lit: "foo"}, {typ: tNewLine, lit: "\n"}, @@ -1596,7 +2522,7 @@ func Test_HamlComment(t *testing.T) { %p bar }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tComment, lit: ""}, {typ: tNewLine, lit: "\n"}, @@ -1605,7 +2531,96 @@ func Test_HamlComment(t *testing.T) { {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t"}, {typ: tRubyComment, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + +func Test_SlimComment(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@slim test() {\n\t/ foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tRubyComment, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + "html comment": { + input: "@slim test() {\n\t/! foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tComment, lit: "foo"}, + {typ: tEOF, lit: ""}, + }, + }, + "simple with content": { + input: "@slim test() {\n\t/\n\tp bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tRubyComment, lit: ""}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "html comment with content": { + input: "@slim test() {\n\t/! foo\n\tp bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tComment, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiline comment": { + input: "@slim test() {\n\t/foo\n\t\tbar\n\tp baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tRubyComment, lit: ""}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "baz"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiline html comment": { + input: "@slim test() {\n\t/! foo\n\t\tbar\n\tp baz", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tComment, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tComment, lit: "bar"}, + {typ: tNewLine, lit: "\n"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "baz"}, {typ: tEOF, lit: ""}, }, }, @@ -1631,7 +2646,7 @@ func Test_HamlVoidTags(t *testing.T) { "simple": { input: "@goht test() {\n\t%foo/", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tVoidTag, lit: ""}, @@ -1641,7 +2656,7 @@ func Test_HamlVoidTags(t *testing.T) { "line is ignored": { input: "@goht test() {\n\t%foo/ bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tError, lit: "self-closing tags can't have content"}, @@ -1669,7 +2684,7 @@ func Test_HamlOutputCode(t *testing.T) { "simple": { input: "@goht test() {\n\t=foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1678,7 +2693,7 @@ func Test_HamlOutputCode(t *testing.T) { "with space": { input: "@goht test() {\n\t= foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1687,7 +2702,7 @@ func Test_HamlOutputCode(t *testing.T) { "after tag": { input: "@goht test() {\n\t%foo= bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tScript, lit: "bar"}, @@ -1697,7 +2712,7 @@ func Test_HamlOutputCode(t *testing.T) { "without space": { input: "@goht test() {\n\t=foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1706,7 +2721,7 @@ func Test_HamlOutputCode(t *testing.T) { "with parens": { input: "@goht test() {\n\t= foo()", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tScript, lit: "foo()"}, {typ: tEOF, lit: ""}, @@ -1715,7 +2730,7 @@ func Test_HamlOutputCode(t *testing.T) { "with render command": { input: "@goht test() {\n\t= @render foo(\"bar\")", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tRenderCommand, lit: "foo(\"bar\")"}, {typ: tEOF, lit: ""}, @@ -1724,7 +2739,7 @@ func Test_HamlOutputCode(t *testing.T) { "with render command and parens": { input: "@goht test() {\n\t= @render() foo(\"bar\")", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tRenderCommand, lit: "foo(\"bar\")"}, {typ: tEOF, lit: ""}, @@ -1733,7 +2748,7 @@ func Test_HamlOutputCode(t *testing.T) { "with missing render argument": { input: "@goht test() {\n\t= @render", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tError, lit: "render argument expected"}, {typ: tEOF, lit: ""}, @@ -1742,7 +2757,7 @@ func Test_HamlOutputCode(t *testing.T) { "with children command": { input: "@goht test() {\n\t= @children", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tChildrenCommand, lit: ""}, {typ: tEOF, lit: ""}, @@ -1751,7 +2766,7 @@ func Test_HamlOutputCode(t *testing.T) { "with children command and parens": { input: "@goht test() {\n\t= @children()", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tChildrenCommand, lit: ""}, {typ: tEOF, lit: ""}, @@ -1760,7 +2775,7 @@ func Test_HamlOutputCode(t *testing.T) { "without any children arguments": { input: "@goht test() {\n\t= @children() asdfasdf", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tError, lit: "children command does not accept arguments"}, {typ: tEOF, lit: ""}, @@ -1788,7 +2803,7 @@ func Test_HamlExecuteCode(t *testing.T) { "simple": { input: "@goht test() {\n\t-foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1797,7 +2812,7 @@ func Test_HamlExecuteCode(t *testing.T) { "with space": { input: "@goht test() {\n\t- foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1806,7 +2821,7 @@ func Test_HamlExecuteCode(t *testing.T) { "not code": { input: "@goht test() {\n\t%foo- bar\n\t#foo-bar bar\n\t%p - bar", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo-"}, {typ: tPlainText, lit: "bar"}, @@ -1824,7 +2839,7 @@ func Test_HamlExecuteCode(t *testing.T) { "without space": { input: "@goht test() {\n\t-foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "foo"}, {typ: tEOF, lit: ""}, @@ -1837,7 +2852,7 @@ func Test_HamlExecuteCode(t *testing.T) { - } `, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "if foo != \"\" {"}, {typ: tNewLine, lit: "\n"}, @@ -1856,7 +2871,7 @@ func Test_HamlExecuteCode(t *testing.T) { "ruby style comment": { input: "@goht test() {\n\t-# comment\n\t- foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tRubyComment, lit: ""}, {typ: tIndent, lit: "\t"}, @@ -1867,7 +2882,7 @@ func Test_HamlExecuteCode(t *testing.T) { "nested ruby style comment": { input: "@goht test() {\n\t-#\n\t\tcomment\n\t- foo", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tRubyComment, lit: ""}, {typ: tIndent, lit: "\t"}, @@ -1878,7 +2893,7 @@ func Test_HamlExecuteCode(t *testing.T) { "with receiver": { input: "@goht (t Tester) test() {\n\t- t.bar", want: []token{ - {typ: tGohtStart, lit: "(t Tester) test()"}, + {typ: tTemplateStart, lit: "(t Tester) test()"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "t.bar"}, {typ: tEOF, lit: ""}, @@ -1887,7 +2902,7 @@ func Test_HamlExecuteCode(t *testing.T) { "with receiver and interface": { input: "@goht (t Tester) test(v interface{}) {\n\t- t.bar", want: []token{ - {typ: tGohtStart, lit: "(t Tester) test(v interface{})"}, + {typ: tTemplateStart, lit: "(t Tester) test(v interface{})"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "t.bar"}, {typ: tEOF, lit: ""}, @@ -1896,7 +2911,7 @@ func Test_HamlExecuteCode(t *testing.T) { "with receiver and interface with methods": { input: "@goht (t Tester) test(v interface{ Foo() string }) {\n\t- t.bar", want: []token{ - {typ: tGohtStart, lit: "(t Tester) test(v interface{ Foo() string })"}, + {typ: tTemplateStart, lit: "(t Tester) test(v interface{ Foo() string })"}, {typ: tIndent, lit: "\t"}, {typ: tSilentScript, lit: "t.bar"}, {typ: tEOF, lit: ""}, @@ -1916,6 +2931,67 @@ func Test_HamlExecuteCode(t *testing.T) { } } +func Test_SlimSilentCode(t *testing.T) { + tests := map[string]struct { + input string + want []token + }{ + "simple": { + input: "@slim test() {\n\t-foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tSilentScript, lit: "foo"}, + {typ: tEOF, lit: ""}, + }, + }, + "with space": { + input: "@slim test() {\n\t- foo", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tSilentScript, lit: "foo"}, + {typ: tEOF, lit: ""}, + }, + }, + "not code": { + input: "@slim test() {\n\tp - bar", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "- bar"}, + {typ: tEOF, lit: ""}, + }, + }, + "multiline code": { + input: "@slim test() {\n\t- foo(\\\n\t\tbar,\n\t\tbaz,\n\t\t)\n\tp foo\n}", + want: []token{ + {typ: tTemplateStart, lit: "test()"}, + {typ: tIndent, lit: "\t"}, + {typ: tSilentScript, lit: "foo(bar,baz,)"}, + {typ: tIndent, lit: "\t"}, + {typ: tTag, lit: "p"}, + {typ: tPlainText, lit: "foo"}, + {typ: tNewLine, lit: "\n"}, + {typ: tTemplateEnd, lit: ""}, + {typ: tEOF, lit: ""}, + }, + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + l := newLexer([]byte(tt.input)) + for _, want := range tt.want { + got := l.nextToken() + if got.typ != want.typ || got.lit != want.lit { + t.Errorf("want %v, got %v", want, got) + } + } + }) + } +} + func Test_HamlIndent(t *testing.T) { tests := map[string]struct { input string @@ -1924,21 +3000,21 @@ func Test_HamlIndent(t *testing.T) { "simple": { input: "@goht test() {\n\t%foo\n\t\tbar\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tNewLine, lit: "\n"}, {typ: tIndent, lit: "\t\t"}, {typ: tPlainText, lit: "bar"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "indented too deep": { input: "@goht test() {\n\t%foo\n\t\t\tbar\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "foo"}, {typ: tNewLine, lit: "\n"}, @@ -1953,7 +3029,7 @@ func Test_HamlIndent(t *testing.T) { %p3 three }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p1"}, {typ: tNewLine, lit: "\n"}, @@ -1968,7 +3044,7 @@ func Test_HamlIndent(t *testing.T) { {typ: tTag, lit: "p3"}, {typ: tPlainText, lit: "three"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -1978,7 +3054,7 @@ func Test_HamlIndent(t *testing.T) { %p2 }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p1"}, {typ: tNewLine, lit: "\n"}, @@ -1993,7 +3069,7 @@ func Test_HamlIndent(t *testing.T) { %p3 }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p1"}, {typ: tNewLine, lit: "\n"}, @@ -2026,50 +3102,50 @@ func Test_HamlFilters(t *testing.T) { "simple javascript": { input: "@goht test() {\n\t:javascript\n\t\tfoo\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tFilterStart, lit: "javascript"}, {typ: tPlainText, lit: "foo\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "simple css": { input: "@goht test() {\n\t:css\n\t\tfoo\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tFilterStart, lit: "css"}, {typ: tPlainText, lit: "foo\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "indented": { input: "@goht test() {\n\t:javascript\n\t\tfoo\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tFilterStart, lit: "javascript"}, {typ: tPlainText, lit: "foo\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, "interpolation": { input: "@goht test() {\n\t:javascript\n\t\tfoo #{bar}\n}", want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tFilterStart, lit: "javascript"}, {typ: tPlainText, lit: "foo "}, {typ: tDynamicText, lit: "bar"}, {typ: tPlainText, lit: "\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -2080,7 +3156,7 @@ func Test_HamlFilters(t *testing.T) { console.log("hello world") }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p"}, {typ: tNewLine, lit: "\n"}, @@ -2088,7 +3164,7 @@ func Test_HamlFilters(t *testing.T) { {typ: tFilterStart, lit: "javascript"}, {typ: tPlainText, lit: "console.log(\"hello world\")\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -2100,7 +3176,7 @@ func Test_HamlFilters(t *testing.T) { %p foo }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tTag, lit: "p"}, {typ: tNewLine, lit: "\n"}, @@ -2112,7 +3188,7 @@ func Test_HamlFilters(t *testing.T) { {typ: tTag, lit: "p"}, {typ: tPlainText, lit: "foo"}, {typ: tNewLine, lit: "\n"}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, @@ -2124,7 +3200,7 @@ func Test_HamlFilters(t *testing.T) { .color { color: red; } }`, want: []token{ - {typ: tGohtStart, lit: "test()"}, + {typ: tTemplateStart, lit: "test()"}, {typ: tIndent, lit: "\t"}, {typ: tFilterStart, lit: "javascript"}, {typ: tPlainText, lit: "console.log(\"Hello\");\n"}, @@ -2133,7 +3209,7 @@ func Test_HamlFilters(t *testing.T) { {typ: tFilterStart, lit: "css"}, {typ: tPlainText, lit: ".color { color: red; }\n"}, {typ: tFilterEnd, lit: ""}, - {typ: tGohtEnd, lit: ""}, + {typ: tTemplateEnd, lit: ""}, {typ: tEOF, lit: ""}, }, }, diff --git a/compiler/lexers.go b/compiler/lexers.go index 61fb85e..37286d8 100644 --- a/compiler/lexers.go +++ b/compiler/lexers.go @@ -112,6 +112,8 @@ func lexTemplate(l *lexer) lexFn { switch l.current() { case "@goht", "@haml": return lexTemplateStart(l, lexHamlLineStart) + case "@slim": + return lexTemplateStart(l, lexSlimLineStart) } return nil } diff --git a/compiler/lexers_haml.go b/compiler/lexers_haml.go index 6e1be32..6ceb738 100644 --- a/compiler/lexers_haml.go +++ b/compiler/lexers_haml.go @@ -6,32 +6,6 @@ import ( "text/scanner" ) -// func lexHamlStart(l *lexer) lexFn { -// l.ignore() -// l.skipRun(" ") -// l.acceptUntil(")") -// if strings.HasPrefix(l.current(), "(") { -// // we've only captured the receiver, so we need to capture the rest of the function signature -// l.next() -// for { -// l.acceptUntil(")") -// // handle the situation where the function signature contains an `interface{}` type with one or more methods -// openParens := strings.Count(l.current(), "(") -// closeParens := strings.Count(l.current(), ")") -// if openParens == closeParens+1 { -// break -// } -// l.next() -// } -// } -// l.next() -// l.emit(tGohtStart) -// l.skipRun(" {") -// l.skipRun("\n\r") -// -// return lexHamlLineStart -// } - func lexHamlLineStart(l *lexer) lexFn { switch l.peek() { case '}': @@ -59,12 +33,6 @@ func lexHamlIndent(l *lexer) lexFn { return l.errorf("haml templates must be indented") } - // if len(indent) == 0 { - // l.indent = 0 - // l.emit(tIndent) - // return lexHamlContentStart - // } - // validate the indent against the sequence and char if lexHamlErr := l.validateIndent(indent); lexHamlErr != nil { return lexHamlErr @@ -100,6 +68,8 @@ func lexHamlContentStart(l *lexer) lexFn { return lexHamlComment case ':': return lexHamlFilterStart + case '{': + return lexHamlAttributesStart case scanner.EOF, '\n', '\r': return lexHamlLineEnd default: @@ -380,9 +350,6 @@ func lexHamlTextContent(l *lexer) lexFn { switch l.peek() { case '\\': isHashComing := l.peekAhead(2) - // if err != nil { - // return l.errorf("unexpected error: %s", err) - // } if isHashComing == "\\#" { l.skip() // was the backslash being escaped? @@ -574,14 +541,8 @@ func lexHamlFilterIndent(indent int, textType tokenType) lexFn { return func(l *lexer) lexFn { var indents string - // // only accept the whitespace that belongs to the indent - // var err error - // peeking first, in case we've reached the end of the filter indents = l.peekAhead(indent) - // if err != nil { - // return l.errorf("unexpected error while evaluating filter indents: %s", err) - // } // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines if len(strings.Trim(indents, "\t")) != 0 { diff --git a/compiler/lexers_slim.go b/compiler/lexers_slim.go index e0ad24f..fa0009f 100644 --- a/compiler/lexers_slim.go +++ b/compiler/lexers_slim.go @@ -33,12 +33,6 @@ func lexSlimIndent(l *lexer) lexFn { return l.errorf("slim templates must be indented") } - // if len(indent) == 0 { - // l.indent = 0 - // l.emit(tIndent) - // return lexSlimContentStart - // } - // validate the indent against the sequence and char if lexSlimErr := l.validateIndent(indent); lexSlimErr != nil { return lexSlimErr @@ -65,6 +59,8 @@ func lexSlimContentStart(l *lexer) lexFn { return lexSlimFilterStart case '|': return lexSlimTextBlock + case '{': + return lexSlimAttributesStart case scanner.EOF, '\n', '\r': return lexSlimLineEnd default: @@ -93,28 +89,18 @@ func lexSlimContent(l *lexer) lexFn { case '=': return lexSlimOutputCode case '/': - return lexSlimVoidTag - case '>', '<': - return lexSlimWhitespaceAddition - case scanner.EOF, '\n', '\r': - return lexSlimLineEnd - default: - return lexSlimTextStart - } -} - -func lexSlimContentEnd(l *lexer) lexFn { - switch l.peek() { - case '=': - return lexSlimOutputCode - case '/': - return lexSlimVoidTag + return lexSlimCloseTag case '>', '<': return lexSlimWhitespaceAddition + case ':': + return lexSlimInlineTag + case ' ', '\t': + l.skip() + return lexSlimTextBlockContent(l.indent+1, 0, tPlainText) case scanner.EOF, '\n', '\r': return lexSlimLineEnd default: - return lexSlimTextStart + return lexSlimTextBlockContent(l.indent+1, 0, tPlainText) } } @@ -144,21 +130,27 @@ func slimIdentifier(typ tokenType, l *lexer) lexFn { } // these characters may follow an identifier - const mayFollowIdentifier = "#.{=!/<> \t\n\r" + const mayFollowIdentifier = "#.{=!/<>: \t\n\r" l.acceptUntil(mayFollowIdentifier) if l.current() == "" { return l.errorf("%s identifier expected", typ) } if l.current() == "doctype" { - l.emit(tDoctype) - l.skipUntil("\n\r") - return lexSlimLineEnd + return lexSlimDoctype } l.emit(typ) return lexSlimContent } +func lexSlimDoctype(l *lexer) lexFn { + l.ignore() + l.skipRun(" \t") + l.acceptUntil("\n\r") + l.emit(tDoctype) + return lexSlimLineEnd +} + func lexSlimTag(l *lexer) lexFn { return slimIdentifier(tTag, l) } @@ -171,21 +163,24 @@ func lexSlimClass(l *lexer) lexFn { return slimIdentifier(tClass, l) } +func lexSlimInlineTag(l *lexer) lexFn { + l.skip() // eat colon + l.skipRun(" \t") + return lexSlimContentStart +} + func lexSlimControlCode(l *lexer) lexFn { l.skip() // eat dash l.skipRun(" \t") - l.acceptUntil("\n\r") - // TODO: Support multiline silent scripts when they end with a backslash or comma - // example: - // - foo = bar \ - // + baz - // - foo = bigCall( \ - // bar, - // baz, - // ) - // Extended lines must be indented once. - // Additional indentation is captured and emitted with the script + l.acceptUntil("\\\n\r") + // support long code lines split across multiple lines + if n := l.peek(); n == '\\' || strings.HasSuffix(l.current(), ",") { + if n == '\\' { + l.skip() + } + return lexSlimCodeBlockContent(l.indent+1, tSilentScript) + } l.emit(tSilentScript) return lexSlimLineEnd } @@ -202,23 +197,18 @@ func lexSlimOutputCode(l *lexer) lexFn { case '@': return lexSlimCommandCode default: - l.acceptUntil("\n\r") - // TODO: Support multiline output code when they end with a backslash or comma - // see the comments in lexHamlSilentScript + l.acceptUntil("\\\n\r") + if n := l.peek(); n == '\\' || strings.HasSuffix(l.current(), ",") { + if n == '\\' { + l.skip() + } + return lexSlimCodeBlockContent(l.indent+1, tScript) + } l.emit(tScript) return lexSlimLineEnd } } -func lexSlimTextStart(l *lexer) lexFn { - l.acceptUntil("#.{=!/<> \t\n\r") - if l.current() == "" { - return l.errorf("text expected") - } - l.emit(tPlainText) - return lexSlimContentEnd -} - func lexSlimComment(l *lexer) lexFn { l.skip() // eat slash if l.peek() != '!' { @@ -227,39 +217,172 @@ func lexSlimComment(l *lexer) lexFn { l.emit(tRubyComment) return ignoreIndentedLines(l.indent+1, lexSlimLineStart) } - // HTML comments in slim can be multiline - // The comment continues to the next line if: - // - the number of indents are the same - // - there is at least one more whitespace characters - // The additional whitespace characters are removed from the second+ lines if they are - // to the left of the first non-whitespace character on the first line. - // TODO: Testing appears that this is space based and when you use tabs for the additional whitespace, it doesn't work as expected. - // The '/' and '!' will both count as whitespace characters in this case. - // One additional whitespace character may follow the '!' character. - // This one additional whitespace character is removed from the first line - // and will allow the second+ lines to have one additional whitespace character. - // Example counts: - // "/!This is a comment" is 2 whitespace characters and up to 2 whitespace characters are removed from the second+ lines - // "/! This is a comment" is 3 whitespace characters and up to 3 whitespace characters are removed from the second+ lines - // "/! This is a comment" is 4 whitespace characters and only the first is removed and the second+ lines can have up to 3 whitespace characters - // We remove "up to" the count but do not require the count to be the same. (at least one whitespace character rule remains though) - // In practice, this means if the comments all start at the same column then they are considered to have no whitespace padding. l.skip() // eat bang - return lexSlimFilterLineStart(l.indent+1, tEscapedText) + l.skipRun(" \t") + return lexSlimTextBlockContent(l.indent+1, 0, tComment) +} + +func lexSlimTextBlock(l *lexer) lexFn { + l.skip() // eat pipe + // test for a space after the pipe + if n := l.peek(); n == ' ' || n == '\t' { + return lexSlimTextBlockContent(l.indent+1, 1, tPlainText) + } + return lexSlimTextBlockContent(l.indent+1, 0, tPlainText) } func lexSlimTextBlockLineStart(indent int, spaces int, textType tokenType) lexFn { return func(l *lexer) lexFn { - if l.peek() == '|' { - l.skip() - l.skipRun(" \t") - return lexSlimTextBlockContent(indent, spaces, textType) + switch l.peek() { + case ' ', '\t': + return lexSlimTextBlockIndent(indent, spaces, textType) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + if l.current() != "" { + l.emit(textType) + } + return lexSlimLineStart } - return lexSlimLineEnd } } +func lexSlimTextBlockIndent(indent int, spaces int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + // only accept the whitespace that belongs to the indent + + // peeking first, in case we've reached the end of the filter + indents := l.peekAhead(indent) + + if len(strings.Trim(indents, "\t")) != 0 { + if l.current() != "" { + l.emit(textType) + } + return lexSlimLineStart + } + + l.skipAhead(indent) + + return lexSlimTextBlockContent(indent, spaces, textType) + } +} + +func lexSlimTextBlockContent(indent int, spaces int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + if spaces != 0 { + if n := l.peek(); n == ' ' || n == '\t' { + l.skip() // eat space + } + } + l.acceptUntil("#\n\r") + if len(l.current()) > 0 { + l.emit(textType) + } + + if l.peek() == '#' && !strings.HasSuffix(l.current(), "\\") { + // l.emit(textType) + return lexSlimFilterDynamicText(textType, lexSlimTextBlockContent(indent, spaces, textType)) + } + l.acceptRun("\n\r") + if l.current() != "" { + l.emit(tNewLine) + } + return lexSlimTextBlockLineStart(indent, spaces, textType) + } +} + +func lexSlimCodeBlockLineStart(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + switch l.peek() { + case ' ', '\t': + return lexSlimCodeBlockIndent(indent, textType) + case scanner.EOF: + l.emit(tEOF) + return nil + default: + if l.current() != "" { + l.emit(textType) + } + return lexSlimLineStart + } + } +} + +func lexSlimCodeBlockIndent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + // only accept the whitespace that belongs to the indent + + // peeking first, in case we've reached the end of the block + indents := l.peekAhead(indent) + + if len(strings.Trim(indents, "\t")) != 0 { + if l.current() != "" { + l.emit(textType) + } + return lexSlimLineStart + } + + l.skipAhead(indent) + + return lexSlimCodeBlockContent(indent, textType) + } +} + +func lexSlimCodeBlockContent(indent int, textType tokenType) lexFn { + return func(l *lexer) lexFn { + l.acceptUntil("\n\r") + l.skipRun("\n\r") + return lexSlimCodeBlockLineStart(indent, textType) + } +} + +func lexSlimCloseTag(l *lexer) lexFn { + l.skip() // eat slash + l.skipRun(" \t") + l.acceptUntil("\n\r") + if l.current() != "" { + return l.errorf("no content expected") + } + l.emit(tVoidTag) + return lexSlimLineEnd +} + +func lexSlimCommandCode(l *lexer) lexFn { + l.skipRun("@") + l.acceptUntil("() \t\n\r") + if l.current() == "" { + return l.errorf("command code expected") + } + switch l.current() { + case "render": + l.acceptRun("() \t") + l.ignore() + l.acceptUntil("\\\n\r") + if l.current() == "" { + return l.errorf("render argument expected") + } + if n := l.peek(); n == '\\' || strings.HasSuffix(l.current(), ",") { + if n == '\\' { + l.skip() + } + return lexSlimCodeBlockContent(l.indent+1, tRenderCommand) + } + l.emit(tRenderCommand) + case "children": + l.acceptRun("() \t") + l.ignore() + l.acceptUntil("\n\r") + if l.current() != "" { + return l.errorf("children command does not accept arguments") + } + l.emit(tChildrenCommand) + } + l.skipRun("\n\r") + return lexSlimLineStart +} + var slimFilters = []string{"javascript", "css"} func lexSlimFilterStart(l *lexer) lexFn { @@ -302,14 +425,8 @@ func lexSlimFilterIndent(indent int, textType tokenType) lexFn { return func(l *lexer) lexFn { var indents string - // // only accept the whitespace that belongs to the indent - // var err error - // peeking first, in case we've reached the end of the filter indents = l.peekAhead(indent) - // if err != nil { - // return l.errorf("unexpected error while evaluating filter indents: %s", err) - // } // trim the tabs from what we've peeked into; no longer using TrimSpace as that would trim spaces and newlines if len(strings.Trim(indents, "\t")) != 0 { @@ -359,3 +476,172 @@ func lexSlimFilterDynamicText(textType tokenType, next lexFn) lexFn { return next } } + +// Parsing the Slim attributes the same as the Haml attributes + +func lexSlimAttributesStart(l *lexer) lexFn { + l.skip() + return lexSlimAttribute +} + +func lexSlimAttributesEnd(l *lexer) lexFn { + l.skip() + return lexSlimContent +} + +func lexSlimAttribute(l *lexer) lexFn { + // supported attributes + // key + // key:value + // key?value + // @attributes: []any (string, map[string]string, map[string]bool) + + l.skipRun(", \t\n\r") + + switch l.peek() { + case '}': + return lexSlimAttributesEnd + case '@': + return lexSlimAttributeCommandStart + default: + return lexSlimAttributeName + } +} + +func lexSlimAttributeName(l *lexer) lexFn { + if l.peek() == '"' || l.peek() == '`' { + r := continueToMatchingQuote(l, tAttrName, false) + if r == scanner.EOF { + return l.errorf("attribute name not closed: eof") + } else if r != '"' && r != '`' { + return l.errorf("unexpected character: %q", r) + } + } else { + l.acceptUntil("?:,}{\" \t\n\r") + if l.current() == "" { + return l.errorf("attribute name expected") + } + l.emit(tAttrName) + } + + l.skipRun(" \t\n\r") + switch l.peek() { + case '?', ':': + return lexSlimAttributeOperator + case ',', '}': + return lexSlimAttributeEnd + default: + return l.errorf("unexpected character: %q", l.peek()) + } +} + +func lexSlimAttributeOperator(l *lexer) lexFn { + l.skipRun(" \t\n\r") + switch l.peek() { + case '?', ':': + l.next() + l.emit(tAttrOperator) + return lexSlimAttributeValue + } + return l.errorf("unexpected character: %q", l.peek()) +} + +func lexSlimAttributeValue(l *lexer) lexFn { + l.skipRun(" \t\n\r") + + switch l.peek() { + case '"', '`': + return lexSlimAttributeStaticValue + case '#': + return lexSlimAttributeDynamicValue + } + return l.errorf("unexpected character: %q", l.peek()) +} + +func lexSlimAttributeStaticValue(l *lexer) lexFn { + r := continueToMatchingQuote(l, tAttrEscapedValue, true) + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } else if r != '"' && r != '`' { + return l.errorf("unexpected character: %q", r) + } + return lexSlimAttributeEnd +} + +func lexSlimAttributeDynamicValue(l *lexer) lexFn { + l.skip() // skip hash + if l.peek() != '{' { + return l.errorf("unexpected character: %q", l.peek()) + } + l.skip() // skip opening brace + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } + l.backup() + l.emit(tAttrDynamicValue) + l.skip() // skip closing brace + return lexSlimAttributeEnd +} + +func lexSlimAttributeCommandStart(l *lexer) lexFn { + l.skipRun("@") + l.acceptUntil(": \t\n\r") + if l.current() == "" { + return l.errorf("command code expected") + } + switch l.current() { + case "attributes": + return lexSlimAttributeCommand(tAttributesCommand) + default: + return l.errorf("unknown attribute command: %s", l.current()) + } +} + +func lexSlimAttributeCommand(command tokenType) lexFn { + return func(l *lexer) lexFn { + l.ignore() + l.skipUntil(":") + l.skipUntil("{") + l.skip() // skip opening brace + r := continueToMatchingBrace(l, '}') + if r == scanner.EOF { + return l.errorf("attribute value not closed: eof") + } + l.backup() + l.emit(command) + l.skip() // skip closing brace + + return lexSlimAttributeEnd + } +} + +func lexSlimAttributeEnd(l *lexer) lexFn { + l.skipRun(" \t\n\r") + switch l.peek() { + case ',': + l.skip() + return lexSlimAttribute + case '}': + return lexSlimAttributesEnd + default: + return l.errorf("unexpected character: %c", l.peek()) + } +} + +// TODO: Drop support for keeping whitespace; Also update Haml parsing to eat whitespace. +func lexSlimWhitespaceAddition(l *lexer) lexFn { + l.skip() + l.skipRun(" \t") + switch l.peek() { + case '>': + l.skip() + l.emit(tNukeOuterWhitespace) + case '<': + l.skip() + l.emit(tNukeInnerWhitespace) + default: + return l.errorf("unexpected character: %q", l.peek()) + } + return lexSlimContent +} diff --git a/compiler/nodes.go b/compiler/nodes.go index f70369f..f8894e0 100644 --- a/compiler/nodes.go +++ b/compiler/nodes.go @@ -18,7 +18,6 @@ const ( nError nodeType = iota nRoot nGoCode - nGoht nTemplate nIndent nDoctype @@ -42,8 +41,6 @@ func (n nodeType) String() string { return "Root" case nGoCode: return "GoCode" - case nGoht: - return "Goht" case nTemplate: return "Template" case nIndent: @@ -178,6 +175,8 @@ func (n *node) handleNode(p *parser, indent int) error { p.addChild(NewDoctypeNode(p.next())) case tTag, tId, tClass: p.addNode(NewElementNode(p.next(), indent)) + case tAttrName: + p.addNode(NewElementNode(p.peek(), indent)) case tComment: p.addNode(NewCommentNode(p.next(), indent)) case tUnescaped: @@ -204,8 +203,8 @@ func (n *node) handleNode(p *parser, indent int) error { default: return n.errorf("unknown filter: %s", t) } - case tGohtEnd: - return p.backToType(nGoht) + // case tGohtEnd: + // return p.backToType(nGoht) case tTemplateEnd: return p.backToType(nTemplate) case tEOF: @@ -242,7 +241,10 @@ func NewRootNode() *RootNode { } func (n *RootNode) Source(tw *templateWriter) error { - if _, err := tw.Write("// Code generated by GoHT - DO NOT EDIT.\n// https://github.com/stackus/goht\n\n"); err != nil { + if _, err := tw.Write( + fmt.Sprintf("// Code generated by GoHT %s - DO NOT EDIT.\n// https://github.com/stackus/goht\n\n", + goht.Version(), + )); err != nil { return err } @@ -313,8 +315,6 @@ func (n *RootNode) parse(p *parser) error { n.addImport(t) case tGoCode, tNewLine: p.addNode(NewCodeNode(p.next())) - case tGohtStart: - p.addNode(NewGohtNode(p.next())) case tTemplateStart: p.addNode(NewTemplateNode(p.next())) case tEOF: @@ -364,7 +364,7 @@ func (n *CodeNode) parse(p *parser) error { } n.tokens = append(n.tokens, t) return nil - case tPackage, tImport, tGohtStart, tEOF: + case tPackage, tImport, tTemplateStart, tEOF: return p.backToType(nRoot) default: return n.errorf("unexpected: %s", p.peek()) @@ -438,73 +438,6 @@ func (n *TemplateNode) parse(p *parser) error { } } -type GohtNode struct { - node - decl string -} - -func NewGohtNode(t token) *GohtNode { - return &GohtNode{ - node: newNode(nGoht, -1, t), - decl: t.lit, - } -} - -func (n *GohtNode) Source(tw *templateWriter) error { - entry := ` goht.Template { - return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { - __buf, __isBuf := __w.(goht.Buffer) - if !__isBuf { - __buf = goht.GetBuffer() - defer goht.ReleaseBuffer(__buf) - } - var __children goht.Template - ctx, __children = goht.PopChildren(ctx) - _ = __children -` - exit := ` if !__isBuf { - _, __err = __w.Write(__buf.Bytes()) - } - return - }) -}` - tw.ResetVarName() - if _, err := tw.Write("func "); err != nil { - return err - } - if r, err := tw.Write(n.decl); err != nil { - return err - } else { - tw.Add(n.origin, r) - } - if _, err := tw.Write(entry); err != nil { - return err - } - - itw := tw.Indent(2) - for _, c := range n.children { - if err := c.Source(itw); err != nil { - return err - } - } - if _, err := itw.Close(); err != nil { - return err - } - - _, err := tw.Write(exit) - return err -} - -func (n *GohtNode) parse(p *parser) error { - switch p.peek().Type() { - case tGohtEnd: - p.next() - return p.backToType(nRoot) - default: - return n.handleNode(p, 0) - } -} - type DoctypeNode struct { node doctype string @@ -715,7 +648,7 @@ func (n *ElementNode) renderAttributes(tw *templateWriter) error { if _, err := tw.WriteErrorHandler(); err != nil { return err } - if _, err := tw.WriteStringIndent(vName); err != nil { + if _, err := tw.WriteStringIndent(`" "+` + vName); err != nil { return err } } diff --git a/compiler/parser_test.go b/compiler/nodes_test.go similarity index 92% rename from compiler/parser_test.go rename to compiler/nodes_test.go index ab44988..871418d 100644 --- a/compiler/parser_test.go +++ b/compiler/nodes_test.go @@ -16,7 +16,7 @@ func Test_Parsing(t *testing.T) { var foo = "bar" -@goht test(title string, err error) { +@haml test(title string, err error) { !!! 5 %html %head @@ -32,7 +32,7 @@ var foo = "bar" `, want: `Root GoCode - Goht + Template Doctype NewLine Element html() @@ -64,7 +64,7 @@ var foo = "bar" var foo = "bar" @slim test(title string, err error) { - doctype 5 + doctype html head title= title @@ -75,10 +75,11 @@ var foo = "bar" - if err != nil .error p= "Something went wrong" +} `, want: `Root GoCode - Slim + Template Doctype NewLine Element html() @@ -138,7 +139,7 @@ func Test_RootNode(t *testing.T) { }, "simple goht": { input: "package main\n@goht test() {\n}", - want: "Root\n\tGoCode\n\tGoht\n", + want: "Root\n\tGoCode\n\tTemplate\n", }, } @@ -159,7 +160,7 @@ func Test_RootNode(t *testing.T) { } } -func Test_GohtNode(t *testing.T) { +func Test_TemplateNode(t *testing.T) { tests := map[string]struct { input string want string @@ -167,12 +168,12 @@ func Test_GohtNode(t *testing.T) { }{ "empty": { input: "@goht empty() {\n", - want: "Root\n\tGoht\n", + want: "Root\n\tTemplate\n", wantErr: true, }, "simple": { input: "@goht test() {\n\tFoo\n}", - want: "Root\n\tGoht\n\t\tText(S)\n\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tText(S)\n\t\tNewLine\n", }, } for name, test := range tests { @@ -200,11 +201,11 @@ func Test_TextNode(t *testing.T) { }{ "simple": { input: "@goht test() {\n\tFoo\n}", - want: "Root\n\tGoht\n\t\tText(S)\n\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tText(S)\n\t\tNewLine\n", }, "with dynamic text": { input: "@goht test() {\n\tFoo #{foo}\n}", - want: "Root\n\tGoht\n\t\tText(S)\n\t\tText(D)\n\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tText(S)\n\t\tText(D)\n\t\tNewLine\n", }, } for name, test := range tests { @@ -233,7 +234,7 @@ func Test_UnescapeNode(t *testing.T) { "empty": { input: "@goht test() {\n\t!\n}", want: `Root - Goht + Template Unescape NewLine `, @@ -243,7 +244,7 @@ func Test_UnescapeNode(t *testing.T) { ! Foo }`, want: `Root - Goht + Template Unescape Text(S) NewLine @@ -251,11 +252,11 @@ func Test_UnescapeNode(t *testing.T) { }, "dynamic text": { input: "@goht test() {\n\t! #{foo}\n}", - want: "Root\n\tGoht\n\t\tUnescape\n\t\t\tText(D)\n\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tUnescape\n\t\t\tText(D)\n\t\tNewLine\n", }, "static and dynamic text": { input: "@goht test() {\n\t! Foo #{foo}\n}", - want: "Root\n\tGoht\n\t\tUnescape\n\t\t\tText(S)\n\t\t\tText(D)\n\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tUnescape\n\t\t\tText(S)\n\t\t\tText(D)\n\t\tNewLine\n", }, "illegal nesting": { input: `@goht test() { @@ -263,7 +264,7 @@ func Test_UnescapeNode(t *testing.T) { bar }`, want: `Root - Goht + Template Element p() Unescape Text(S) @@ -277,7 +278,7 @@ func Test_UnescapeNode(t *testing.T) { %p! This #{html} HTML. }`, want: `Root - Goht + Template SilentScript Element p() Text(S) @@ -316,12 +317,12 @@ func Test_ElementNode(t *testing.T) { }{ "simple": { input: "@goht test() {\n\t%p\n}", - want: "Root\n\tGoht\n\t\tElement p()\n\t\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tElement p()\n\t\t\tNewLine\n", }, "illegal nesting": { input: "@goht test() {\n\t%p foo\n\t\t%p bar\n}", want: `Root - Goht + Template Element p() Text(S) `, @@ -330,7 +331,7 @@ func Test_ElementNode(t *testing.T) { "unescaped text": { input: "@goht test() {\n\t%p! foo\n}", want: `Root - Goht + Template Element p() Unescape Text(S) @@ -342,7 +343,7 @@ func Test_ElementNode(t *testing.T) { %p bar }`, want: `Root - Goht + Template Element p() Unescape Text(S) @@ -358,7 +359,7 @@ func Test_ElementNode(t *testing.T) { %img{src: "foo.png"} }`, want: `Root - Goht + Template Element p() Text(S) Element img(src="foo.png") @@ -377,7 +378,7 @@ func Test_ElementNode(t *testing.T) { %closed/ }`, want: `Root - Goht + Template Element p() Text(S) Element closed() @@ -390,7 +391,7 @@ func Test_ElementNode(t *testing.T) { }, "with object ref": { input: "@goht test() {\n\t%p[foo]\n}", - want: "Root\n\tGoht\n\t\tElement p()\n\t\t\tNewLine\n", + want: "Root\n\tTemplate\n\t\tElement p()\n\t\t\tNewLine\n", }, } for name, test := range tests { @@ -419,15 +420,23 @@ func Test_ElementAttributes(t *testing.T) { "simple": { input: "@goht test() {\n\t%p{foo:\"bar\"}\n}", want: `Root - Goht + Template Element p(foo="bar") NewLine +`, + }, + "no tag": { + input: "@goht test() {\n\t{foo:\"bar\"}\n}", + want: `Root + Template + Element div(foo="bar") + NewLine `, }, "dynamic attribute": { input: "@goht test() {\n\t%p{foo:#{bar}}\n}", want: `Root - Goht + Template Element p(foo={bar}) NewLine `, @@ -435,7 +444,7 @@ func Test_ElementAttributes(t *testing.T) { "quoted attribute names": { input: "@goht test() {\n\t%p{\"x:foo\":#{bar}, `@fizz`:`b\"uzz`}\n}", want: `Root - Goht + Template Element p(x:foo={bar},@fizz="b\"uzz") NewLine `, @@ -443,7 +452,7 @@ func Test_ElementAttributes(t *testing.T) { "attributes command": { input: "@goht test() {\n\t%p{foo:#{bar}, @attributes:#{list}}\n}", want: `Root - Goht + Template Element p(foo={bar},@attrs={list...}) NewLine `, @@ -456,7 +465,7 @@ func Test_ElementAttributes(t *testing.T) { } }`, want: `Root - Goht + Template Element p(foo={bar},@attrs={list...}) NewLine `, @@ -467,7 +476,7 @@ func Test_ElementAttributes(t *testing.T) { %p bar }`, want: `Root - Goht + Template Element p() Text(S) Element p() @@ -479,7 +488,7 @@ func Test_ElementAttributes(t *testing.T) { .foo{bar} fizz }`, want: `Root - Goht + Template Element div(bar) Text(S) `, @@ -511,14 +520,14 @@ func Test_SilentScriptNode(t *testing.T) { "simple": { input: "@goht test() {\n\t- var foo = \"bar\"\n}", want: `Root - Goht + Template SilentScript `, }, "nested content": { input: "@goht test() {\n\t- var foo = \"bar\"\n\t\t%p= foo\n}", want: `Root - Goht + Template SilentScript Element p() Script @@ -527,7 +536,7 @@ func Test_SilentScriptNode(t *testing.T) { "mixed indents": { input: "@goht test() {\n\t%p1 one\n\t- if foo {\n\t\t%p bar\n\t- }\n\t%p2 two\n}", want: `Root - Goht + Template Element p1() Text(S) SilentScript @@ -541,7 +550,7 @@ func Test_SilentScriptNode(t *testing.T) { "shorter indent": { input: "@goht test() {\n\t%p1\n\t\t- if foo\n\t%p2 two\n}", want: `Root - Goht + Template Element p1() NewLine SilentScript @@ -552,7 +561,7 @@ func Test_SilentScriptNode(t *testing.T) { "ruby style comment": { input: "@goht test() {\n\t-# foo\n\t%p bar\n}", want: `Root - Goht + Template Element p() Text(S) `, @@ -584,7 +593,7 @@ func Test_CommentNode(t *testing.T) { "same line": { input: "@goht test() {\n\t/ foo\n}", want: `Root - Goht + Template Comment NewLine `, @@ -592,7 +601,7 @@ func Test_CommentNode(t *testing.T) { "nested content": { input: "@goht test() {\n\t/\n\t\t%p bar\n}", want: `Root - Goht + Template Comment NewLine Element p() @@ -626,7 +635,7 @@ func Test_ScriptNode(t *testing.T) { "simple": { input: "@goht test() {\n\t= foo\n}", want: `Root - Goht + Template Script NewLine `, @@ -634,7 +643,7 @@ func Test_ScriptNode(t *testing.T) { "after element": { input: "@goht test() {\n\t%p= foo\n}", want: `Root - Goht + Template Element p() Script `, @@ -642,7 +651,7 @@ func Test_ScriptNode(t *testing.T) { "before content": { input: "@goht test() {\n\t= foo\n\t%p bar\n}", want: `Root - Goht + Template Script NewLine Element p() @@ -652,7 +661,7 @@ func Test_ScriptNode(t *testing.T) { "mixed indents": { input: "@goht test() {\n\t%p1\n\t\t%p2= foo\n\t%p3 bar\n}", want: `Root - Goht + Template Element p1() NewLine Element p2() @@ -688,14 +697,14 @@ func Test_RenderNode(t *testing.T) { "simple": { input: "@goht test() {\n\t= @render foo()\n}", want: `Root - Goht + Template RenderCommand `, }, "with children": { input: "@goht test() {\n\t= @render foo()\n\t\t%p bar\n}", want: `Root - Goht + Template RenderCommand Element p() Text(S) @@ -704,7 +713,7 @@ func Test_RenderNode(t *testing.T) { "mixed indents": { input: "@goht test() {\n\t%p1 one\n\t= @render foo()\n\t\t%p bar\n\t%p2 two\n}", want: `Root - Goht + Template Element p1() Text(S) RenderCommand @@ -741,14 +750,14 @@ func Test_ChildrenCommand(t *testing.T) { "simple": { input: "@goht test() {\n\t= @children\n}", want: `Root - Goht + Template ChildrenCommand `, }, "mixed indents": { input: "@goht test() {\n\t%p1 one\n\t%parent\n\t\t= @children\n\t%p2 two\n}", want: `Root - Goht + Template Element p1() Text(S) Element parent() diff --git a/compiler/testdata/attributes.goht.go b/compiler/testdata/attributes.goht.go index 72b076c..b64021d 100644 --- a/compiler/testdata/attributes.goht.go +++ b/compiler/testdata/attributes.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata @@ -41,7 +41,7 @@ func AttributesTest() goht.Template { if __err != nil { return } - if _, __err = __buf.WriteString(__var1); __err != nil { + if _, __err = __buf.WriteString(" " + __var1); __err != nil { return } if _, __err = __buf.WriteString(">\n"); __err != nil { diff --git a/compiler/testdata/comments.goht.go b/compiler/testdata/comments.goht.go index 6b05793..c4e2a3d 100644 --- a/compiler/testdata/comments.goht.go +++ b/compiler/testdata/comments.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/conditionals.goht.go b/compiler/testdata/conditionals.goht.go index 11949c7..bf072ca 100644 --- a/compiler/testdata/conditionals.goht.go +++ b/compiler/testdata/conditionals.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/elements.goht.go b/compiler/testdata/elements.goht.go index 298e1f9..544af02 100644 --- a/compiler/testdata/elements.goht.go +++ b/compiler/testdata/elements.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/filters.goht.go b/compiler/testdata/filters.goht.go index dabf043..8e551e2 100644 --- a/compiler/testdata/filters.goht.go +++ b/compiler/testdata/filters.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/imports.goht.go b/compiler/testdata/imports.goht.go index 6ca7668..27237fb 100644 --- a/compiler/testdata/imports.goht.go +++ b/compiler/testdata/imports.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/interpolation.goht.go b/compiler/testdata/interpolation.goht.go index 1106383..e5d75d4 100644 --- a/compiler/testdata/interpolation.goht.go +++ b/compiler/testdata/interpolation.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/newlines.goht.go b/compiler/testdata/newlines.goht.go index af50403..2965a99 100644 --- a/compiler/testdata/newlines.goht.go +++ b/compiler/testdata/newlines.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/obj_references.goht.go b/compiler/testdata/obj_references.goht.go index fa89f7b..42dc461 100644 --- a/compiler/testdata/obj_references.goht.go +++ b/compiler/testdata/obj_references.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/package.goht.go b/compiler/testdata/package.goht.go index 443b907..58e386a 100644 --- a/compiler/testdata/package.goht.go +++ b/compiler/testdata/package.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/rendering.goht.go b/compiler/testdata/rendering.goht.go index 0be9337..bad7346 100644 --- a/compiler/testdata/rendering.goht.go +++ b/compiler/testdata/rendering.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/testdata/whitespace.goht.go b/compiler/testdata/whitespace.goht.go index 70666b3..d1a1fb9 100644 --- a/compiler/testdata/whitespace.goht.go +++ b/compiler/testdata/whitespace.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package testdata diff --git a/compiler/tokens.go b/compiler/tokens.go index 9227cf0..155ee10 100644 --- a/compiler/tokens.go +++ b/compiler/tokens.go @@ -24,8 +24,6 @@ const ( tGoCode // Template tokens - tGohtStart - tGohtEnd tTemplateStart tTemplateEnd @@ -75,10 +73,10 @@ func (t tokenType) String() string { return "Import" case tGoCode: return "GoCode" - case tGohtStart: - return "GohtStart" - case tGohtEnd: - return "GohtEnd" + // case tGohtStart: + // return "GohtStart" + // case tGohtEnd: + // return "GohtEnd" case tTemplateStart: return "TemplateStart" case tTemplateEnd: diff --git a/compiler/tokens_test.go b/compiler/tokens_test.go index 8198401..69e0a35 100644 --- a/compiler/tokens_test.go +++ b/compiler/tokens_test.go @@ -37,14 +37,6 @@ func Test_TokenStringer(t *testing.T) { typ: tGoCode, want: "GoCode", }, - "tGohtStart": { - typ: tGohtStart, - want: "GohtStart", - }, - "tGohtEnd": { - typ: tGohtEnd, - want: "GohtEnd", - }, "tDoctype": { typ: tDoctype, want: "Doctype", diff --git a/docs/goht_header_html.png b/docs/goht_header_html.png new file mode 100644 index 0000000000000000000000000000000000000000..9d205b21eb801310767145d19258171f0b9fedbe GIT binary patch literal 914978 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

9jPi)Kpt1bMQpaPW@ZydD~zk~J3Z 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≀$pfs^$aG0H5!= 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

Id*DS3#n!WF5ouCXNG$*E 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 z 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

B~BhuvP}3M?Z%smfHt?@f%udlZo3X-eg?D-XNk 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

a52h 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 z

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

#jFJve{z$wvGDCqdAfSw~}b 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 literal 0 HcmV?d00001 diff --git a/examples/attributes/additional.goht b/examples/attributes/additional.goht index 7f3d298..d75b99e 100644 --- a/examples/attributes/additional.goht +++ b/examples/attributes/additional.goht @@ -21,3 +21,15 @@ var strAttrs = map[string]string{ @attributes: #{boolAttrs, strAttrs}, } } + +@haml HamlAttributesCmd() { + %input{ + @attributes: #{boolAttrs, strAttrs}, + } +} + +@slim SlimAttributesCmd() { + input{ + @attributes: #{boolAttrs, strAttrs}, + } +} diff --git a/examples/attributes/additional.goht.go b/examples/attributes/additional.goht.go index 7a003f4..2240427 100644 --- a/examples/attributes/additional.goht.go +++ b/examples/attributes/additional.goht.go @@ -41,7 +41,69 @@ func AttributesCmd() goht.Template { if __err != nil { return } - if _, __err = __buf.WriteString(__var1); __err != nil { + if _, __err = __buf.WriteString(" " + __var1); __err != nil { + return + } + if _, __err = __buf.WriteString(">"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlAttributesCmd() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimAttributesCmd() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { diff --git a/examples/attributes/classes.goht b/examples/attributes/classes.goht index 04894ec..1cc3a20 100644 --- a/examples/attributes/classes.goht +++ b/examples/attributes/classes.goht @@ -26,3 +26,11 @@ var myOptionalClasses = map[string]bool{ @goht Classes() { %p.fizz.buzz{class: #{myClassList, myOptionalClasses}} } + +@haml HamlClasses() { + %p.fizz.buzz{class: #{myClassList, myOptionalClasses}} +} + +@slim SlimClasses() { + p.fizz.buzz{class: #{myClassList, myOptionalClasses}} +} diff --git a/examples/attributes/classes.goht.go b/examples/attributes/classes.goht.go index 37c82ae..2fd4a6a 100644 --- a/examples/attributes/classes.goht.go +++ b/examples/attributes/classes.goht.go @@ -60,3 +60,65 @@ func Classes() goht.Template { return }) } + +func HamlClasses() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimClasses() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/attributes/general.goht b/examples/attributes/general.goht index bcdb955..dbd426e 100644 --- a/examples/attributes/general.goht +++ b/examples/attributes/general.goht @@ -9,6 +9,14 @@ package attributes %p{class: "foo", id: "bar"} This is a paragraph. } +@haml HamlStaticAttrs() { + %p{class: "foo", id: "bar"} This is a paragraph. +} + +@slim SlimStaticAttrs() { + p{class: "foo", id: "bar"} This is a paragraph. +} + // You can also use dynamic values for your attributes. Dynamic attribute // values share the same syntax as the interpolated values. A hash and a // pair of curly braces. @@ -19,6 +27,14 @@ var myDynamicValue = "foo" %p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. } +@haml HamlDynamicAttrs() { + %p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. +} + +@slim SlimDynamicAttrs() { + p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. +} + // There are times when you have a lot of attributes and you want to keep // your lines short. You can break up your attributes into multiple lines // without any additional syntax. @@ -32,6 +48,20 @@ var myDynamicValue = "foo" } This is a paragraph. } +@haml HamlMultilineAttrs() { + %p{ + class: #{myDynamicValue}, + id: "bar", + } This is a paragraph. +} + +@slim SlimMultilineAttrs() { + p{ + class: #{myDynamicValue}, + id: "bar", + } This is a paragraph. +} + // You may include as much whitespace as you wish between the attribute, // operator, value, and attribute separator. The following are all valid. @@ -42,6 +72,20 @@ var myDynamicValue = "foo" %p{class :#{myDynamicValue}, id : "bar"} This is a paragraph. } +@haml HamlWhitespaceAttrs() { + %p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. + %p{class:#{myDynamicValue},id:"bar"} This is a paragraph. + %p{class: #{myDynamicValue},id: "bar"} This is a paragraph. + %p{class :#{myDynamicValue}, id : "bar"} This is a paragraph. +} + +@slim SlimWhitespaceAttrs() { + p{class: #{myDynamicValue}, id: "bar"} This is a paragraph. + p{class:#{myDynamicValue},id:"bar"} This is a paragraph. + p{class: #{myDynamicValue},id: "bar"} This is a paragraph. + p{class :#{myDynamicValue}, id : "bar"} This is a paragraph. +} + // The dynamic attribute values may also include formatting rules just like // the interpolated values. The attribute values are always evaluated as // strings and are always rendered inside double quotes in the final HTML. @@ -51,3 +95,11 @@ var intVar = 10 @goht FormattedValue() { %textarea{rows: #{%d intVar}, cols: "80"} } + +@haml HamlFormattedValue() { + %textarea{rows: #{%d intVar}, cols: "80"} +} + +@slim SlimFormattedValue() { + textarea{rows: #{%d intVar}, cols: "80"} +} diff --git a/examples/attributes/general.goht.go b/examples/attributes/general.goht.go index 65a832a..db602ac 100644 --- a/examples/attributes/general.goht.go +++ b/examples/attributes/general.goht.go @@ -32,6 +32,46 @@ func StaticAttrs() goht.Template { }) } +func HamlStaticAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimStaticAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You can also use dynamic values for your attributes. Dynamic attribute // values share the same syntax as the interpolated values. A hash and a // pair of curly braces. @@ -69,6 +109,68 @@ func DynamicAttrs() goht.Template { }) } +func HamlDynamicAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimDynamicAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // There are times when you have a lot of attributes and you want to keep // your lines short. You can break up your attributes into multiple lines // without any additional syntax. @@ -106,6 +208,68 @@ func MultilineAttrs() goht.Template { }) } +func HamlMultilineAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimMultilineAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may include as much whitespace as you wish between the attribute, // operator, value, and attribute separator. The following are all valid. @@ -173,6 +337,134 @@ func WhitespaceAttrs() goht.Template { }) } +func HamlWhitespaceAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\nThis is a paragraph.

\nThis is a paragraph.

\nThis is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimWhitespaceAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("This is a paragraph.

\nThis is a paragraph.

\nThis is a paragraph.

\nThis is a paragraph.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // The dynamic attribute values may also include formatting rules just like // the interpolated values. The attribute values are always evaluated as // strings and are always rendered inside double quotes in the final HTML. @@ -204,3 +496,55 @@ func FormattedValue() goht.Template { return }) } + +func HamlFormattedValue() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimFormattedValue() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/attributes/names.goht b/examples/attributes/names.goht index 8377738..e2a80c2 100644 --- a/examples/attributes/names.goht +++ b/examples/attributes/names.goht @@ -14,6 +14,24 @@ package attributes } Goht } +@haml HamlSimpleNames() { + %a{ + href: "https://github.com/stackus/goht", + data-foo: "bar", + odd_name: "baz", + _: "I'm a _hyperscript attribute!" + } Goht +} + +@slim SlimSimpleNames() { + a{ + href: "https://github.com/stackus/goht", + data-foo: "bar", + odd_name: "baz", + _: "I'm a _hyperscript attribute!" + } Goht +} + // For more complex names, such as data attributes, you can use // enclose the name in in double quotes or backticks. // - Names that start with an at sign (@). @@ -28,3 +46,19 @@ package attributes `@click`: "show = !show", } Goht } + +@haml HamlComplexNames() { + %a{ + href: "https://github.com/stackus/goht", + `:class`: "show ? '' : 'hidden'", + `@click`: "show = !show", + } Goht +} + +@slim SlimComplexNames() { + a{ + href: "https://github.com/stackus/goht", + `:class`: "show ? '' : 'hidden'", + `@click`: "show = !show", + } Goht +} diff --git a/examples/attributes/names.goht.go b/examples/attributes/names.goht.go index bbb20eb..8c5d723 100644 --- a/examples/attributes/names.goht.go +++ b/examples/attributes/names.goht.go @@ -32,6 +32,46 @@ func SimpleNames() goht.Template { }) } +func HamlSimpleNames() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
Goht\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimSimpleNames() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Goht\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // For more complex names, such as data attributes, you can use // enclose the name in in double quotes or backticks. // - Names that start with an at sign (@). @@ -58,3 +98,43 @@ func ComplexNames() goht.Template { return }) } + +func HamlComplexNames() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Goht\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimComplexNames() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Goht\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/attributes/optional.goht b/examples/attributes/optional.goht index 81117b1..f37cc76 100644 --- a/examples/attributes/optional.goht +++ b/examples/attributes/optional.goht @@ -18,3 +18,13 @@ var foo = "bar" %button{disabled? #{disabled}} Click me! %button{disabled? #{foo == "bar"}} Click me! } + +@haml HamlConditionalAttrs() { + %button{disabled? #{disabled}} Click me! + %button{disabled? #{foo == "bar"}} Click me! +} + +@slim SlimConditionalAttrs() { + button{disabled? #{disabled}} Click me! + button{disabled? #{foo == "bar"}} Click me! +} diff --git a/examples/attributes/optional.goht.go b/examples/attributes/optional.goht.go index 53bf5e4..23f155a 100644 --- a/examples/attributes/optional.goht.go +++ b/examples/attributes/optional.goht.go @@ -56,3 +56,75 @@ func ConditionalAttrs() goht.Template { return }) } + +func HamlConditionalAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Click me!\nClick me!\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimConditionalAttrs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Click me!\nClick me!\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/commands/children.goht b/examples/commands/children.goht index e4b613d..eec83ca 100644 --- a/examples/commands/children.goht +++ b/examples/commands/children.goht @@ -15,3 +15,15 @@ package commands The following was passed in from the calling template: = @children } + +@haml HamlChildrenExample() { + %p + The following was passed in from the calling template: + = @children +} + +@slim SlimChildrenExample() { + p + The following was passed in from the calling template: + = @children +} diff --git a/examples/commands/children.goht.go b/examples/commands/children.goht.go index 0ced31e..2be33ef 100644 --- a/examples/commands/children.goht.go +++ b/examples/commands/children.goht.go @@ -42,3 +42,55 @@ func ChildrenExample() goht.Template { return }) } + +func HamlChildrenExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\nThe following was passed in from the calling template:\n"); __err != nil { + return + } + if __err = __children.Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimChildrenExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\nfollowing was passed in from the calling template:\n"); __err != nil { + return + } + if __err = __children.Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/commands/render.goht b/examples/commands/render.goht index 81d8242..11472b7 100644 --- a/examples/commands/render.goht +++ b/examples/commands/render.goht @@ -10,6 +10,16 @@ package commands %p the other template was rendered above. } +@haml HamlRenderExample() { + %p= @render ChildrenExample() + %p the other template was rendered above. +} + +@slim SlimRenderExample() { + p= @render ChildrenExample() + p the other template was rendered above. +} + // You may also include nested content to be rendered by the template. // You do not need to include any opening or closing braces when you // are passing content on to be rendered by another template. @@ -19,3 +29,15 @@ package commands = @render ChildrenExample() %span this content will be rendered by the other template. } + +@haml HamlRenderWithChildrenExample() { + %p The other template will be rendered below. + = @render ChildrenExample() + %span this content will be rendered by the other template. +} + +@slim SlimRenderWithChildrenExample() { + p The other template will be rendered below. + = @render ChildrenExample() + span this content will be rendered by the other template. +} diff --git a/examples/commands/render.goht.go b/examples/commands/render.goht.go index a517215..46b53ce 100644 --- a/examples/commands/render.goht.go +++ b/examples/commands/render.goht.go @@ -38,6 +38,58 @@ func RenderExample() goht.Template { }) } +func HamlRenderExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + if __err = ChildrenExample().Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

the other template was rendered above.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimRenderExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + if __err = ChildrenExample().Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

the other template was rendered above.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may also include nested content to be rendered by the template. // You do not need to include any opening or closing braces when you // are passing content on to be rendered by another template. @@ -78,3 +130,77 @@ func RenderWithChildrenExample() goht.Template { return }) } + +func HamlRenderWithChildrenExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The other template will be rendered below.

\n"); __err != nil { + return + } + __var1 := goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + if _, __err = __buf.WriteString("this content will be rendered by the other template.\n"); __err != nil { + return + } + if !__isBuf { + _, __err = io.Copy(__w, __buf) + } + return + }) + if __err = ChildrenExample().Render(goht.PushChildren(ctx, __var1), __buf); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimRenderWithChildrenExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The other template will be rendered below.

\n"); __err != nil { + return + } + __var1 := goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + if _, __err = __buf.WriteString("this content will be rendered by the other template.\n"); __err != nil { + return + } + if !__isBuf { + _, __err = io.Copy(__w, __buf) + } + return + }) + if __err = ChildrenExample().Render(goht.PushChildren(ctx, __var1), __buf); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/comments/html.goht b/examples/comments/html.goht index 859d5bb..9aad421 100644 --- a/examples/comments/html.goht +++ b/examples/comments/html.goht @@ -10,6 +10,19 @@ package comments / This is a HTML comment } +@haml HamlHtmlComments() { + %p This is a paragraph + / This is a HTML comment +} + +// HTML comments in the Slim syntax use "/!" to indicate the start of +// the comment. + +@slim SlimHtmlComments() { + p This is a paragraph + /! This is a HTML comment +} + // You may also use them to comment out nested elements. This does // not stop the nested elements from being parsed, just from being // displayed. @@ -19,3 +32,15 @@ package comments / %p This is a paragraph that is commented out } + +@haml HamlHtmlCommentsNested() { + %p This is a paragraph + / + %p This is a paragraph that is commented out +} + +@slim SlimHtmlCommentsNested() { + p This is a paragraph + /! + p This is a paragraph that is commented out +} diff --git a/examples/comments/html.goht.go b/examples/comments/html.goht.go index 9c65a6a..e3f6b07 100644 --- a/examples/comments/html.goht.go +++ b/examples/comments/html.goht.go @@ -32,6 +32,49 @@ func HtmlComments() goht.Template { }) } +func HamlHtmlComments() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph

\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +// HTML comments in the Slim syntax use "/!" to indicate the start of +// the comment. + +func SlimHtmlComments() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph

\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may also use them to comment out nested elements. This does // not stop the nested elements from being parsed, just from being // displayed. @@ -55,3 +98,43 @@ func HtmlCommentsNested() goht.Template { return }) } + +func HamlHtmlCommentsNested() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph

\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimHtmlCommentsNested() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph

\n\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/comments/rubystyle.goht b/examples/comments/rubystyle.goht index a9376f7..3e426bd 100644 --- a/examples/comments/rubystyle.goht +++ b/examples/comments/rubystyle.goht @@ -12,10 +12,22 @@ package comments @goht RubyStyle() { %p This is the only paragraph in the output. -# %p This comment is removed from the output. +} + +@haml HamlRubyStyle() { + %p This is the only paragraph in the output. + -# %p This comment is removed from the output. +} + +// In the Slim syntax "RubyStyle" comments use a "/" to indicate the +// start of the comment +@slim SlimRubyStyle() { + p This is the only paragraph in the output. + / p This comment is removed from the output. } -// Ruby style comments can also be nested. +// Ruby style comments can comment nested content. @goht RubyStyleNested() { %p This is the only paragraph in the output. @@ -23,3 +35,17 @@ package comments %p This paragraph is removed. %%% broken syntax is no problem. } + +@haml HamlRubyStyleNested() { + %p This is the only paragraph in the output. + -# + %p This paragraph is removed. + %%% broken syntax is no problem. +} + +@slim SlimRubyStyleNested() { + p This is the only paragraph in the output. + / + p This paragraph is removed. + %%% broken syntax is no problem. +} diff --git a/examples/comments/rubystyle.goht.go b/examples/comments/rubystyle.goht.go index 8cc5f7d..83406fe 100644 --- a/examples/comments/rubystyle.goht.go +++ b/examples/comments/rubystyle.goht.go @@ -36,7 +36,50 @@ func RubyStyle() goht.Template { }) } -// Ruby style comments can also be nested. +func HamlRubyStyle() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is the only paragraph in the output.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +// In the Slim syntax "RubyStyle" comments use a "/" to indicate the +// start of the comment + +func SlimRubyStyle() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is the only paragraph in the output.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +// Ruby style comments can comment nested content. func RubyStyleNested() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { @@ -57,3 +100,43 @@ func RubyStyleNested() goht.Template { return }) } + +func HamlRubyStyleNested() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is the only paragraph in the output.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimRubyStyleNested() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is the only paragraph in the output.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/doctype/doctype.goht b/examples/doctype/doctype.goht index ff767f7..7d71f83 100644 --- a/examples/doctype/doctype.goht +++ b/examples/doctype/doctype.goht @@ -5,3 +5,11 @@ package doctype @goht Doctype() { !!! } + +@haml HamlDoctype() { + !!! +} + +@slim SlimDoctype() { + doctype +} diff --git a/examples/doctype/doctype.goht.go b/examples/doctype/doctype.goht.go index 1f7f85b..ff98949 100644 --- a/examples/doctype/doctype.goht.go +++ b/examples/doctype/doctype.goht.go @@ -28,3 +28,43 @@ func Doctype() goht.Template { return }) } + +func HamlDoctype() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimDoctype() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/examples_test.go b/examples/examples_test.go index 1ba05a7..7f7a448 100644 --- a/examples/examples_test.go +++ b/examples/examples_test.go @@ -41,7 +41,13 @@ func goldenFile(t *testing.T, fileName string, got []byte, update bool) ([]byte, // If the update flag is set, write the golden file when either the file does not exist or the contents do not match. if update && (!bytes.Equal(want, got) || err != nil) { - err := os.WriteFile(fileName, got, 0644) + // Create the directory if it doesn't exist + dir := filepath.Dir(fileName) + err := os.MkdirAll(dir, 0755) + if err != nil { + return nil, err + } + err = os.WriteFile(fileName, got, 0644) if err != nil { return nil, err } @@ -52,21 +58,21 @@ func goldenFile(t *testing.T, fileName string, got []byte, update bool) ([]byte, return want, nil } -func TestExamples(t *testing.T) { +func TestHamlExamples(t *testing.T) { tests := map[string]struct { template goht.Template htmlFile string }{ "attributes_attributesCmd": { - template: attributes.AttributesCmd(), + template: attributes.HamlAttributesCmd(), htmlFile: "attributes_attributesCmd", }, "attributes_classes": { - template: attributes.Classes(), + template: attributes.HamlClasses(), htmlFile: "attributes_classes", }, "attributes_staticAttrs": { - template: attributes.StaticAttrs(), + template: attributes.HamlStaticAttrs(), htmlFile: "attributes_staticAttrs", }, "attributes_dynamicAttrs": { @@ -98,149 +104,145 @@ func TestExamples(t *testing.T) { htmlFile: "attributes_conditionalAttrs", }, "commands_childrenExample": { - template: commands.ChildrenExample(), + template: commands.HamlChildrenExample(), htmlFile: "commands_childrenExample", }, "commands_renderExample": { - template: commands.RenderExample(), + template: commands.HamlRenderExample(), htmlFile: "commands_renderExample", }, "commands_renderWithChildrenExample": { - template: commands.RenderWithChildrenExample(), + template: commands.HamlRenderWithChildrenExample(), htmlFile: "commands_renderWithChildrenExample", }, "comments_htmlComments": { - template: comments.HtmlComments(), + template: comments.HamlHtmlComments(), htmlFile: "comments_htmlComments", }, "comments_htmlCommentsNested": { - template: comments.HtmlCommentsNested(), + template: comments.HamlHtmlCommentsNested(), htmlFile: "comments_htmlCommentsNested", }, "comments_rubyStyle": { - template: comments.RubyStyle(), + template: comments.HamlRubyStyle(), htmlFile: "comments_rubyStyle", }, "comments_rubyStyleNested": { - template: comments.RubyStyleNested(), + template: comments.HamlRubyStyleNested(), htmlFile: "comments_rubyStyleNested", }, "doctype_doctype": { - template: doctype.Doctype(), + template: doctype.HamlDoctype(), htmlFile: "doctype_doctype", }, "filters_css": { - template: filters.Css(), + template: filters.HamlCss(), htmlFile: "filters_css", }, "filters_javascript": { - template: filters.JavaScript(), + template: filters.HamlJavaScript(), htmlFile: "filters_javascript", }, "filters_plain": { - template: filters.Plain(), + template: filters.HamlPlain(), htmlFile: "filters_plain", }, "filters_escaped": { - template: filters.Escaped(), + template: filters.HamlEscaped(), htmlFile: "filters_escaped", }, "filters_preserve": { - template: filters.Preserve(), + template: filters.HamlPreserve(), htmlFile: "filters_preserve", }, "formatting_intExample": { - template: formatting.IntExample(), + template: formatting.HamlIntExample(), htmlFile: "formatting_intExample", }, "formatting_floatExample": { - template: formatting.FloatExample(), + template: formatting.HamlFloatExample(), htmlFile: "formatting_floatExample", }, "formatting_boolExample": { - template: formatting.BoolExample(), + template: formatting.HamlBoolExample(), htmlFile: "formatting_boolExample", }, "formatting_stringExample": { - template: formatting.StringExample(), + template: formatting.HamlStringExample(), htmlFile: "formatting_stringExample", }, "example_executeCode": { - template: example.ExecuteCode(), + template: example.HamlExecuteCode(), htmlFile: "example_executeCode", }, "example_renderCode": { - template: example.RenderCode(), + template: example.HamlRenderCode(), htmlFile: "example_renderCode", }, "example_doc": { - template: example.Doc(), + template: example.HamlDoc(), htmlFile: "example_doc", }, "example_importExample": { - template: example.ImportExample(), + template: example.HamlImportExample(), htmlFile: "example_importExample", }, "example_conditional": { - template: example.Conditional(), + template: example.HamlConditional(), htmlFile: "example_conditional", }, "example_shorthandConditional": { - template: example.ShorthandConditional(), + template: example.HamlShorthandConditional(), htmlFile: "example_shorthandConditional", }, "example_shorthandSwitch": { - template: example.ShorthandSwitch(), + template: example.HamlShorthandSwitch(), htmlFile: "example_shorthandSwitch", }, "example_interpolateCode": { - template: example.InterpolateCode(), + template: example.HamlInterpolateCode(), htmlFile: "example_interpolateCode", }, "example_noInterpolation": { - template: example.NoInterpolation(), + template: example.HamlNoInterpolation(), htmlFile: "example_noInterpolation", }, "example_escapeInterpolation": { - template: example.EscapeInterpolation(), + template: example.HamlEscapeInterpolation(), htmlFile: "example_escapeInterpolation", }, "example_ignoreInterpolation": { - template: example.IgnoreInterpolation(), + template: example.HamlIgnoreInterpolation(), htmlFile: "example_ignoreInterpolation", }, - "example_packageExample": { - template: example.PackageExample(), - htmlFile: "example_packageExample", - }, "example_userDetails": { template: func() goht.Template { user := example.User{ Name: "John", Age: 30, } - return user.Details() + return user.HamlDetails() }(), htmlFile: "example_userDetails", }, "indents_usingTabs": { - template: indents.UsingTabs(), + template: indents.HamlUsingTabs(), htmlFile: "indents_usingTabs", }, "tags_specifyTag": { - template: tags.SpecifyTag(), + template: tags.HamlSpecifyTag(), htmlFile: "tags_specifyTag", }, "tags_defaultToDivs": { - template: tags.DefaultToDivs(), + template: tags.HamlDefaultToDivs(), htmlFile: "tags_defaultToDivs", }, "tabs_combined": { - template: tags.Combined(), + template: tags.HamlCombined(), htmlFile: "tags_combined", }, "tags_multipleClasses": { - template: tags.MultipleClasses(), + template: tags.HamlMultipleClasses(), htmlFile: "tags_multipleClasses", }, "tags_objectRefs": { @@ -248,7 +250,7 @@ func TestExamples(t *testing.T) { foo := tags.Foo{ ID: "foo", } - return tags.ObjectRefs(foo) + return tags.HamlObjectRefs(foo) }(), htmlFile: "tags_objectRefs", }, @@ -257,24 +259,24 @@ func TestExamples(t *testing.T) { foo := tags.Foo{ ID: "foo", } - return tags.PrefixedObjectRefs(foo) + return tags.HamlPrefixedObjectRefs(foo) }(), htmlFile: "tags_prefixedObjectRefs", }, "tags_selfClosing": { - template: tags.SelfClosing(), + template: tags.HamlSelfClosing(), htmlFile: "tags_selfClosing", }, "tags_alsoSelfClosing": { - template: tags.AlsoSelfClosing(), + template: tags.HamlAlsoSelfClosing(), htmlFile: "tags_alsoSelfClosing", }, "tags_whitespace": { - template: tags.Whitespace(), + template: tags.HamlWhitespace(), htmlFile: "tags_whitespace", }, "tags_removeWhitespace": { - template: tags.RemoveWhitespace(), + template: tags.HamlRemoveWhitespace(), htmlFile: "tags_removeWhitespace", }, "hello_world": { @@ -282,15 +284,15 @@ func TestExamples(t *testing.T) { htmlFile: "hello_world", }, "unescape_unescapeCode": { - template: unescape.UnescapeCode(), + template: unescape.HamlUnescapeCode(), htmlFile: "unescape_unescapeCode", }, "unescape_unescapeInterpolation": { - template: unescape.UnescapeInterpolation(), + template: unescape.HamlUnescapeInterpolation(), htmlFile: "unescape_unescapeInterpolation", }, "unescape_unescapeText": { - template: unescape.UnescapeText(), + template: unescape.HamlUnescapeText(), htmlFile: "unescape_unescapeText", }, } @@ -304,7 +306,245 @@ func TestExamples(t *testing.T) { } got := gotW.Bytes() - goldenFileName := filepath.Join("testdata", tt.htmlFile+".html") + goldenFileName := filepath.Join("testdata", "haml", tt.htmlFile+".html") + want, err := goldenFile(t, goldenFileName, got, *update) + if err != nil { + t.Errorf("error reading golden file: %v", err) + return + } + + if bytes.Equal(want, got) { + return + } + + dmp := diffmatchpatch.New() + diffs := dmp.DiffMain(string(want), string(got), true) + if len(diffs) > 1 { + t.Errorf("diff:\n%s", dmp.DiffPrettyText(diffs)) + } + }) + } +} + +func TestSlimExamples(t *testing.T) { + tests := map[string]struct { + template goht.Template + htmlFile string + }{ + "attributes_attributesCmd": { + template: attributes.SlimAttributesCmd(), + htmlFile: "attributes_attributesCmd", + }, + "attributes_classes": { + template: attributes.SlimClasses(), + htmlFile: "attributes_classes", + }, + "attributes_staticAttrs": { + template: attributes.SlimStaticAttrs(), + htmlFile: "attributes_staticAttrs", + }, + "attributes_dynamicAttrs": { + template: attributes.SlimDynamicAttrs(), + htmlFile: "attributes_dynamicAttrs", + }, + "attributes_multilineAttrs": { + template: attributes.SlimMultilineAttrs(), + htmlFile: "attributes_multilineAttrs", + }, + "attributes_whitespaceAttrs": { + template: attributes.SlimWhitespaceAttrs(), + htmlFile: "attributes_whitespaceAttrs", + }, + "attributes_formattedValue": { + template: attributes.SlimFormattedValue(), + htmlFile: "attributes_formattedValue", + }, + "attributes_simpleNames": { + template: attributes.SlimSimpleNames(), + htmlFile: "attributes_simpleNames", + }, + "attributes_complexNames": { + template: attributes.SlimComplexNames(), + htmlFile: "attributes_complexNames", + }, + "attributes_conditionalAttrs": { + template: attributes.SlimConditionalAttrs(), + htmlFile: "attributes_conditionalAttrs", + }, + "commands_childrenExample": { + template: commands.SlimChildrenExample(), + htmlFile: "commands_childrenExample", + }, + "commands_renderExample": { + template: commands.SlimRenderExample(), + htmlFile: "commands_renderExample", + }, + "commands_renderWithChildrenExample": { + template: commands.SlimRenderWithChildrenExample(), + htmlFile: "commands_renderWithChildrenExample", + }, + "comments_htmlComments": { + template: comments.SlimHtmlComments(), + htmlFile: "comments_htmlComments", + }, + "comments_htmlCommentsNested": { + template: comments.SlimHtmlCommentsNested(), + htmlFile: "comments_htmlCommentsNested", + }, + "comments_rubyStyle": { + template: comments.SlimRubyStyle(), + htmlFile: "comments_rubyStyle", + }, + "comments_rubyStyleNested": { + template: comments.SlimRubyStyleNested(), + htmlFile: "comments_rubyStyleNested", + }, + "doctype_doctype": { + template: doctype.SlimDoctype(), + htmlFile: "doctype_doctype", + }, + "filters_css": { + template: filters.SlimCss(), + htmlFile: "filters_css", + }, + "filters_javascript": { + template: filters.SlimJavaScript(), + htmlFile: "filters_javascript", + }, + // "filters_plain": { + // template: filters.SlimPlain(), + // htmlFile: "filters_plain", + // }, + // "filters_escaped": { + // template: filters.SlimEscaped(), + // htmlFile: "filters_escaped", + // }, + // "filters_preserve": { + // template: filters.SlimPreserve(), + // htmlFile: "filters_preserve", + // }, + "formatting_intExample": { + template: formatting.SlimIntExample(), + htmlFile: "formatting_intExample", + }, + "formatting_floatExample": { + template: formatting.SlimFloatExample(), + htmlFile: "formatting_floatExample", + }, + "formatting_boolExample": { + template: formatting.SlimBoolExample(), + htmlFile: "formatting_boolExample", + }, + "formatting_stringExample": { + template: formatting.SlimStringExample(), + htmlFile: "formatting_stringExample", + }, + "example_executeCode": { + template: example.SlimExecuteCode(), + htmlFile: "example_executeCode", + }, + "example_renderCode": { + template: example.SlimRenderCode(), + htmlFile: "example_renderCode", + }, + "example_doc": { + template: example.SlimDoc(), + htmlFile: "example_doc", + }, + "example_importExample": { + template: example.SlimImportExample(), + htmlFile: "example_importExample", + }, + "example_conditional": { + template: example.SlimConditional(), + htmlFile: "example_conditional", + }, + "example_shorthandConditional": { + template: example.SlimShorthandConditional(), + htmlFile: "example_shorthandConditional", + }, + "example_shorthandSwitch": { + template: example.SlimShorthandSwitch(), + htmlFile: "example_shorthandSwitch", + }, + "example_interpolateCode": { + template: example.SlimInterpolateCode(), + htmlFile: "example_interpolateCode", + }, + "example_noInterpolation": { + template: example.SlimNoInterpolation(), + htmlFile: "example_noInterpolation", + }, + "example_userDetails": { + template: func() goht.Template { + user := example.User{ + Name: "John", + Age: 30, + } + return user.SlimDetails() + }(), + htmlFile: "example_userDetails", + }, + "indents_usingTabs": { + template: indents.SlimUsingTabs(), + htmlFile: "indents_usingTabs", + }, + "tags_inlineTags": { + template: tags.SlimInlineTags(), + htmlFile: "tags_inlineTags", + }, + "tags_specifyTag": { + template: tags.SlimSpecifyTag(), + htmlFile: "tags_specifyTag", + }, + "tags_defaultToDivs": { + template: tags.SlimDefaultToDivs(), + htmlFile: "tags_defaultToDivs", + }, + "tabs_combined": { + template: tags.SlimCombined(), + htmlFile: "tags_combined", + }, + "tags_multipleClasses": { + template: tags.SlimMultipleClasses(), + htmlFile: "tags_multipleClasses", + }, + "tags_selfClosing": { + template: tags.SlimSelfClosing(), + htmlFile: "tags_selfClosing", + }, + "tags_alsoSelfClosing": { + template: tags.SlimAlsoSelfClosing(), + htmlFile: "tags_alsoSelfClosing", + }, + "tags_whitespace": { + template: tags.SlimWhitespace(), + htmlFile: "tags_whitespace", + }, + "tags_removeWhitespace": { + template: tags.SlimRemoveWhitespace(), + htmlFile: "tags_removeWhitespace", + }, + "hello_world": { + template: hello.SlimWorld(), + htmlFile: "hello_world", + }, + "unescape_unescapeCode": { + template: unescape.SlimUnescapeCode(), + htmlFile: "unescape_unescapeCode", + }, + } + for name, tt := range tests { + t.Run(name, func(t *testing.T) { + var gotW bytes.Buffer + err := tt.template.Render(context.Background(), &gotW) + if err != nil { + t.Errorf("error generating template: %v", err) + return + } + + got := gotW.Bytes() + goldenFileName := filepath.Join("testdata", "slim", tt.htmlFile+".html") want, err := goldenFile(t, goldenFileName, got, *update) if err != nil { t.Errorf("error reading golden file: %v", err) diff --git a/examples/filters/css.goht b/examples/filters/css.goht index 1404b27..fa54eb2 100644 --- a/examples/filters/css.goht +++ b/examples/filters/css.goht @@ -11,3 +11,17 @@ var color = "red" color: #{color}; } } + +@haml HamlCss() { + :css + .color { + color: #{color}; + } +} + +@slim SlimCss() { + :css + .color { + color: #{color}; + } +} diff --git a/examples/filters/css.goht.go b/examples/filters/css.goht.go index 938b118..16693d2 100644 --- a/examples/filters/css.goht.go +++ b/examples/filters/css.goht.go @@ -22,7 +22,7 @@ func Css() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString(""); __err != nil { + if _, __err = __buf.WriteString(";\r\n}\r\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlCss() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimCss() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { return } if !__isBuf { diff --git a/examples/filters/javascript.goht b/examples/filters/javascript.goht index 5cf2b5b..756d9c1 100644 --- a/examples/filters/javascript.goht +++ b/examples/filters/javascript.goht @@ -10,3 +10,13 @@ var name = "Bob" :javascript console.log("Hello #{name}!"); } + +@haml HamlJavaScript() { + :javascript + console.log("Hello #{name}!"); +} + +@slim SlimJavaScript() { + :javascript + console.log("Hello #{name}!"); +} diff --git a/examples/filters/javascript.goht.go b/examples/filters/javascript.goht.go index 3b82465..b87c918 100644 --- a/examples/filters/javascript.goht.go +++ b/examples/filters/javascript.goht.go @@ -33,7 +33,67 @@ func JavaScript() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("!\");\n"); __err != nil { + if _, __err = __buf.WriteString("!\");\r\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlJavaScript() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimJavaScript() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { return } if !__isBuf { diff --git a/examples/filters/text.goht b/examples/filters/text.goht index bcd3a95..be9ca4f 100644 --- a/examples/filters/text.goht +++ b/examples/filters/text.goht @@ -12,6 +12,13 @@ package filters #{"This
\"will\"
be interpolated with HTML intact."} } +@haml HamlPlain() { + %p + :plain + This is plain text. It
will
be displayed as HTML. + #{"This
\"will\"
be interpolated with HTML intact."} +} + @goht Escaped() { %p :escaped @@ -19,9 +26,23 @@ package filters #{"This
\"will not\"
be interpolated with HTML intact."} } +@haml HamlEscaped() { + %p + :escaped + This is escaped text. It
will not
be displayed as HTML. + #{"This
\"will not\"
be interpolated with HTML intact."} +} + @goht Preserve() { %p :preserve This is preserved text. It
will
be displayed as HTML. #{"This
\"will\"
be interpolated with HTML intact."} } + +@haml HamlPreserve() { + %p + :preserve + This is preserved text. It
will
be displayed as HTML. + #{"This
\"will\"
be interpolated with HTML intact."} +} diff --git a/examples/filters/text.goht.go b/examples/filters/text.goht.go index f61bee4..473d014 100644 --- a/examples/filters/text.goht.go +++ b/examples/filters/text.goht.go @@ -22,7 +22,7 @@ func Plain() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\r\n"); __err != nil { return } var __var1 string @@ -32,7 +32,37 @@ func Plain() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlPlain() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\r\n"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors("This
\"will\"
be interpolated with HTML intact."); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { return } if !__isBuf { @@ -52,7 +82,7 @@ func Escaped() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\r\n"); __err != nil { return } var __var1 string @@ -62,7 +92,37 @@ func Escaped() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlEscaped() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\r\n"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString("This

\"will not\"
be interpolated with HTML intact.")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { return } if !__isBuf { @@ -82,7 +142,37 @@ func Preserve() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML. "); __err != nil { + if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML.\r "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors("This
\"will\"
be interpolated with HTML intact."); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("\r \n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlPreserve() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML.\r "); __err != nil { return } var __var1 string @@ -92,7 +182,7 @@ func Preserve() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString(" \n

\n"); __err != nil { + if _, __err = __buf.WriteString("\r \n

\n"); __err != nil { return } if !__isBuf { diff --git a/examples/formatting/formats.goht b/examples/formatting/formats.goht index 5cc00fe..bd70977 100644 --- a/examples/formatting/formats.goht +++ b/examples/formatting/formats.goht @@ -23,6 +23,24 @@ var stringVar = "Hello" %p The integer is (#{%c intVar}) as a character. } +@haml HamlIntExample() { + %p The integer is (#{%d intVar}). + %p The integer is (#{%b intVar}) in binary. + %p The integer is (#{%o intVar}) in octal. + %p The integer is (#{%x intVar}) in hex. + %p The integer is (#{%X intVar}) in hex with uppercase. + %p The integer is (#{%c intVar}) as a character. +} + +@slim SlimIntExample() { + p The integer is (#{%d intVar}). + p The integer is (#{%b intVar}) in binary. + p The integer is (#{%o intVar}) in octal. + p The integer is (#{%x intVar}) in hex. + p The integer is (#{%X intVar}) in hex with uppercase. + p The integer is (#{%c intVar}) as a character. +} + @goht FloatExample() { %p The float is (#{%f floatVar}). %p The float is (#{%e floatVar}) in scientific notation. @@ -32,10 +50,36 @@ var stringVar = "Hello" %p The float is (#{%09.2f floatVar}) with 2 decimal places and padded to 9 characters with 0s. } +@haml HamlFloatExample() { + %p The float is (#{%f floatVar}). + %p The float is (#{%e floatVar}) in scientific notation. + %p The float is (#{%.2f floatVar}) with 2 decimal places. + %p The float is (#{%9.2f floatVar}) with 2 decimal places and padded to 9 characters. + %p The float is (#{%-9.2f floatVar}) with 2 decimal places and padded to 9 characters and left aligned. + %p The float is (#{%09.2f floatVar}) with 2 decimal places and padded to 9 characters with 0s. +} + +@slim SlimFloatExample() { + p The float is (#{%f floatVar}). + p The float is (#{%e floatVar}) in scientific notation. + p The float is (#{%.2f floatVar}) with 2 decimal places. + p The float is (#{%9.2f floatVar}) with 2 decimal places and padded to 9 characters. + p The float is (#{%-9.2f floatVar}) with 2 decimal places and padded to 9 characters and left aligned. + p The float is (#{%09.2f floatVar}) with 2 decimal places and padded to 9 characters with 0s. +} + @goht BoolExample() { %p The bool is (#{%t boolVar}). } +@haml HamlBoolExample() { + %p The bool is (#{%t boolVar}). +} + +@slim SlimBoolExample() { + p The bool is (#{%t boolVar}). +} + @goht StringExample() { %p The string is (#{stringVar}). Strings do not require any additional formatting. %p The string is (#{%q stringVar}) quoted. @@ -47,3 +91,27 @@ var stringVar = "Hello" %p The string is (#{%6.4s stringVar}), truncated to 4 characters and padded to 6 characters. %p The string is (#{%6.4q stringVar}), truncated to 4 characters and padded to 6 characters and quoted. } + +@haml HamlStringExample() { + %p The string is (#{stringVar}). Strings do not require any additional formatting. + %p The string is (#{%q stringVar}) quoted. + %p The string is (#{%x stringVar}) as hex. + %p The string is (#{%X stringVar}) as hex with uppercase. + %p The string is (#{%s stringVar}) as is. + %p The string is (#{%.4s stringVar}), truncated to 4 characters. + %p The string is (#{%6s stringVar}), padded to 6 characters. + %p The string is (#{%6.4s stringVar}), truncated to 4 characters and padded to 6 characters. + %p The string is (#{%6.4q stringVar}), truncated to 4 characters and padded to 6 characters and quoted. +} + +@slim SlimStringExample() { + p The string is (#{stringVar}). Strings do not require any additional formatting. + p The string is (#{%q stringVar}) quoted. + p The string is (#{%x stringVar}) as hex. + p The string is (#{%X stringVar}) as hex with uppercase. + p The string is (#{%s stringVar}) as is. + p The string is (#{%.4s stringVar}), truncated to 4 characters. + p The string is (#{%6s stringVar}), padded to 6 characters. + p The string is (#{%6.4s stringVar}), truncated to 4 characters and padded to 6 characters. + p The string is (#{%6.4q stringVar}), truncated to 4 characters and padded to 6 characters and quoted. +} diff --git a/examples/formatting/formats.goht.go b/examples/formatting/formats.goht.go index 9a07f47..dd10c91 100644 --- a/examples/formatting/formats.goht.go +++ b/examples/formatting/formats.goht.go @@ -102,6 +102,166 @@ func IntExample() goht.Template { }) } +func HamlIntExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The integer is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%d", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n

The integer is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%b", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") in binary.

\n

The integer is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%o", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") in octal.

\n

The integer is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%x", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") in hex.

\n

The integer is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%X", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") in hex with uppercase.

\n

The integer is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%c", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString(") as a character.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimIntExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The integer is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%d", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n

The integer is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%b", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") in binary.

\n

The integer is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%o", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") in octal.

\n

The integer is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%x", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") in hex.

\n

The integer is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%X", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") in hex with uppercase.

\n

The integer is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%c", intVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString(") as a character.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + func FloatExample() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { __buf, __isBuf := __w.(goht.Buffer) @@ -182,7 +342,7 @@ func FloatExample() goht.Template { }) } -func BoolExample() goht.Template { +func HamlFloatExample() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { __buf, __isBuf := __w.(goht.Buffer) if !__isBuf { @@ -192,17 +352,67 @@ func BoolExample() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

The bool is ("); __err != nil { + if _, __err = __buf.WriteString("

The float is ("); __err != nil { return } var __var1 string - if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%t", boolVar))); __err != nil { + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%f", floatVar))); __err != nil { return } if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString(").

\n"); __err != nil { + if _, __err = __buf.WriteString(").

\n

The float is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%e", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") in scientific notation.

\n

The float is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places.

\n

The float is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%9.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters.

\n

The float is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%-9.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters and left aligned.

\n

The float is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%09.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters with 0s.

\n"); __err != nil { return } if !__isBuf { @@ -212,7 +422,397 @@ func BoolExample() goht.Template { }) } -func StringExample() goht.Template { +func SlimFloatExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The float is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n

The float is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%e", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") in scientific notation.

\n

The float is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places.

\n

The float is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%9.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters.

\n

The float is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%-9.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters and left aligned.

\n

The float is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%09.2f", floatVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString(") with 2 decimal places and padded to 9 characters with 0s.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func BoolExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The bool is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%t", boolVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlBoolExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The bool is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%t", boolVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimBoolExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The bool is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%t", boolVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(").

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func StringExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The string is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(stringVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("). Strings do not require any additional formatting.

\n

The string is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%q", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") quoted.

\n

The string is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%x", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") as hex.

\n

The string is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%X", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") as hex with uppercase.

\n

The string is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") as is.

\n

The string is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%.4s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters.

\n

The string is ("); __err != nil { + return + } + var __var7 string + if __var7, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var7); __err != nil { + return + } + if _, __err = __buf.WriteString("), padded to 6 characters.

\n

The string is ("); __err != nil { + return + } + var __var8 string + if __var8, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6.4s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var8); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters and padded to 6 characters.

\n

The string is ("); __err != nil { + return + } + var __var9 string + if __var9, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6.4q", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var9); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters and padded to 6 characters and quoted.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlStringExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

The string is ("); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(stringVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("). Strings do not require any additional formatting.

\n

The string is ("); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%q", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(") quoted.

\n

The string is ("); __err != nil { + return + } + var __var3 string + if __var3, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%x", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var3); __err != nil { + return + } + if _, __err = __buf.WriteString(") as hex.

\n

The string is ("); __err != nil { + return + } + var __var4 string + if __var4, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%X", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var4); __err != nil { + return + } + if _, __err = __buf.WriteString(") as hex with uppercase.

\n

The string is ("); __err != nil { + return + } + var __var5 string + if __var5, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var5); __err != nil { + return + } + if _, __err = __buf.WriteString(") as is.

\n

The string is ("); __err != nil { + return + } + var __var6 string + if __var6, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%.4s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var6); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters.

\n

The string is ("); __err != nil { + return + } + var __var7 string + if __var7, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var7); __err != nil { + return + } + if _, __err = __buf.WriteString("), padded to 6 characters.

\n

The string is ("); __err != nil { + return + } + var __var8 string + if __var8, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6.4s", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var8); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters and padded to 6 characters.

\n

The string is ("); __err != nil { + return + } + var __var9 string + if __var9, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%6.4q", stringVar))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var9); __err != nil { + return + } + if _, __err = __buf.WriteString("), truncated to 4 characters and padded to 6 characters and quoted.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimStringExample() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { __buf, __isBuf := __w.(goht.Buffer) if !__isBuf { diff --git a/examples/go/code.goht b/examples/go/code.goht index 079d227..6b140c8 100644 --- a/examples/go/code.goht +++ b/examples/go/code.goht @@ -14,6 +14,24 @@ func sayHello() string { %p= foo } +@haml HamlExecuteCode() { + - foo := sayHello() + %p= foo +} + +@slim SlimExecuteCode() { + - foo := sayHello() + p= foo +} + @goht RenderCode() { %p= sayHello() } + +@haml HamlRenderCode() { + %p= sayHello() +} + +@slim SlimRenderCode() { + p= sayHello() +} diff --git a/examples/go/code.goht.go b/examples/go/code.goht.go index 82eb023..faa3e55 100644 --- a/examples/go/code.goht.go +++ b/examples/go/code.goht.go @@ -47,6 +47,68 @@ func ExecuteCode() goht.Template { }) } +func HamlExecuteCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + foo := sayHello() + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(foo)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimExecuteCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + foo := sayHello() + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(foo)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + func RenderCode() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { __buf, __isBuf := __w.(goht.Buffer) @@ -76,3 +138,63 @@ func RenderCode() goht.Template { return }) } + +func HamlRenderCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(sayHello())); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimRenderCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(sayHello())); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/go/doc.goht b/examples/go/doc.goht index c70ae80..37b5e99 100644 --- a/examples/go/doc.goht +++ b/examples/go/doc.goht @@ -4,3 +4,11 @@ package example @goht Doc() { .doc An example of package documentation. } + +@haml HamlDoc() { + .doc An example of package documentation. +} + +@slim SlimDoc() { + .doc An example of package documentation. +} diff --git a/examples/go/doc.goht.go b/examples/go/doc.goht.go index a2c8262..6ac6228 100644 --- a/examples/go/doc.goht.go +++ b/examples/go/doc.goht.go @@ -28,3 +28,43 @@ func Doc() goht.Template { return }) } + +func HamlDoc() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
An example of package documentation.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimDoc() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
An example of package documentation.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/go/imports.goht b/examples/go/imports.goht index d089671..46c5212 100644 --- a/examples/go/imports.goht +++ b/examples/go/imports.goht @@ -15,3 +15,11 @@ import ( @goht ImportExample() { %p= fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")) } + +@haml HamlImportExample() { + %p= fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")) +} + +@slim SlimImportExample() { + p= fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")) +} diff --git a/examples/go/imports.goht.go b/examples/go/imports.goht.go index 8a856fe..040cc3e 100644 --- a/examples/go/imports.goht.go +++ b/examples/go/imports.goht.go @@ -46,3 +46,63 @@ func ImportExample() goht.Template { return }) } + +func HamlImportExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimImportExample() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(fmt.Sprintf("Hello, %s!", strings.TrimSuffix("World!", "!")))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/go/inlining.goht b/examples/go/inlining.goht index 31224e8..9bc0b43 100644 --- a/examples/go/inlining.goht +++ b/examples/go/inlining.goht @@ -1,5 +1,9 @@ package example +import ( + "fmt" +) + // You can include Go code to handle conditional and loop statements // in your Goht templates. @@ -16,6 +20,28 @@ var isAdmin = true %button View content } +@haml HamlConditional() { + .actions + - if isAdmin { + %button< + Edit content + - } else { + %button Login + - } + %button View content +} + +@slim SlimConditional() { + .actions + - if isAdmin { + button + Edit content + - } else { + button Login + - } + button View content +} + // However, we are using Haml and so we're into shortcuts. We can // continue to write out the brackets or we can use the shorthand // syntax. @@ -34,6 +60,26 @@ var isAdmin = true %button View content } +@haml HamlShorthandConditional() { + .actions + - if isAdmin + %button< + Edit content + - else + %button Login + %button View content +} + +@slim SlimShorthandConditional() { + .actions + - if isAdmin + button + |Edit content + - else + button Login + button View content +} + // With a switch statement, we can use the case and default keywords // but we will need to nest these statements if we're using the // shorthand syntax. (win some, lose some) @@ -48,3 +94,49 @@ var isAdmin = true %button Login %button View content } + +@haml HamlShorthandSwitch() { + .actions + - switch isAdmin + - case true: + %button< + Edit content + - case false: + %button Login + %button View content +} + +@slim SlimShorthandSwitch() { + .actions + - switch isAdmin + - case true: + button + |Edit content + - case false: + button Login + button View content +} + +// Slim supports splitting the control code across multiple lines which +// is useful for long statements. The additional lines must be indented +// one additional level. +// +// Ending a statement with a backslash or a comma will let you break +// long statements across multiple lines. + +type longType struct { + title string + actions string +} + +@slim SlimLongStatement() { + .actions + - action := longType{\ + title: "Edit content", + actions: "Edit content", + } + p=action.actions + = fmt.Sprintf("Title: %s", + action.title, + ) +} diff --git a/examples/go/inlining.goht.go b/examples/go/inlining.goht.go index 24be191..ed69e14 100644 --- a/examples/go/inlining.goht.go +++ b/examples/go/inlining.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example @@ -6,6 +6,9 @@ package example import "context" import "io" import "github.com/stackus/goht" +import ( + "fmt" +) // You can include Go code to handle conditional and loop statements // in your Goht templates. @@ -44,6 +47,70 @@ func Conditional() goht.Template { }) } +func HamlConditional() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + if isAdmin { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } else { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimConditional() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + if isAdmin { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } else { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // However, we are using Haml and so we're into shortcuts. We can // continue to write out the brackets or we can use the shorthand // syntax. @@ -82,6 +149,66 @@ func ShorthandConditional() goht.Template { }) } +func HamlShorthandConditional() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + if isAdmin { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } else if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimShorthandConditional() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + if isAdmin { + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } else if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // With a switch statement, we can use the case and default keywords // but we will need to nest these statements if we're using the // shorthand syntax. (win some, lose some) @@ -118,3 +245,122 @@ func ShorthandSwitch() goht.Template { return }) } + +func HamlShorthandSwitch() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + switch isAdmin { + case true: + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + case false: + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimShorthandSwitch() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + switch isAdmin { + case true: + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + case false: + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +// Slim supports splitting the control code across multiple lines which +// is useful for long statements. The additional lines must be indented +// one additional level. +// +// Ending a statement with a backslash or a comma will let you break +// long statements across multiple lines. + +type longType struct { + title string + actions string +} + +func SlimLongStatement() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
\n"); __err != nil { + return + } + action := longType{title: "Edit content", actions: "Edit content"} + if _, __err = __buf.WriteString("
\n

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(action.actions)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(fmt.Sprintf("Title: %s", action.title))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/go/interpolation.goht b/examples/go/interpolation.goht index 34f951a..3f89fd9 100644 --- a/examples/go/interpolation.goht +++ b/examples/go/interpolation.goht @@ -9,6 +9,14 @@ var someVar = "Hello" %p #{someVar}, World! } +@haml HamlInterpolateCode() { + %p #{someVar}, World! +} + +@slim SlimInterpolateCode() { + p #{someVar}, World! +} + // Interpolation is not done within Go code or within a string literal. @goht NoInterpolation() { %p Do the following; No interpolation is necessary. @@ -16,6 +24,18 @@ var someVar = "Hello" %p= "No interpolation is #{performed} here." } +@haml HamlNoInterpolation() { + %p Do the following; No interpolation is necessary. + %p= someVar + ", World!" + %p= "No interpolation is #{performed} here." +} + +@slim SlimNoInterpolation() { + p Do the following; No interpolation is necessary. + p= someVar + ", World!" + p= "No interpolation is #{performed} here." +} + // Because the interpolation and tag id share the same starting character, // a `#` you will need to escape the interpolation with a backslash when it // is the first character of a line. @@ -27,6 +47,11 @@ var someVar = "Hello" %p #{someVar}, World! } +@haml HamlEscapeInterpolation() { + \#{someVar}, World! + %p #{someVar}, World! +} + // There are also times when you want to ignore the interpolation and just // print the text. This is also handled with the backslash. // This can be done at the start of a line, after a tag or even mid-text. @@ -50,3 +75,13 @@ var someVar = "Hello" \# this line begins with a hash \% this line begins with a percent } + +@haml HamlIgnoreInterpolation() { + \\#{someVar}, World! + %p + \\#{someVar}, World! + A greeting: \#{someVar}, World! + \. this line begins with a period + \# this line begins with a hash + \% this line begins with a percent +} diff --git a/examples/go/interpolation.goht.go b/examples/go/interpolation.goht.go index a1dcba9..43c1c6d 100644 --- a/examples/go/interpolation.goht.go +++ b/examples/go/interpolation.goht.go @@ -42,6 +42,66 @@ func InterpolateCode() goht.Template { }) } +func HamlInterpolateCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(someVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(", World!

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimInterpolateCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(someVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(", World!

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // Interpolation is not done within Go code or within a string literal. func NoInterpolation() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { @@ -83,6 +143,86 @@ func NoInterpolation() goht.Template { }) } +func HamlNoInterpolation() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

Do the following; No interpolation is necessary.

\n

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(someVar + ", World!")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString("No interpolation is #{performed} here.")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimNoInterpolation() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

Do the following; No interpolation is necessary.

\n

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(someVar + ", World!")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString("No interpolation is #{performed} here.")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // Because the interpolation and tag id share the same starting character, // a `#` you will need to escape the interpolation with a backslash when it // is the first character of a line. @@ -126,6 +266,43 @@ func EscapeInterpolation() goht.Template { }) } +func HamlEscapeInterpolation() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(someVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(", World!\n

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(someVar)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(", World!

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // There are also times when you want to ignore the interpolation and just // print the text. This is also handled with the backslash. // This can be done at the start of a line, after a tag or even mid-text. @@ -159,3 +336,23 @@ func IgnoreInterpolation() goht.Template { return }) } + +func HamlIgnoreInterpolation() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("#{someVar}, World!\n

\n#{someVar}, World!\n

\nA greeting: #{someVar}, World!\n. this line begins with a period\n# this line begins with a hash\n% this line begins with a percent\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/go/package.goht b/examples/go/package.goht index 692e8a3..fbcea6f 100644 --- a/examples/go/package.goht +++ b/examples/go/package.goht @@ -5,6 +5,5 @@ package example // must be the first line of the file. If you do not specify a package, // the generated code will use "main" as the package name. - @goht PackageExample() { } diff --git a/examples/go/receivers.goht b/examples/go/receivers.goht index b7e61ff..19df318 100644 --- a/examples/go/receivers.goht +++ b/examples/go/receivers.goht @@ -22,3 +22,17 @@ type User struct { User Age: !=%d u.Age } + +@haml (u User) HamlDetails() { + .name User name: #{u.Name} + .age + User Age: + !=%d u.Age +} + +@slim (u User) SlimDetails() { + .name User name: #{u.Name} + .age + User Age: + =%d u.Age +} diff --git a/examples/go/receivers.goht.go b/examples/go/receivers.goht.go index ef30220..9ec5ffd 100644 --- a/examples/go/receivers.goht.go +++ b/examples/go/receivers.goht.go @@ -62,3 +62,83 @@ func (u User) Details() goht.Template { return }) } + +func (u User) HamlDetails() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
User name: "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(u.Name)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("
\n
\nUser Age:\n"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.FormatString("%d", u.Age)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func (u User) SlimDetails() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
User name: "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(u.Name)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("
\n
\nAge:\n"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(goht.FormatString("%d", u.Age))); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("\n
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/hello/world.goht b/examples/hello/world.goht index 5eac69c..7efd95f 100644 --- a/examples/hello/world.goht +++ b/examples/hello/world.goht @@ -8,6 +8,16 @@ var terms = []string{"foo", "bar", "baz", "fizz", "buzz", "quux"} %p And it was passed in as well #{term} } +@haml hamlTermsWrapper(term string) { + %p=@children + %p And it was passed in as well #{term} +} + +@slim slimTermsWrapper(term string) { + p=@children + p And it was passed in as well #{term} +} + @goht World() { !!! %html{lang: "en"} @@ -31,3 +41,51 @@ var terms = []string{"foo", "bar", "baz", "fizz", "buzz", "quux"} =@render termsWrapper(term) %p.term= term } + +@haml HamlWorld() { + !!! + %html{lang: "en"} + %head + %meta{charset: "utf-8"} + %title Hello World + :css + body { + color: white; + font-family: sans-serif; + background-color: #333; + } + .term { + font-weight: bold; + color: #99f; + } + %body + %h1 Hello World + %p the following will loop a slice of strings and will pass each string into a child template + - for _, term := range terms + =@render hamlTermsWrapper(term) + %p.term= term +} + +@slim SlimWorld() { + doctype + html{lang: "en"} + head + meta{charset: "utf-8"} + title Hello World + :css + body { + color: white; + font-family: sans-serif; + background-color: #333; + } + .term { + font-weight: bold; + color: #99f; + } + body + h1 Hello World + p the following will loop a slice of strings and will pass each string into a child template + - for _, term := range terms + =@render slimTermsWrapper(term) + p.term= term +} diff --git a/examples/hello/world.goht.go b/examples/hello/world.goht.go index 64e96b6..6aa5886 100644 --- a/examples/hello/world.goht.go +++ b/examples/hello/world.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package hello @@ -47,6 +47,78 @@ func termsWrapper(term string) goht.Template { }) } +func hamlTermsWrapper(term string) goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + if __err = __children.Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

And it was passed in as well "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(term)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func slimTermsWrapper(term string) goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + if __err = __children.Render(ctx, __buf); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

And it was passed in as well "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(term)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + func World() goht.Template { return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { __buf, __isBuf := __w.(goht.Buffer) @@ -57,7 +129,7 @@ func World() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { return } for _, term := range terms { @@ -98,3 +170,107 @@ func World() goht.Template { return }) } + +func HamlWorld() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + return + } + for _, term := range terms { + __var1 := goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(term)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = io.Copy(__w, __buf) + } + return + }) + if __err = hamlTermsWrapper(term).Render(goht.PushChildren(ctx, __var1), __buf); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimWorld() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + return + } + for _, term := range terms { + __var1 := goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(goht.EscapeString(term)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = io.Copy(__w, __buf) + } + return + }) + if __err = slimTermsWrapper(term).Render(goht.PushChildren(ctx, __var1), __buf); __err != nil { + return + } + } + if _, __err = __buf.WriteString("\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/indents/tabs.goht b/examples/indents/tabs.goht index 8008422..4818515 100644 --- a/examples/indents/tabs.goht +++ b/examples/indents/tabs.goht @@ -20,3 +20,31 @@ package indents %p Hello World } + +@haml HamlUsingTabs() { + !!! + %html{lang: "en"} + %head + %meta{charset: "utf-8"} + %title + Hello World + %body + %h1 + Hello World + %p + Hello World +} + +@slim SlimUsingTabs() { + doctype + html{lang: "en"} + head + meta{charset: "utf-8"} + title + |Hello World + body + h1 + |Hello World + p + |Hello World +} diff --git a/examples/indents/tabs.goht.go b/examples/indents/tabs.goht.go index 5709d2c..cf1aa11 100644 --- a/examples/indents/tabs.goht.go +++ b/examples/indents/tabs.goht.go @@ -33,3 +33,43 @@ func UsingTabs() goht.Template { return }) } + +func HamlUsingTabs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n\n\n\nHello World\n\n\n\n

\nHello World\n

\n

\nHello World\n

\n\n\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimUsingTabs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\nhtml{lang: \"en\"}\nhead\nmeta{charset: \"utf-8\"}\ntitle\n|Hello World\nbody\nh1\n|Hello World\np\n|Hello World\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/tags/general.goht b/examples/tags/general.goht index edaa5d2..68e4ae7 100644 --- a/examples/tags/general.goht +++ b/examples/tags/general.goht @@ -6,6 +6,16 @@ package tags %main This is a main tag. } +@haml HamlSpecifyTag() { + %p This is a paragraph tag. + %main This is a main tag. +} + +@slim SlimSpecifyTag() { + p This is a paragraph tag. + main This is a main tag. +} + // You may also let the tag default to a `div` when using the id or // class syntax's, `#` and `.` respectively. @@ -14,6 +24,16 @@ package tags .main This is a div tag with a class of `main`. } +@haml HamlDefaultToDivs() { + #main This is a div tag with an id of `main`. + .main This is a div tag with a class of `main`. +} + +@slim SlimDefaultToDivs() { + #main This is a div tag with an id of `main`. + .main This is a div tag with a class of `main`. +} + // The three may also be combined. The `%` must come first, followed // by either the `#` or `.`. The `#` and `.` may be in any order. @@ -24,6 +44,20 @@ package tags %p.main#main This is a paragraph tag with an id and class of `main`. } +@haml HamlCombined() { + %p#main This is a paragraph tag with an id of `main`. + %main.main This is a main tag with a class of `main`. + .main#main This is a div tag with an id and class of `main`. + %p.main#main This is a paragraph tag with an id and class of `main`. +} + +@slim SlimCombined() { + p#main This is a paragraph tag with an id of `main`. + main.main This is a main tag with a class of `main`. + .main#main This is a div tag with an id and class of `main`. + p.main#main This is a paragraph tag with an id and class of `main`. +} + // The class operator may be repeated to add multiple classes. // Repeating the id operator will result in the id being overwritten // but will not throw an error. @@ -32,3 +66,13 @@ package tags .main.main2 This is a div tag with two classes, `main` and `main2`. #main#main2 This is a div tag with an id of `main2`. } + +@haml HamlMultipleClasses() { + .main.main2 This is a div tag with two classes, `main` and `main2`. + #main#main2 This is a div tag with an id of `main2`. +} + +@slim SlimMultipleClasses() { + .main.main2 This is a div tag with two classes, `main` and `main2`. + #main#main2 This is a div tag with an id of `main2`. +} diff --git a/examples/tags/general.goht.go b/examples/tags/general.goht.go index dd825fa..c5e3ff9 100644 --- a/examples/tags/general.goht.go +++ b/examples/tags/general.goht.go @@ -29,6 +29,46 @@ func SpecifyTag() goht.Template { }) } +func HamlSpecifyTag() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph tag.

\n
This is a main tag.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimSpecifyTag() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph tag.

\n
This is a main tag.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may also let the tag default to a `div` when using the id or // class syntax's, `#` and `.` respectively. @@ -52,6 +92,46 @@ func DefaultToDivs() goht.Template { }) } +func HamlDefaultToDivs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
This is a div tag with an id of `main`.
\n
This is a div tag with a class of `main`.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimDefaultToDivs() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
This is a div tag with an id of `main`.
\n
This is a div tag with a class of `main`.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // The three may also be combined. The `%` must come first, followed // by either the `#` or `.`. The `#` and `.` may be in any order. @@ -75,6 +155,46 @@ func Combined() goht.Template { }) } +func HamlCombined() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph tag with an id of `main`.

\n
This is a main tag with a class of `main`.
\n
This is a div tag with an id and class of `main`.
\n

This is a paragraph tag with an id and class of `main`.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimCombined() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is a paragraph tag with an id of `main`.

\n
This is a main tag with a class of `main`.
\n
This is a div tag with an id and class of `main`.
\n

This is a paragraph tag with an id and class of `main`.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // The class operator may be repeated to add multiple classes. // Repeating the id operator will result in the id being overwritten // but will not throw an error. @@ -98,3 +218,43 @@ func MultipleClasses() goht.Template { return }) } + +func HamlMultipleClasses() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
This is a div tag with two classes, `main` and `main2`.
\n
This is a div tag with an id of `main2`.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimMultipleClasses() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("
This is a div tag with two classes, `main` and `main2`.
\n
This is a div tag with an id of `main2`.
\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/tags/inline.goht b/examples/tags/inline.goht new file mode 100644 index 0000000..c2296af --- /dev/null +++ b/examples/tags/inline.goht @@ -0,0 +1,11 @@ +package tags + +// Slim allows you to inline tags for those times when you really +// want to keep things concise. + +@slim SlimInlineTags() { + ul + li: a.first First Item + li: a.second First Item + li: a.third First Item +} diff --git a/examples/tags/inline.goht.go b/examples/tags/inline.goht.go new file mode 100644 index 0000000..dce5fdb --- /dev/null +++ b/examples/tags/inline.goht.go @@ -0,0 +1,31 @@ +// Code generated by GoHT v0.6.0 - DO NOT EDIT. +// https://github.com/stackus/goht + +package tags + +import "context" +import "io" +import "github.com/stackus/goht" + +// Slim allows you to inline tags for those times when you really +// want to keep things concise. + +func SlimInlineTags() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/tags/objectreference.goht b/examples/tags/objectreference.goht index 1165b56..04a444b 100644 --- a/examples/tags/objectreference.goht +++ b/examples/tags/objectreference.goht @@ -28,6 +28,10 @@ func (f *Foo) ObjectClass() string { %article[obj] Foo article } +@haml HamlObjectRefs(obj Foo) { + %article[obj] Foo article +} + // You may include a prefix to be used with the id and class. var prefixVar = "article" @@ -35,3 +39,8 @@ var prefixVar = "article" %article[obj, "prefix"] Foo article with id "prefix_foo_bar" and class "prefix_foo" %article[obj, prefixVar] Foo article with id "article_foo_bar" and class "article_foo" } + +@haml HamlPrefixedObjectRefs(obj Foo) { + %article[obj, "prefix"] Foo article with id "prefix_foo_bar" and class "prefix_foo" + %article[obj, prefixVar] Foo article with id "article_foo_bar" and class "article_foo" +} diff --git a/examples/tags/objectreference.goht.go b/examples/tags/objectreference.goht.go index 5571857..cebf1b1 100644 --- a/examples/tags/objectreference.goht.go +++ b/examples/tags/objectreference.goht.go @@ -68,6 +68,42 @@ func ObjectRefs(obj Foo) goht.Template { }) } +func HamlObjectRefs(obj Foo) goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Foo article\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may include a prefix to be used with the id and class. var prefixVar = "article" @@ -122,3 +158,55 @@ func PrefixedObjectRefs(obj Foo) goht.Template { return }) } + +func HamlPrefixedObjectRefs(obj Foo) goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("Foo article with id \"prefix_foo_bar\" and class \"prefix_foo\"\nFoo article with id \"article_foo_bar\" and class \"article_foo\"\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/tags/selfclosing.goht b/examples/tags/selfclosing.goht index b673e17..2aa0f4b 100644 --- a/examples/tags/selfclosing.goht +++ b/examples/tags/selfclosing.goht @@ -14,6 +14,20 @@ package tags %img{src: "logo.png", alt: "logo"} } +@haml HamlSelfClosing() { + %img{src: "logo.png", alt: "logo"} + %p + A paragraph is not self closing. + %img{src: "logo.png", alt: "logo"} +} + +@slim SlimSelfClosing() { + img{src: "logo.png", alt: "logo"} + p + A paragraph is not self closing. + img{src: "logo.png", alt: "logo"} +} + // You may also use the self closing tag syntax to create a tag // that is not self closing. This is useful for creating tags // that are not known by the parser. @@ -27,3 +41,11 @@ package tags @goht AlsoSelfClosing() { %isNowSelfClosing/ } + +@haml HamlAlsoSelfClosing() { + %isNowSelfClosing/ +} + +@slim SlimAlsoSelfClosing() { + isNowSelfClosing/ +} diff --git a/examples/tags/selfclosing.goht.go b/examples/tags/selfclosing.goht.go index e9684d3..cdf63c6 100644 --- a/examples/tags/selfclosing.goht.go +++ b/examples/tags/selfclosing.goht.go @@ -35,6 +35,46 @@ func SelfClosing() goht.Template { }) } +func HamlSelfClosing() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\"logo\"

\nA paragraph is not self closing.\n\"logo\"

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimSelfClosing() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("\"logo\"

\nparagraph is not self closing.\n\"logo\"

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You may also use the self closing tag syntax to create a tag // that is not self closing. This is useful for creating tags // that are not known by the parser. @@ -64,3 +104,43 @@ func AlsoSelfClosing() goht.Template { return }) } + +func HamlAlsoSelfClosing() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimAlsoSelfClosing() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString(""); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/tags/whitespace.goht b/examples/tags/whitespace.goht index b083be6..4c484db 100644 --- a/examples/tags/whitespace.goht +++ b/examples/tags/whitespace.goht @@ -23,6 +23,20 @@ package tags %p This tag has whitespace between it and the tag above. } +@haml HamlWhitespace() { + %p This text has no whitespace between it and the tag. + %p + This text has whitespace between it and the tag. + %p This tag has whitespace between it and the tag above. +} + +@slim SlimWhitespace() { + p This text has no whitespace between it and the tag. + p + This text has NO whitespace between it and the tag. + p This tag has NO whitespace between it and the tag above. +} + // You can control the whitespace that will be rendered between tags // in the final output by using the `>` and <` operators. // The `>` operator will remove all whitespace outside the tag, and @@ -42,3 +56,27 @@ package tags There is also no whitespace between this tag and the sibling text above it. Finally, the tag has no whitespace between it and the outer tag. } + +@haml HamlRemoveWhitespace() { + %p< + This text has no whitespace between it and the parent tag. + %p + There is whitespace between this text and the parent tag. + %p>< + This text has no whitespace between it and the parent tag. + There is also no whitespace between this tag and the sibling text above it. + Finally, the tag has no whitespace between it and the outer tag. +} + +@slim SlimRemoveWhitespace() { + p + |< + |This text has no whitespace between it and the parent tag. + p + |There is whitespace between this text and the parent tag. + p + |<> + |This text has no whitespace between it and the parent tag. + |There is also no whitespace between this tag and the sibling text above it. + |Finally, the tag has no whitespace between it and the outer tag. +} diff --git a/examples/tags/whitespace.goht.go b/examples/tags/whitespace.goht.go index 91284df..ed752f1 100644 --- a/examples/tags/whitespace.goht.go +++ b/examples/tags/whitespace.goht.go @@ -44,6 +44,46 @@ func Whitespace() goht.Template { }) } +func HamlWhitespace() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This text has no whitespace between it and the tag.

\n

\nThis text has whitespace between it and the tag.\n

This tag has whitespace between it and the tag above.

\n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimWhitespace() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This text has no whitespace between it and the tag.

\n

\ntext has NO whitespace between it and the tag.\n

This tag has NO whitespace between it and the tag above.

\n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // You can control the whitespace that will be rendered between tags // in the final output by using the `>` and <` operators. // The `>` operator will remove all whitespace outside the tag, and @@ -72,3 +112,43 @@ func RemoveWhitespace() goht.Template { return }) } + +func HamlRemoveWhitespace() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

~☢<\nThis text has no whitespace between it and the parent tag.\n>☢~

\n

\nThere is whitespace between this text and the parent tag.\n>☢~

~☢<\nThis text has no whitespace between it and the parent tag.\nThere is also no whitespace between this tag and the sibling text above it.\nFinally, the tag has no whitespace between it and the outer tag.\n>☢~

~☢<

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimRemoveWhitespace() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

\n<\nThis text has no whitespace between it and the parent tag.\n

\n

\nThere is whitespace between this text and the parent tag.\n

\n<>\nThis text has no whitespace between it and the parent tag.\nThere is also no whitespace between this tag and the sibling text above it.\nFinally, the tag has no whitespace between it and the outer tag.\n

\n

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/examples/testdata/attributes_attributesCmd.html b/examples/testdata/attributes_attributesCmd.html deleted file mode 100644 index 545b161..0000000 --- a/examples/testdata/attributes_attributesCmd.html +++ /dev/null @@ -1 +0,0 @@ - \ No newline at end of file diff --git a/examples/testdata/filters_preserve.html b/examples/testdata/filters_preserve.html deleted file mode 100644 index 5b81afe..0000000 --- a/examples/testdata/filters_preserve.html +++ /dev/null @@ -1,3 +0,0 @@ -

-This is preserved text. It

will
be displayed as HTML. This
"will"
be interpolated with HTML intact. -

diff --git a/examples/testdata/haml/attributes_attributesCmd.html b/examples/testdata/haml/attributes_attributesCmd.html new file mode 100644 index 0000000..72cb197 --- /dev/null +++ b/examples/testdata/haml/attributes_attributesCmd.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/testdata/attributes_classes.html b/examples/testdata/haml/attributes_classes.html similarity index 100% rename from examples/testdata/attributes_classes.html rename to examples/testdata/haml/attributes_classes.html diff --git a/examples/testdata/attributes_complexNames.html b/examples/testdata/haml/attributes_complexNames.html similarity index 100% rename from examples/testdata/attributes_complexNames.html rename to examples/testdata/haml/attributes_complexNames.html diff --git a/examples/testdata/attributes_conditionalAttrs.html b/examples/testdata/haml/attributes_conditionalAttrs.html similarity index 100% rename from examples/testdata/attributes_conditionalAttrs.html rename to examples/testdata/haml/attributes_conditionalAttrs.html diff --git a/examples/testdata/attributes_dynamicAttrs.html b/examples/testdata/haml/attributes_dynamicAttrs.html similarity index 100% rename from examples/testdata/attributes_dynamicAttrs.html rename to examples/testdata/haml/attributes_dynamicAttrs.html diff --git a/examples/testdata/attributes_formattedValue.html b/examples/testdata/haml/attributes_formattedValue.html similarity index 100% rename from examples/testdata/attributes_formattedValue.html rename to examples/testdata/haml/attributes_formattedValue.html diff --git a/examples/testdata/attributes_multilineAttrs.html b/examples/testdata/haml/attributes_multilineAttrs.html similarity index 100% rename from examples/testdata/attributes_multilineAttrs.html rename to examples/testdata/haml/attributes_multilineAttrs.html diff --git a/examples/testdata/attributes_simpleNames.html b/examples/testdata/haml/attributes_simpleNames.html similarity index 100% rename from examples/testdata/attributes_simpleNames.html rename to examples/testdata/haml/attributes_simpleNames.html diff --git a/examples/testdata/attributes_staticAttrs.html b/examples/testdata/haml/attributes_staticAttrs.html similarity index 100% rename from examples/testdata/attributes_staticAttrs.html rename to examples/testdata/haml/attributes_staticAttrs.html diff --git a/examples/testdata/attributes_whitespaceAttrs.html b/examples/testdata/haml/attributes_whitespaceAttrs.html similarity index 100% rename from examples/testdata/attributes_whitespaceAttrs.html rename to examples/testdata/haml/attributes_whitespaceAttrs.html diff --git a/examples/testdata/commands_childrenExample.html b/examples/testdata/haml/commands_childrenExample.html similarity index 100% rename from examples/testdata/commands_childrenExample.html rename to examples/testdata/haml/commands_childrenExample.html diff --git a/examples/testdata/commands_renderExample.html b/examples/testdata/haml/commands_renderExample.html similarity index 100% rename from examples/testdata/commands_renderExample.html rename to examples/testdata/haml/commands_renderExample.html diff --git a/examples/testdata/commands_renderWithChildrenExample.html b/examples/testdata/haml/commands_renderWithChildrenExample.html similarity index 100% rename from examples/testdata/commands_renderWithChildrenExample.html rename to examples/testdata/haml/commands_renderWithChildrenExample.html diff --git a/examples/testdata/comments_htmlComments.html b/examples/testdata/haml/comments_htmlComments.html similarity index 100% rename from examples/testdata/comments_htmlComments.html rename to examples/testdata/haml/comments_htmlComments.html diff --git a/examples/testdata/comments_htmlCommentsNested.html b/examples/testdata/haml/comments_htmlCommentsNested.html similarity index 100% rename from examples/testdata/comments_htmlCommentsNested.html rename to examples/testdata/haml/comments_htmlCommentsNested.html diff --git a/examples/testdata/comments_rubyStyle.html b/examples/testdata/haml/comments_rubyStyle.html similarity index 100% rename from examples/testdata/comments_rubyStyle.html rename to examples/testdata/haml/comments_rubyStyle.html diff --git a/examples/testdata/comments_rubyStyleNested.html b/examples/testdata/haml/comments_rubyStyleNested.html similarity index 100% rename from examples/testdata/comments_rubyStyleNested.html rename to examples/testdata/haml/comments_rubyStyleNested.html diff --git a/examples/testdata/doctype_doctype.html b/examples/testdata/haml/doctype_doctype.html similarity index 100% rename from examples/testdata/doctype_doctype.html rename to examples/testdata/haml/doctype_doctype.html diff --git a/examples/testdata/example_conditional.html b/examples/testdata/haml/example_conditional.html similarity index 100% rename from examples/testdata/example_conditional.html rename to examples/testdata/haml/example_conditional.html diff --git a/examples/testdata/example_doc.html b/examples/testdata/haml/example_doc.html similarity index 100% rename from examples/testdata/example_doc.html rename to examples/testdata/haml/example_doc.html diff --git a/examples/testdata/example_escapeInterpolation.html b/examples/testdata/haml/example_escapeInterpolation.html similarity index 100% rename from examples/testdata/example_escapeInterpolation.html rename to examples/testdata/haml/example_escapeInterpolation.html diff --git a/examples/testdata/example_executeCode.html b/examples/testdata/haml/example_executeCode.html similarity index 100% rename from examples/testdata/example_executeCode.html rename to examples/testdata/haml/example_executeCode.html diff --git a/examples/testdata/example_ignoreInterpolation.html b/examples/testdata/haml/example_ignoreInterpolation.html similarity index 100% rename from examples/testdata/example_ignoreInterpolation.html rename to examples/testdata/haml/example_ignoreInterpolation.html diff --git a/examples/testdata/example_importExample.html b/examples/testdata/haml/example_importExample.html similarity index 100% rename from examples/testdata/example_importExample.html rename to examples/testdata/haml/example_importExample.html diff --git a/examples/testdata/example_interpolateCode.html b/examples/testdata/haml/example_interpolateCode.html similarity index 100% rename from examples/testdata/example_interpolateCode.html rename to examples/testdata/haml/example_interpolateCode.html diff --git a/examples/testdata/example_noInterpolation.html b/examples/testdata/haml/example_noInterpolation.html similarity index 100% rename from examples/testdata/example_noInterpolation.html rename to examples/testdata/haml/example_noInterpolation.html diff --git a/examples/testdata/example_packageExample.html b/examples/testdata/haml/example_packageExample.html similarity index 100% rename from examples/testdata/example_packageExample.html rename to examples/testdata/haml/example_packageExample.html diff --git a/examples/testdata/example_renderCode.html b/examples/testdata/haml/example_renderCode.html similarity index 100% rename from examples/testdata/example_renderCode.html rename to examples/testdata/haml/example_renderCode.html diff --git a/examples/testdata/example_shorthandConditional.html b/examples/testdata/haml/example_shorthandConditional.html similarity index 100% rename from examples/testdata/example_shorthandConditional.html rename to examples/testdata/haml/example_shorthandConditional.html diff --git a/examples/testdata/example_shorthandSwitch.html b/examples/testdata/haml/example_shorthandSwitch.html similarity index 100% rename from examples/testdata/example_shorthandSwitch.html rename to examples/testdata/haml/example_shorthandSwitch.html diff --git a/examples/testdata/example_userDetails.html b/examples/testdata/haml/example_userDetails.html similarity index 100% rename from examples/testdata/example_userDetails.html rename to examples/testdata/haml/example_userDetails.html diff --git a/examples/testdata/filters_css.html b/examples/testdata/haml/filters_css.html similarity index 100% rename from examples/testdata/filters_css.html rename to examples/testdata/haml/filters_css.html diff --git a/examples/testdata/filters_escaped.html b/examples/testdata/haml/filters_escaped.html similarity index 100% rename from examples/testdata/filters_escaped.html rename to examples/testdata/haml/filters_escaped.html diff --git a/examples/testdata/filters_javascript.html b/examples/testdata/haml/filters_javascript.html similarity index 100% rename from examples/testdata/filters_javascript.html rename to examples/testdata/haml/filters_javascript.html diff --git a/examples/testdata/filters_plain.html b/examples/testdata/haml/filters_plain.html similarity index 100% rename from examples/testdata/filters_plain.html rename to examples/testdata/haml/filters_plain.html diff --git a/examples/testdata/haml/filters_preserve.html b/examples/testdata/haml/filters_preserve.html new file mode 100644 index 0000000..c4bcb32 --- /dev/null +++ b/examples/testdata/haml/filters_preserve.html @@ -0,0 +1,3 @@ +

+This is preserved text. It

will
be displayed as HTML. This
"will"
be interpolated with HTML intact. +

diff --git a/examples/testdata/formatting_boolExample.html b/examples/testdata/haml/formatting_boolExample.html similarity index 100% rename from examples/testdata/formatting_boolExample.html rename to examples/testdata/haml/formatting_boolExample.html diff --git a/examples/testdata/formatting_floatExample.html b/examples/testdata/haml/formatting_floatExample.html similarity index 100% rename from examples/testdata/formatting_floatExample.html rename to examples/testdata/haml/formatting_floatExample.html diff --git a/examples/testdata/formatting_intExample.html b/examples/testdata/haml/formatting_intExample.html similarity index 100% rename from examples/testdata/formatting_intExample.html rename to examples/testdata/haml/formatting_intExample.html diff --git a/examples/testdata/formatting_stringExample.html b/examples/testdata/haml/formatting_stringExample.html similarity index 100% rename from examples/testdata/formatting_stringExample.html rename to examples/testdata/haml/formatting_stringExample.html diff --git a/examples/testdata/hello_world.html b/examples/testdata/haml/hello_world.html similarity index 100% rename from examples/testdata/hello_world.html rename to examples/testdata/haml/hello_world.html diff --git a/examples/testdata/indents_usingTabs.html b/examples/testdata/haml/indents_usingTabs.html similarity index 100% rename from examples/testdata/indents_usingTabs.html rename to examples/testdata/haml/indents_usingTabs.html diff --git a/examples/testdata/tags_alsoSelfClosing.html b/examples/testdata/haml/tags_alsoSelfClosing.html similarity index 100% rename from examples/testdata/tags_alsoSelfClosing.html rename to examples/testdata/haml/tags_alsoSelfClosing.html diff --git a/examples/testdata/tags_combined.html b/examples/testdata/haml/tags_combined.html similarity index 100% rename from examples/testdata/tags_combined.html rename to examples/testdata/haml/tags_combined.html diff --git a/examples/testdata/tags_defaultToDivs.html b/examples/testdata/haml/tags_defaultToDivs.html similarity index 100% rename from examples/testdata/tags_defaultToDivs.html rename to examples/testdata/haml/tags_defaultToDivs.html diff --git a/examples/testdata/tags_multipleClasses.html b/examples/testdata/haml/tags_multipleClasses.html similarity index 100% rename from examples/testdata/tags_multipleClasses.html rename to examples/testdata/haml/tags_multipleClasses.html diff --git a/examples/testdata/tags_objectRefs.html b/examples/testdata/haml/tags_objectRefs.html similarity index 100% rename from examples/testdata/tags_objectRefs.html rename to examples/testdata/haml/tags_objectRefs.html diff --git a/examples/testdata/tags_prefixedObjectRefs.html b/examples/testdata/haml/tags_prefixedObjectRefs.html similarity index 100% rename from examples/testdata/tags_prefixedObjectRefs.html rename to examples/testdata/haml/tags_prefixedObjectRefs.html diff --git a/examples/testdata/tags_removeWhitespace.html b/examples/testdata/haml/tags_removeWhitespace.html similarity index 100% rename from examples/testdata/tags_removeWhitespace.html rename to examples/testdata/haml/tags_removeWhitespace.html diff --git a/examples/testdata/tags_selfClosing.html b/examples/testdata/haml/tags_selfClosing.html similarity index 100% rename from examples/testdata/tags_selfClosing.html rename to examples/testdata/haml/tags_selfClosing.html diff --git a/examples/testdata/tags_specifyTag.html b/examples/testdata/haml/tags_specifyTag.html similarity index 100% rename from examples/testdata/tags_specifyTag.html rename to examples/testdata/haml/tags_specifyTag.html diff --git a/examples/testdata/tags_whitespace.html b/examples/testdata/haml/tags_whitespace.html similarity index 100% rename from examples/testdata/tags_whitespace.html rename to examples/testdata/haml/tags_whitespace.html diff --git a/examples/testdata/haml/unescape_unescapeCode.html b/examples/testdata/haml/unescape_unescapeCode.html new file mode 100644 index 0000000..b0b9ad9 --- /dev/null +++ b/examples/testdata/haml/unescape_unescapeCode.html @@ -0,0 +1,2 @@ +

This is <em>NOT</em> unescaped HTML. (Ampersands everywhere!)

+

This is unescaped HTML.

diff --git a/examples/testdata/haml/unescape_unescapeInterpolation.html b/examples/testdata/haml/unescape_unescapeInterpolation.html new file mode 100644 index 0000000..1e161fc --- /dev/null +++ b/examples/testdata/haml/unescape_unescapeInterpolation.html @@ -0,0 +1,2 @@ +

This <em>is</em> is escaped. (Ampersands everywhere!)

+

This is is NOT escaped.

diff --git a/examples/testdata/unescape_unescapeText.html b/examples/testdata/haml/unescape_unescapeText.html similarity index 100% rename from examples/testdata/unescape_unescapeText.html rename to examples/testdata/haml/unescape_unescapeText.html diff --git a/examples/testdata/indents_usingSpaces.html b/examples/testdata/indents_usingSpaces.html deleted file mode 100644 index 78ca4a7..0000000 --- a/examples/testdata/indents_usingSpaces.html +++ /dev/null @@ -1,13 +0,0 @@ - - - - -Hello World - - - -

-Hello World -

- - diff --git a/examples/testdata/slim/attributes_attributesCmd.html b/examples/testdata/slim/attributes_attributesCmd.html new file mode 100644 index 0000000..72cb197 --- /dev/null +++ b/examples/testdata/slim/attributes_attributesCmd.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/testdata/slim/attributes_classes.html b/examples/testdata/slim/attributes_classes.html new file mode 100644 index 0000000..00fa896 --- /dev/null +++ b/examples/testdata/slim/attributes_classes.html @@ -0,0 +1 @@ +

diff --git a/examples/testdata/slim/attributes_complexNames.html b/examples/testdata/slim/attributes_complexNames.html new file mode 100644 index 0000000..803d7b3 --- /dev/null +++ b/examples/testdata/slim/attributes_complexNames.html @@ -0,0 +1 @@ +Goht diff --git a/examples/testdata/slim/attributes_conditionalAttrs.html b/examples/testdata/slim/attributes_conditionalAttrs.html new file mode 100644 index 0000000..3d0aafa --- /dev/null +++ b/examples/testdata/slim/attributes_conditionalAttrs.html @@ -0,0 +1,2 @@ + + diff --git a/examples/testdata/slim/attributes_dynamicAttrs.html b/examples/testdata/slim/attributes_dynamicAttrs.html new file mode 100644 index 0000000..c41afd1 --- /dev/null +++ b/examples/testdata/slim/attributes_dynamicAttrs.html @@ -0,0 +1 @@ +

This is a paragraph.

diff --git a/examples/testdata/slim/attributes_formattedValue.html b/examples/testdata/slim/attributes_formattedValue.html new file mode 100644 index 0000000..b437633 --- /dev/null +++ b/examples/testdata/slim/attributes_formattedValue.html @@ -0,0 +1 @@ + diff --git a/examples/testdata/slim/attributes_multilineAttrs.html b/examples/testdata/slim/attributes_multilineAttrs.html new file mode 100644 index 0000000..c41afd1 --- /dev/null +++ b/examples/testdata/slim/attributes_multilineAttrs.html @@ -0,0 +1 @@ +

This is a paragraph.

diff --git a/examples/testdata/slim/attributes_simpleNames.html b/examples/testdata/slim/attributes_simpleNames.html new file mode 100644 index 0000000..c6c8e36 --- /dev/null +++ b/examples/testdata/slim/attributes_simpleNames.html @@ -0,0 +1 @@ +Goht diff --git a/examples/testdata/slim/attributes_staticAttrs.html b/examples/testdata/slim/attributes_staticAttrs.html new file mode 100644 index 0000000..c41afd1 --- /dev/null +++ b/examples/testdata/slim/attributes_staticAttrs.html @@ -0,0 +1 @@ +

This is a paragraph.

diff --git a/examples/testdata/slim/attributes_whitespaceAttrs.html b/examples/testdata/slim/attributes_whitespaceAttrs.html new file mode 100644 index 0000000..9cddabe --- /dev/null +++ b/examples/testdata/slim/attributes_whitespaceAttrs.html @@ -0,0 +1,4 @@ +

This is a paragraph.

+

This is a paragraph.

+

This is a paragraph.

+

This is a paragraph.

diff --git a/examples/testdata/slim/commands_childrenExample.html b/examples/testdata/slim/commands_childrenExample.html new file mode 100644 index 0000000..1084151 --- /dev/null +++ b/examples/testdata/slim/commands_childrenExample.html @@ -0,0 +1,3 @@ +

+following was passed in from the calling template: +

diff --git a/examples/testdata/slim/commands_renderExample.html b/examples/testdata/slim/commands_renderExample.html new file mode 100644 index 0000000..6963405 --- /dev/null +++ b/examples/testdata/slim/commands_renderExample.html @@ -0,0 +1,5 @@ +

+The following was passed in from the calling template: +

+

+

the other template was rendered above.

diff --git a/examples/testdata/slim/commands_renderWithChildrenExample.html b/examples/testdata/slim/commands_renderWithChildrenExample.html new file mode 100644 index 0000000..c973246 --- /dev/null +++ b/examples/testdata/slim/commands_renderWithChildrenExample.html @@ -0,0 +1,5 @@ +

The other template will be rendered below.

+

+The following was passed in from the calling template: +this content will be rendered by the other template. +

diff --git a/examples/testdata/slim/comments_htmlComments.html b/examples/testdata/slim/comments_htmlComments.html new file mode 100644 index 0000000..582a1a4 --- /dev/null +++ b/examples/testdata/slim/comments_htmlComments.html @@ -0,0 +1,2 @@ +

This is a paragraph

+ diff --git a/examples/testdata/slim/comments_htmlCommentsNested.html b/examples/testdata/slim/comments_htmlCommentsNested.html new file mode 100644 index 0000000..7491971 --- /dev/null +++ b/examples/testdata/slim/comments_htmlCommentsNested.html @@ -0,0 +1,3 @@ +

This is a paragraph

+ + diff --git a/examples/testdata/slim/comments_rubyStyle.html b/examples/testdata/slim/comments_rubyStyle.html new file mode 100644 index 0000000..4b8a0d0 --- /dev/null +++ b/examples/testdata/slim/comments_rubyStyle.html @@ -0,0 +1 @@ +

This is the only paragraph in the output.

diff --git a/examples/testdata/slim/comments_rubyStyleNested.html b/examples/testdata/slim/comments_rubyStyleNested.html new file mode 100644 index 0000000..4b8a0d0 --- /dev/null +++ b/examples/testdata/slim/comments_rubyStyleNested.html @@ -0,0 +1 @@ +

This is the only paragraph in the output.

diff --git a/examples/testdata/slim/doctype_doctype.html b/examples/testdata/slim/doctype_doctype.html new file mode 100644 index 0000000..0e76edd --- /dev/null +++ b/examples/testdata/slim/doctype_doctype.html @@ -0,0 +1 @@ + diff --git a/examples/testdata/slim/example_conditional.html b/examples/testdata/slim/example_conditional.html new file mode 100644 index 0000000..2ce5b24 --- /dev/null +++ b/examples/testdata/slim/example_conditional.html @@ -0,0 +1,6 @@ +
+ + +
diff --git a/examples/testdata/slim/example_doc.html b/examples/testdata/slim/example_doc.html new file mode 100644 index 0000000..42ac9d9 --- /dev/null +++ b/examples/testdata/slim/example_doc.html @@ -0,0 +1 @@ +
An example of package documentation.
diff --git a/examples/testdata/slim/example_escapeInterpolation.html b/examples/testdata/slim/example_escapeInterpolation.html new file mode 100644 index 0000000..b4dfc9c --- /dev/null +++ b/examples/testdata/slim/example_escapeInterpolation.html @@ -0,0 +1,2 @@ +Hello, World! +

Hello, World!

diff --git a/examples/testdata/slim/example_executeCode.html b/examples/testdata/slim/example_executeCode.html new file mode 100644 index 0000000..7ce5354 --- /dev/null +++ b/examples/testdata/slim/example_executeCode.html @@ -0,0 +1 @@ +

Hello, world!

diff --git a/examples/testdata/slim/example_ignoreInterpolation.html b/examples/testdata/slim/example_ignoreInterpolation.html new file mode 100644 index 0000000..fc3a2cb --- /dev/null +++ b/examples/testdata/slim/example_ignoreInterpolation.html @@ -0,0 +1,8 @@ +#{someVar}, World! +

+#{someVar}, World! +

+A greeting: #{someVar}, World! +. this line begins with a period +# this line begins with a hash +% this line begins with a percent diff --git a/examples/testdata/slim/example_importExample.html b/examples/testdata/slim/example_importExample.html new file mode 100644 index 0000000..ff8feb5 --- /dev/null +++ b/examples/testdata/slim/example_importExample.html @@ -0,0 +1 @@ +

Hello, World!

diff --git a/examples/testdata/slim/example_interpolateCode.html b/examples/testdata/slim/example_interpolateCode.html new file mode 100644 index 0000000..ff8feb5 --- /dev/null +++ b/examples/testdata/slim/example_interpolateCode.html @@ -0,0 +1 @@ +

Hello, World!

diff --git a/examples/testdata/slim/example_noInterpolation.html b/examples/testdata/slim/example_noInterpolation.html new file mode 100644 index 0000000..f880be4 --- /dev/null +++ b/examples/testdata/slim/example_noInterpolation.html @@ -0,0 +1,3 @@ +

Do the following; No interpolation is necessary.

+

Hello, World!

+

No interpolation is #{performed} here.

diff --git a/examples/testdata/slim/example_packageExample.html b/examples/testdata/slim/example_packageExample.html new file mode 100644 index 0000000..e69de29 diff --git a/examples/testdata/slim/example_renderCode.html b/examples/testdata/slim/example_renderCode.html new file mode 100644 index 0000000..7ce5354 --- /dev/null +++ b/examples/testdata/slim/example_renderCode.html @@ -0,0 +1 @@ +

Hello, world!

diff --git a/examples/testdata/slim/example_shorthandConditional.html b/examples/testdata/slim/example_shorthandConditional.html new file mode 100644 index 0000000..38154f1 --- /dev/null +++ b/examples/testdata/slim/example_shorthandConditional.html @@ -0,0 +1,6 @@ +
+ + +
diff --git a/examples/testdata/slim/example_shorthandSwitch.html b/examples/testdata/slim/example_shorthandSwitch.html new file mode 100644 index 0000000..38154f1 --- /dev/null +++ b/examples/testdata/slim/example_shorthandSwitch.html @@ -0,0 +1,6 @@ +
+ + +
diff --git a/examples/testdata/slim/example_userDetails.html b/examples/testdata/slim/example_userDetails.html new file mode 100644 index 0000000..d44b736 --- /dev/null +++ b/examples/testdata/slim/example_userDetails.html @@ -0,0 +1,5 @@ +
User name: John
+
+Age: +30 +
diff --git a/examples/testdata/slim/filters_css.html b/examples/testdata/slim/filters_css.html new file mode 100644 index 0000000..f746352 --- /dev/null +++ b/examples/testdata/slim/filters_css.html @@ -0,0 +1,5 @@ + \ No newline at end of file diff --git a/examples/testdata/slim/filters_javascript.html b/examples/testdata/slim/filters_javascript.html new file mode 100644 index 0000000..657fe92 --- /dev/null +++ b/examples/testdata/slim/filters_javascript.html @@ -0,0 +1,3 @@ + \ No newline at end of file diff --git a/examples/testdata/slim/formatting_boolExample.html b/examples/testdata/slim/formatting_boolExample.html new file mode 100644 index 0000000..a771953 --- /dev/null +++ b/examples/testdata/slim/formatting_boolExample.html @@ -0,0 +1 @@ +

The bool is (true).

diff --git a/examples/testdata/slim/formatting_floatExample.html b/examples/testdata/slim/formatting_floatExample.html new file mode 100644 index 0000000..9f3a2cf --- /dev/null +++ b/examples/testdata/slim/formatting_floatExample.html @@ -0,0 +1,6 @@ +

The float is (123.456000).

+

The float is (1.234560e+02) in scientific notation.

+

The float is (123.46) with 2 decimal places.

+

The float is ( 123.46) with 2 decimal places and padded to 9 characters.

+

The float is (123.46 ) with 2 decimal places and padded to 9 characters and left aligned.

+

The float is (000123.46) with 2 decimal places and padded to 9 characters with 0s.

diff --git a/examples/testdata/slim/formatting_intExample.html b/examples/testdata/slim/formatting_intExample.html new file mode 100644 index 0000000..acc25b1 --- /dev/null +++ b/examples/testdata/slim/formatting_intExample.html @@ -0,0 +1,6 @@ +

The integer is (123).

+

The integer is (1111011) in binary.

+

The integer is (173) in octal.

+

The integer is (7b) in hex.

+

The integer is (7B) in hex with uppercase.

+

The integer is ({) as a character.

diff --git a/examples/testdata/slim/formatting_stringExample.html b/examples/testdata/slim/formatting_stringExample.html new file mode 100644 index 0000000..bd8f69c --- /dev/null +++ b/examples/testdata/slim/formatting_stringExample.html @@ -0,0 +1,9 @@ +

The string is (Hello). Strings do not require any additional formatting.

+

The string is ("Hello") quoted.

+

The string is (48656c6c6f) as hex.

+

The string is (48656C6C6F) as hex with uppercase.

+

The string is (Hello) as is.

+

The string is (Hell), truncated to 4 characters.

+

The string is ( Hello), padded to 6 characters.

+

The string is ( Hell), truncated to 4 characters and padded to 6 characters.

+

The string is ("Hell"), truncated to 4 characters and padded to 6 characters and quoted.

diff --git a/examples/testdata/slim/hello_world.html b/examples/testdata/slim/hello_world.html new file mode 100644 index 0000000..f1b978d --- /dev/null +++ b/examples/testdata/slim/hello_world.html @@ -0,0 +1,38 @@ + + + +Hello World + + +

Hello World

+

the following will loop a slice of strings and will pass each string into a child template

+

foo

+

+

And it was passed in as well foo

+

bar

+

+

And it was passed in as well bar

+

baz

+

+

And it was passed in as well baz

+

fizz

+

+

And it was passed in as well fizz

+

buzz

+

+

And it was passed in as well buzz

+

quux

+

+

And it was passed in as well quux

+ + diff --git a/examples/testdata/slim/indents_usingTabs.html b/examples/testdata/slim/indents_usingTabs.html new file mode 100644 index 0000000..47d9919 --- /dev/null +++ b/examples/testdata/slim/indents_usingTabs.html @@ -0,0 +1,11 @@ + +html{lang: "en"} +head +meta{charset: "utf-8"} +title +|Hello World +body +h1 +|Hello World +p +|Hello World diff --git a/examples/testdata/slim/tags_alsoSelfClosing.html b/examples/testdata/slim/tags_alsoSelfClosing.html new file mode 100644 index 0000000..a6c709c --- /dev/null +++ b/examples/testdata/slim/tags_alsoSelfClosing.html @@ -0,0 +1 @@ + \ No newline at end of file diff --git a/examples/testdata/slim/tags_combined.html b/examples/testdata/slim/tags_combined.html new file mode 100644 index 0000000..f3d397f --- /dev/null +++ b/examples/testdata/slim/tags_combined.html @@ -0,0 +1,4 @@ +

This is a paragraph tag with an id of `main`.

+
This is a main tag with a class of `main`.
+
This is a div tag with an id and class of `main`.
+

This is a paragraph tag with an id and class of `main`.

diff --git a/examples/testdata/slim/tags_defaultToDivs.html b/examples/testdata/slim/tags_defaultToDivs.html new file mode 100644 index 0000000..94d3285 --- /dev/null +++ b/examples/testdata/slim/tags_defaultToDivs.html @@ -0,0 +1,2 @@ +
This is a div tag with an id of `main`.
+
This is a div tag with a class of `main`.
diff --git a/examples/testdata/slim/tags_inlineTags.html b/examples/testdata/slim/tags_inlineTags.html new file mode 100644 index 0000000..fe57a71 --- /dev/null +++ b/examples/testdata/slim/tags_inlineTags.html @@ -0,0 +1,8 @@ + diff --git a/examples/testdata/slim/tags_multipleClasses.html b/examples/testdata/slim/tags_multipleClasses.html new file mode 100644 index 0000000..17864b1 --- /dev/null +++ b/examples/testdata/slim/tags_multipleClasses.html @@ -0,0 +1,2 @@ +
This is a div tag with two classes, `main` and `main2`.
+
This is a div tag with an id of `main2`.
diff --git a/examples/testdata/slim/tags_removeWhitespace.html b/examples/testdata/slim/tags_removeWhitespace.html new file mode 100644 index 0000000..18588c8 --- /dev/null +++ b/examples/testdata/slim/tags_removeWhitespace.html @@ -0,0 +1,13 @@ +

+< +This text has no whitespace between it and the parent tag. +

+

+There is whitespace between this text and the parent tag. +

+<> +This text has no whitespace between it and the parent tag. +There is also no whitespace between this tag and the sibling text above it. +Finally, the tag has no whitespace between it and the outer tag. +

+

diff --git a/examples/testdata/slim/tags_selfClosing.html b/examples/testdata/slim/tags_selfClosing.html new file mode 100644 index 0000000..932f674 --- /dev/null +++ b/examples/testdata/slim/tags_selfClosing.html @@ -0,0 +1,3 @@ +logo

+paragraph is not self closing. +logo

diff --git a/examples/testdata/slim/tags_specifyTag.html b/examples/testdata/slim/tags_specifyTag.html new file mode 100644 index 0000000..a7c6a9f --- /dev/null +++ b/examples/testdata/slim/tags_specifyTag.html @@ -0,0 +1,2 @@ +

This is a paragraph tag.

+
This is a main tag.
diff --git a/examples/testdata/slim/tags_whitespace.html b/examples/testdata/slim/tags_whitespace.html new file mode 100644 index 0000000..c1c5e52 --- /dev/null +++ b/examples/testdata/slim/tags_whitespace.html @@ -0,0 +1,5 @@ +

This text has no whitespace between it and the tag.

+

+text has NO whitespace between it and the tag. +

This tag has NO whitespace between it and the tag above.

+

diff --git a/examples/testdata/slim/unescape_unescapeCode.html b/examples/testdata/slim/unescape_unescapeCode.html new file mode 100644 index 0000000..d192cf8 --- /dev/null +++ b/examples/testdata/slim/unescape_unescapeCode.html @@ -0,0 +1,2 @@ +

This is <em>is</em> escaped HTML. (Ampersands everywhere!)

+

This is NOT escaped HTML.

diff --git a/examples/testdata/unescape_unescapeCode.html b/examples/testdata/unescape_unescapeCode.html deleted file mode 100644 index 251a9a7..0000000 --- a/examples/testdata/unescape_unescapeCode.html +++ /dev/null @@ -1,2 +0,0 @@ -

This is <em>not</em> unescaped HTML.

-

This is unescaped HTML.

diff --git a/examples/testdata/unescape_unescapeInterpolation.html b/examples/testdata/unescape_unescapeInterpolation.html deleted file mode 100644 index 13f2e28..0000000 --- a/examples/testdata/unescape_unescapeInterpolation.html +++ /dev/null @@ -1,2 +0,0 @@ -

This <em>is</em> HTML.

-

This is HTML.

diff --git a/examples/unescaping/unescape.goht b/examples/unescaping/unescape.goht index a2472a0..fc367b3 100644 --- a/examples/unescaping/unescape.goht +++ b/examples/unescaping/unescape.goht @@ -9,16 +9,32 @@ package unescape // you should use the default escaping. @goht UnescapeCode() { -%p= "This is not unescaped HTML." -%p!= "This is unescaped HTML." + %p= "This is NOT unescaped HTML. (Ampersands everywhere!)" + %p!= "This is unescaped HTML." +} + +@haml HamlUnescapeCode() { + %p= "This is NOT unescaped HTML. (Ampersands everywhere!)" + %p!= "This is unescaped HTML." +} + +@slim SlimUnescapeCode() { + p= "This is is escaped HTML. (Ampersands everywhere!)" + p== "This is NOT escaped HTML." } // It can also affect the interpolated values. @goht UnescapeInterpolation() { -- var html = "is" -%p This #{html} HTML. -%p! This #{html} HTML. + - var html = "is" + %p This #{html} is escaped. (Ampersands everywhere!) + %p! This #{html} is NOT escaped. +} + +@haml HamlUnescapeInterpolation() { + - var html = "is" + %p This #{html} is escaped. (Ampersands everywhere!) + %p! This #{html} is NOT escaped. } // The plain text that you write into your Goht templates will not be @@ -26,6 +42,11 @@ package unescape // text has already been HTML escaped properly. @goht UnescapeText() { -%p This is HTML. -%p! This is HTML. + %p This is HTML. + %p! This is HTML. +} + +@haml HamlUnescapeText() { + %p This is HTML. + %p! This is HTML. } diff --git a/examples/unescaping/unescape.goht.go b/examples/unescaping/unescape.goht.go index 7d1640d..97d4d29 100644 --- a/examples/unescaping/unescape.goht.go +++ b/examples/unescaping/unescape.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package unescape @@ -29,7 +29,7 @@ func UnescapeCode() goht.Template { return } var __var1 string - if __var1, __err = goht.CaptureErrors(goht.EscapeString("This is not unescaped HTML.")); __err != nil { + if __var1, __err = goht.CaptureErrors(goht.EscapeString("This is NOT unescaped HTML. (Ampersands everywhere!)")); __err != nil { return } if _, __err = __buf.WriteString(__var1); __err != nil { @@ -55,6 +55,86 @@ func UnescapeCode() goht.Template { }) } +func HamlUnescapeCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString("This is NOT unescaped HTML. (Ampersands everywhere!)")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors("This is unescaped HTML."); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func SlimUnescapeCode() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

"); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString("This is is escaped HTML. (Ampersands everywhere!)")); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n

"); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors("This is NOT escaped HTML."); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString("

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + // It can also affect the interpolated values. func UnescapeInterpolation() goht.Template { @@ -78,7 +158,48 @@ func UnescapeInterpolation() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString(" HTML.

\n

This "); __err != nil { + if _, __err = __buf.WriteString(" is escaped. (Ampersands everywhere!)

\n

This "); __err != nil { + return + } + var __var2 string + if __var2, __err = goht.CaptureErrors(html); __err != nil { + return + } + if _, __err = __buf.WriteString(__var2); __err != nil { + return + } + if _, __err = __buf.WriteString(" is NOT escaped.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} + +func HamlUnescapeInterpolation() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + var html = "is" + if _, __err = __buf.WriteString("

This "); __err != nil { + return + } + var __var1 string + if __var1, __err = goht.CaptureErrors(goht.EscapeString(html)); __err != nil { + return + } + if _, __err = __buf.WriteString(__var1); __err != nil { + return + } + if _, __err = __buf.WriteString(" is escaped. (Ampersands everywhere!)

\n

This "); __err != nil { return } var __var2 string @@ -88,7 +209,7 @@ func UnescapeInterpolation() goht.Template { if _, __err = __buf.WriteString(__var2); __err != nil { return } - if _, __err = __buf.WriteString(" HTML.

\n"); __err != nil { + if _, __err = __buf.WriteString(" is NOT escaped.

\n"); __err != nil { return } if !__isBuf { @@ -121,3 +242,23 @@ func UnescapeText() goht.Template { return }) } + +func HamlUnescapeText() goht.Template { + return goht.TemplateFunc(func(ctx context.Context, __w io.Writer) (__err error) { + __buf, __isBuf := __w.(goht.Buffer) + if !__isBuf { + __buf = goht.GetBuffer() + defer goht.ReleaseBuffer(__buf) + } + var __children goht.Template + ctx, __children = goht.PopChildren(ctx) + _ = __children + if _, __err = __buf.WriteString("

This is HTML.

\n

This is HTML.

\n"); __err != nil { + return + } + if !__isBuf { + _, __err = __w.Write(__buf.Bytes()) + } + return + }) +} diff --git a/version.go b/version.go index 48bc014..9a24b82 100644 --- a/version.go +++ b/version.go @@ -9,5 +9,5 @@ import ( var version string func Version() string { - return strings.TrimPrefix(version, "VERSION=") + return strings.TrimSpace(strings.TrimPrefix(version, "VERSION=")) } From 2679d0aad7baae1d79498feef7b26543058ecf34 Mon Sep 17 00:00:00 2001 From: Michael Stack Date: Fri, 25 Apr 2025 21:33:36 -0600 Subject: [PATCH 4/4] switch line endings to LF --- examples/attributes/additional.goht.go | 2 +- examples/attributes/classes.goht.go | 2 +- examples/attributes/general.goht.go | 2 +- examples/attributes/names.goht.go | 2 +- examples/attributes/optional.goht.go | 2 +- examples/commands/children.goht.go | 2 +- examples/commands/render.goht.go | 2 +- examples/comments/html.goht.go | 2 +- examples/comments/rubystyle.goht.go | 2 +- examples/doctype/doctype.goht.go | 2 +- examples/filters/css.goht.go | 14 +++++----- examples/filters/javascript.goht.go | 8 +++--- examples/filters/text.goht.go | 26 +++++++++---------- examples/formatting/formats.goht.go | 2 +- examples/go/code.goht.go | 2 +- examples/go/doc.goht.go | 2 +- examples/go/imports.goht.go | 2 +- examples/go/interpolation.goht.go | 2 +- examples/go/package.goht.go | 2 +- examples/go/receivers.goht.go | 2 +- examples/hello/world.goht.go | 6 ++--- examples/indents/tabs.goht.go | 4 +-- examples/tags/general.goht.go | 2 +- examples/tags/objectreference.goht.go | 2 +- examples/tags/selfclosing.goht.go | 2 +- examples/tags/whitespace.goht.go | 2 +- examples/testdata/haml/filters_preserve.html | 2 +- examples/testdata/slim/indents_usingTabs.html | 25 +++++++++++------- 28 files changed, 66 insertions(+), 61 deletions(-) diff --git a/examples/attributes/additional.goht.go b/examples/attributes/additional.goht.go index 2240427..7b06d3d 100644 --- a/examples/attributes/additional.goht.go +++ b/examples/attributes/additional.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package attributes diff --git a/examples/attributes/classes.goht.go b/examples/attributes/classes.goht.go index 2fd4a6a..b7b086a 100644 --- a/examples/attributes/classes.goht.go +++ b/examples/attributes/classes.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package attributes diff --git a/examples/attributes/general.goht.go b/examples/attributes/general.goht.go index db602ac..79f3d73 100644 --- a/examples/attributes/general.goht.go +++ b/examples/attributes/general.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package attributes diff --git a/examples/attributes/names.goht.go b/examples/attributes/names.goht.go index 8c5d723..cb52441 100644 --- a/examples/attributes/names.goht.go +++ b/examples/attributes/names.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package attributes diff --git a/examples/attributes/optional.goht.go b/examples/attributes/optional.goht.go index 23f155a..1fd49f1 100644 --- a/examples/attributes/optional.goht.go +++ b/examples/attributes/optional.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package attributes diff --git a/examples/commands/children.goht.go b/examples/commands/children.goht.go index 2be33ef..d82bd25 100644 --- a/examples/commands/children.goht.go +++ b/examples/commands/children.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package commands diff --git a/examples/commands/render.goht.go b/examples/commands/render.goht.go index 46b53ce..33f0a4e 100644 --- a/examples/commands/render.goht.go +++ b/examples/commands/render.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package commands diff --git a/examples/comments/html.goht.go b/examples/comments/html.goht.go index e3f6b07..f9ba9e8 100644 --- a/examples/comments/html.goht.go +++ b/examples/comments/html.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package comments diff --git a/examples/comments/rubystyle.goht.go b/examples/comments/rubystyle.goht.go index 83406fe..048b9f7 100644 --- a/examples/comments/rubystyle.goht.go +++ b/examples/comments/rubystyle.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package comments diff --git a/examples/doctype/doctype.goht.go b/examples/doctype/doctype.goht.go index ff98949..3420609 100644 --- a/examples/doctype/doctype.goht.go +++ b/examples/doctype/doctype.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package doctype diff --git a/examples/filters/css.goht.go b/examples/filters/css.goht.go index 16693d2..eaf805d 100644 --- a/examples/filters/css.goht.go +++ b/examples/filters/css.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package filters @@ -22,7 +22,7 @@ func Css() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString(""); __err != nil { + if _, __err = __buf.WriteString(";\n}\n"); __err != nil { return } if !__isBuf { @@ -52,7 +52,7 @@ func HamlCss() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString(""); __err != nil { + if _, __err = __buf.WriteString(";\n}\n"); __err != nil { return } if !__isBuf { @@ -82,7 +82,7 @@ func SlimCss() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString(""); __err != nil { + if _, __err = __buf.WriteString(";\n}\n"); __err != nil { return } if !__isBuf { diff --git a/examples/filters/javascript.goht.go b/examples/filters/javascript.goht.go index b87c918..e07c9f8 100644 --- a/examples/filters/javascript.goht.go +++ b/examples/filters/javascript.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package filters @@ -33,7 +33,7 @@ func JavaScript() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("!\");\r\n"); __err != nil { + if _, __err = __buf.WriteString("!\");\n"); __err != nil { return } if !__isBuf { @@ -63,7 +63,7 @@ func HamlJavaScript() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("!\");\r\n"); __err != nil { + if _, __err = __buf.WriteString("!\");\n"); __err != nil { return } if !__isBuf { @@ -93,7 +93,7 @@ func SlimJavaScript() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("!\");\r\n"); __err != nil { + if _, __err = __buf.WriteString("!\");\n"); __err != nil { return } if !__isBuf { diff --git a/examples/filters/text.goht.go b/examples/filters/text.goht.go index 473d014..f70be24 100644 --- a/examples/filters/text.goht.go +++ b/examples/filters/text.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package filters @@ -22,7 +22,7 @@ func Plain() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\r\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\n"); __err != nil { return } var __var1 string @@ -32,7 +32,7 @@ func Plain() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\n

\n"); __err != nil { return } if !__isBuf { @@ -52,7 +52,7 @@ func HamlPlain() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\r\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is plain text. It

will
be displayed as HTML.\n"); __err != nil { return } var __var1 string @@ -62,7 +62,7 @@ func HamlPlain() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\n

\n"); __err != nil { return } if !__isBuf { @@ -82,7 +82,7 @@ func Escaped() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\r\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\n"); __err != nil { return } var __var1 string @@ -92,7 +92,7 @@ func Escaped() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\n

\n"); __err != nil { return } if !__isBuf { @@ -112,7 +112,7 @@ func HamlEscaped() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\r\n"); __err != nil { + if _, __err = __buf.WriteString("

\nThis is escaped text. It <pre>will not</pre> be displayed as HTML.\n"); __err != nil { return } var __var1 string @@ -122,7 +122,7 @@ func HamlEscaped() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r\n

\n"); __err != nil { + if _, __err = __buf.WriteString("\n

\n"); __err != nil { return } if !__isBuf { @@ -142,7 +142,7 @@ func Preserve() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML.\r "); __err != nil { + if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML. "); __err != nil { return } var __var1 string @@ -152,7 +152,7 @@ func Preserve() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r \n

\n"); __err != nil { + if _, __err = __buf.WriteString(" \n

\n"); __err != nil { return } if !__isBuf { @@ -172,7 +172,7 @@ func HamlPreserve() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML.\r "); __err != nil { + if _, __err = __buf.WriteString("

\nThis is preserved text. It

will
be displayed as HTML. "); __err != nil { return } var __var1 string @@ -182,7 +182,7 @@ func HamlPreserve() goht.Template { if _, __err = __buf.WriteString(__var1); __err != nil { return } - if _, __err = __buf.WriteString("\r \n

\n"); __err != nil { + if _, __err = __buf.WriteString(" \n

\n"); __err != nil { return } if !__isBuf { diff --git a/examples/formatting/formats.goht.go b/examples/formatting/formats.goht.go index dd10c91..0b7d554 100644 --- a/examples/formatting/formats.goht.go +++ b/examples/formatting/formats.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package formatting diff --git a/examples/go/code.goht.go b/examples/go/code.goht.go index faa3e55..c975351 100644 --- a/examples/go/code.goht.go +++ b/examples/go/code.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/go/doc.goht.go b/examples/go/doc.goht.go index 6ac6228..d4ce08e 100644 --- a/examples/go/doc.goht.go +++ b/examples/go/doc.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/go/imports.goht.go b/examples/go/imports.goht.go index 040cc3e..8195607 100644 --- a/examples/go/imports.goht.go +++ b/examples/go/imports.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/go/interpolation.goht.go b/examples/go/interpolation.goht.go index 43c1c6d..d7877b6 100644 --- a/examples/go/interpolation.goht.go +++ b/examples/go/interpolation.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/go/package.goht.go b/examples/go/package.goht.go index aa0d587..9658caf 100644 --- a/examples/go/package.goht.go +++ b/examples/go/package.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/go/receivers.goht.go b/examples/go/receivers.goht.go index 9ec5ffd..2d24a34 100644 --- a/examples/go/receivers.goht.go +++ b/examples/go/receivers.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package example diff --git a/examples/hello/world.goht.go b/examples/hello/world.goht.go index 6aa5886..64f1cd6 100644 --- a/examples/hello/world.goht.go +++ b/examples/hello/world.goht.go @@ -129,7 +129,7 @@ func World() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { return } for _, term := range terms { @@ -181,7 +181,7 @@ func HamlWorld() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { return } for _, term := range terms { @@ -233,7 +233,7 @@ func SlimWorld() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { + if _, __err = __buf.WriteString("\n\n\nHello World\n\n\n

Hello World

\n

the following will loop a slice of strings and will pass each string into a child template

\n"); __err != nil { return } for _, term := range terms { diff --git a/examples/indents/tabs.goht.go b/examples/indents/tabs.goht.go index cf1aa11..8514271 100644 --- a/examples/indents/tabs.goht.go +++ b/examples/indents/tabs.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package indents @@ -64,7 +64,7 @@ func SlimUsingTabs() goht.Template { var __children goht.Template ctx, __children = goht.PopChildren(ctx) _ = __children - if _, __err = __buf.WriteString("\nhtml{lang: \"en\"}\nhead\nmeta{charset: \"utf-8\"}\ntitle\n|Hello World\nbody\nh1\n|Hello World\np\n|Hello World\n"); __err != nil { + if _, __err = __buf.WriteString("\n\n\n\nHello World\n\n\n\n

\nHello World\n

\n

\nHello World\n

\n\n\n"); __err != nil { return } if !__isBuf { diff --git a/examples/tags/general.goht.go b/examples/tags/general.goht.go index c5e3ff9..98126a0 100644 --- a/examples/tags/general.goht.go +++ b/examples/tags/general.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package tags diff --git a/examples/tags/objectreference.goht.go b/examples/tags/objectreference.goht.go index cebf1b1..2f2253b 100644 --- a/examples/tags/objectreference.goht.go +++ b/examples/tags/objectreference.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package tags diff --git a/examples/tags/selfclosing.goht.go b/examples/tags/selfclosing.goht.go index cdf63c6..4b3ec96 100644 --- a/examples/tags/selfclosing.goht.go +++ b/examples/tags/selfclosing.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package tags diff --git a/examples/tags/whitespace.goht.go b/examples/tags/whitespace.goht.go index ed752f1..86b784a 100644 --- a/examples/tags/whitespace.goht.go +++ b/examples/tags/whitespace.goht.go @@ -1,4 +1,4 @@ -// Code generated by GoHT - DO NOT EDIT. +// Code generated by GoHT v0.6.0 - DO NOT EDIT. // https://github.com/stackus/goht package tags diff --git a/examples/testdata/haml/filters_preserve.html b/examples/testdata/haml/filters_preserve.html index c4bcb32..5b81afe 100644 --- a/examples/testdata/haml/filters_preserve.html +++ b/examples/testdata/haml/filters_preserve.html @@ -1,3 +1,3 @@

-This is preserved text. It

will
be displayed as HTML. This
"will"
be interpolated with HTML intact. +This is preserved text. It
will
be displayed as HTML. This
"will"
be interpolated with HTML intact.

diff --git a/examples/testdata/slim/indents_usingTabs.html b/examples/testdata/slim/indents_usingTabs.html index 47d9919..30b9dc8 100644 --- a/examples/testdata/slim/indents_usingTabs.html +++ b/examples/testdata/slim/indents_usingTabs.html @@ -1,11 +1,16 @@ -html{lang: "en"} -head -meta{charset: "utf-8"} -title -|Hello World -body -h1 -|Hello World -p -|Hello World + + + +Hello World + + + +

+Hello World +

+

+Hello World +

+ +