code: func (l *lexer) lexUntilNewline() (string, int, int) {
  	// Compute 'text'.
  	var buf bytes.Buffer
  	lastNonSpace := 0
  	for r := l.next(); r != lexEOF && r != '\n'; r = l.next() {
  		buf.WriteRune(r)
  		if !isHorizontalWhitespace(r) {
  			lastNonSpace = buf.Len()
  		}
  	}
  	l.backup()
  	// Trim whitespace off the end.
  	buf.Truncate(lastNonSpace)
  	text := buf.String()
  
  	// Consume the '\n' and following indent.
  	var newLines int
  	newLines, indent := l.lexWhitespace()
  	blanks := 0
  	if newLines > 0 {
  		blanks = newLines - 1
  	}
  	return text, blanks, indent
  }
docs: // lexUntilNewLine consumes all text until the end of the line and returns the
  // number of newlines after that as well as the next indent.