code: func newHTMLTag(ln *line, rslt *result, src *source, parent element, opts *Options) (*htmlTag, error) {
  	if len(ln.tokens) < 1 {
  		return nil, fmt.Errorf("an HTML tag is not specified [file: %s][line: %d]", ln.fileName(), ln.no)
  	}
  
  	s := ln.tokens[0]
  
  	tagName := extractTagName(s)
  
  	id, err := extractID(s, ln)
  	if err != nil {
  		return nil, err
  	}
  
  	classes := extractClasses(s)
  
  	e := &htmlTag{
  		elementBase:      newElementBase(ln, rslt, src, parent, opts),
  		tagName:          tagName,
  		id:               id,
  		classes:          classes,
  		containPlainText: strings.HasSuffix(s, dot),
  		insertBr:         strings.HasSuffix(s, doubleDot),
  		attributes:       make([]htmlAttribute, 0, 2),
  	}
  
  	if err := e.setAttributes(); err != nil {
  		return nil, err
  	}
  
  	return e, nil
  }
docs: // newHTMLTag creates and returns an HTML tag.