docs: def run(self):
          """ Parse a tab directive """
          self.assert_has_content()
  
          group_name = self.content[0]
          self.content.trim_start(2)
  
          for idx, line in enumerate(self.content.data):
              self.content.data[idx] = '   ' + line
  
          tab_args = {
              'tab_id': base64.b64encode(
                  group_name.encode('utf-8')).decode('utf-8'),
              'group_tab': True
          }
  
          new_content = [
              '.. tab:: {}'.format(json.dumps(tab_args)),
              '   {}'.format(group_name),
              '',
          ]
  
          for idx, line in enumerate(new_content):
              self.content.data.insert(idx, line)
              self.content.items.insert(idx, (None, idx))
  
          node = nodes.container()
          self.state.nested_parse(self.content, self.content_offset, node)
          return node.children