code: func (s *Scanner) scanContent() (string, error) {
  	var buf bytes.Buffer
  	for {
  		ch := s.read()
  		if ch == eof {
  			return "", &SyntaxError{Message: "Expected close tag, found EOF", Pos: s.pos}
  		} else if ch == '%' {
  			ch := s.read()
  			if ch == eof {
  				return "", &SyntaxError{Message: "Expected close tag, found EOF", Pos: s.pos}
  			} else if ch == '>' {
  				break
  			} else {
  				buf.WriteRune('%')
  				buf.WriteRune(ch)
  			}
  		} else {
  			buf.WriteRune(ch)
  		}
  	}
  	return string(buf.Bytes()), nil
  }
docs: // scans the reader until %> is reached.