docs: private boolean checkHTML()
      {
          final LinkedList<String> tags = new LinkedList<String>();
          final StringBuilder temp = new StringBuilder();
          int pos = this.leading;
          if (this.value.charAt(this.leading + 1) == '!')
          {
              if (this.readXMLComment(this, this.leading) > 0)
              {
                  return true;
              }
          }
          pos = Utils.readXML(temp, this.value, this.leading, false);
          String element, tag;
          if (pos > -1)
          {
              element = temp.toString();
              temp.setLength(0);
              Utils.getXMLTag(temp, element);
              tag = temp.toString().toLowerCase();
              if (!HTML.isHtmlBlockElement(tag))
              {
                  return false;
              }
              if (tag.equals("hr") || element.endsWith("/>"))
              {
                  this.xmlEndLine = this;
                  return true;
              }
              tags.add(tag);
  
              Line line = this;
              while (line != null)
              {
                  while (pos < line.value.length() && line.value.charAt(pos) != '<')
                  {
                      pos++;
                  }
                  if (pos >= line.value.length())
                  {
                      line = line.next;
                      pos = 0;
                  }
                  else
                  {
                      temp.setLength(0);
                      final int newPos = Utils.readXML(temp, line.value, pos, false);
                      if (newPos > 0)
                      {
                          element = temp.toString();
                          temp.setLength(0);
                          Utils.getXMLTag(temp, element);
                          tag = temp.toString().toLowerCase();
                          if (HTML.isHtmlBlockElement(tag) && !tag.equals("hr") && !element.endsWith("/>"))
                          {
                              if (element.charAt(1) == '/')
                              {
                                  if (!tags.getLast().equals(tag))
                                  {
                                      return false;
                                  }
                                  tags.removeLast();
                              }
                              else
                              {
                                  tags.addLast(tag);
                              }
                          }
                          if (tags.size() == 0)
                          {
                              this.xmlEndLine = line;
                              break;
                          }
                          pos = newPos;
                      }
                      else
                      {
                          pos++;
                      }
                  }
              }
              return tags.size() == 0;
          }
          return false;
      }