docs: def construct_meta(need_data, env):
      """
      Constructs the node-structure for the status container
      :param need_data: need_info container
      :return: node
      """
  
      hide_options = env.config.needs_hide_options
      if not isinstance(hide_options, list):
          raise SphinxError('Config parameter needs_hide_options must be of type list')
  
      node_meta = nodes.line_block(classes=['needs_meta'])
      # need parameters
      param_status = "status: "
      param_tags = "tags: "
  
      if need_data["status"] is not None and 'status' not in hide_options:
          status_line = nodes.line(classes=['status'])
          # node_status = nodes.line(param_status, param_status, classes=['status'])
          node_status = nodes.inline(param_status, param_status, classes=['status'])
          status_line.append(node_status)
          status_line.append(nodes.inline(need_data["status"], need_data["status"],
                                          classes=["needs-status", str(need_data['status'])]))
          node_meta.append(status_line)
  
      if need_data["tags"] and 'tags' not in hide_options:
          tag_line = nodes.line(classes=['tags'])
          # node_tags = nodes.line(param_tags, param_tags, classes=['tags'])
          node_tags = nodes.inline(param_tags, param_tags, classes=['tags'])
          tag_line.append(node_tags)
          for tag in need_data['tags']:
              # node_tags.append(nodes.inline(tag, tag, classes=["needs-tag", str(tag)]))
              # node_tags.append(nodes.inline(' ', ' '))
              tag_line.append(nodes.inline(tag, tag, classes=["needs-tag", str(tag)]))
              tag_line.append(nodes.inline(' ', ' '))
          node_meta.append(tag_line)
  
      # Links incoming
      if need_data['links_back'] and 'links_back' not in hide_options:
          node_incoming_line = nodes.line(classes=['links', 'incoming'])
          prefix = "links incoming: "
          node_incoming_prefix = nodes.inline(prefix, prefix)
          node_incoming_line.append(node_incoming_prefix)
          node_incoming_links = Need_incoming(reftarget=need_data['id'])
          node_incoming_links.append(nodes.inline(need_data['id'], need_data['id']))
          node_incoming_line.append(node_incoming_links)
          node_meta.append(node_incoming_line)
  
      # # Links outgoing
      if need_data['links'] and 'links' not in hide_options:
          node_outgoing_line = nodes.line(classes=['links', 'outgoing'])
          prefix = "links outgoing: "
          node_outgoing_prefix = nodes.inline(prefix, prefix)
          node_outgoing_line.append(node_outgoing_prefix)
          node_outgoing_links = Need_outgoing(reftarget=need_data['id'])
          node_outgoing_links.append(nodes.inline(need_data['id'], need_data['id']))
          node_outgoing_line.append(node_outgoing_links)
          node_meta.append(node_outgoing_line)
  
      extra_options = getattr(env.config, 'needs_extra_options', {})
      node_extra_options = []
      for key, value in extra_options.items():
          if key in hide_options:
              continue
          param_data = need_data[key]
          if param_data is None or not param_data:
              continue
          param_option = '{}: '.format(key)
          option_line = nodes.line(classes=['extra_option'])
          option_line.append(nodes.inline(param_option, param_option, classes=['extra_option']))
          option_line.append(nodes.inline(param_data, param_data,
                                          classes=["needs-extra-option", str(key)]))
          node_extra_options.append(option_line)
  
      node_meta += node_extra_options
  
      global_options = getattr(env.config, 'needs_global_options', {})
      node_global_options = []
      for key, value in global_options.items():
          # If a global option got locally overwritten, it must already part of extra_options.
          # In this skipp output, as this is done during extra_option handling
          if key in extra_options or key in hide_options:
              continue
  
          param_data = need_data[key]
          if param_data is None or not param_data:
              continue
          param_option = '{}: '.format(key)
          global_option_line = nodes.line(classes=['global_option'])
          global_option_line.append(nodes.inline(param_option, param_option, classes=['global_option']))
          global_option_line.append(nodes.inline(param_data, param_data,
                                                 classes=["needs-global-option", str(key)]))
          node_global_options.append(global_option_line)
  
      node_meta += node_global_options
  
      return node_meta