code: func lexContent(l *Lexer) lexFunc {
  	var next lexFunc
  
  	if l.rawBlock {
  		if i := l.indexRegexp(rOpenEndRawLookAhead); i != -1 {
  			// {{{{/
  			l.rawBlock = false
  			l.pos += i
  
  			next = lexOpenMustache
  		} else {
  			return l.errorf("Unclosed raw block")
  		}
  	} else if l.isString(escapedEscapedOpenMustache) {
  		// \\{{
  
  		// emit content with only one escaped escape
  		l.next()
  		l.emitContent()
  
  		// ignore second escaped escape
  		l.next()
  		l.ignore()
  
  		next = lexContent
  	} else if l.isString(escapedOpenMustache) {
  		// \{{
  		next = lexEscapedOpenMustache
  	} else if str := l.findRegexp(rOpenCommentDash); str != "" {
  		// {{!--
  		l.closeComment = rCloseCommentDash
  
  		next = lexComment
  	} else if str := l.findRegexp(rOpenComment); str != "" {
  		// {{!
  		l.closeComment = rCloseComment
  
  		next = lexComment
  	} else if l.isString(openMustache) {
  		// {{
  		next = lexOpenMustache
  	}
  
  	if next != nil {
  		// emit scanned content
  		l.emitContent()
  
  		// scan next token
  		return next
  	}
  
  	// scan next rune
  	if l.next() == eof {
  		// emit scanned content
  		l.emitContent()
  
  		// this is over
  		l.emit(TokenEOF)
  		return nil
  	}
  
  	// continue content scanning
  	return lexContent
  }
docs: // lexContent scans content (ie: not between mustaches)