code: def handle_starttag(self, tag, attrs):
          
          if tag.lower() in self.allowed_tag_whitelist:
              if tag.lower() == 'ol':
                  # we need a list to store the last
                  # number used  in the previous ordered lists
                  self.previous_nbs.append(self.nb)
                  self.nb = 0
                  # we need to know which is the tag list
                  self.previous_type_lists.append(tag.lower())
                  # we must remove any non-relevant spacing and end of
                  # line before
                  self.result = self.result.rstrip()
              elif tag.lower() == 'ul':
                  self.previous_type_lists.append(tag.lower())
                  # we must remove any non-relevant spacing and end of
                  # line before
                  self.result = self.result.rstrip()
              elif tag.lower() == 'li':
                  # we must remove any non-relevant spacing and end of
                  # line before
                  self.result = self.result.rstrip()
                  if self.previous_type_lists[-1] == 'ol':
                      self.nb += 1
                      self.result += '\n' + self.line_quotation + \
                                     '  ' * len(self.previous_type_lists) + \
                          str(self.nb) + '. '
                  else:
                      self.result += '\n' + self.line_quotation + \
                                     '  ' * len(self.previous_type_lists) + '* '
              elif tag.lower() == 'a':
                  # self.previous_type_lists.append(tag.lower())
                  for (attr, value) in attrs:
                      if attr.lower() == 'href':
                          self.url = value
                          self.result += '<' + value + '>'
docs: Function called for new opening tags