code: def process_links(include_match, block_map, link_stack, source_path):
      
      leading_whitespace = include_match.group(1)
      include_path = include_match.group(2)
  
      # Optional block name. If match is None, block name was ommitted (default to 'all').
      block_name = include_match.group(3)
      if block_name is not None:
          block_name = block_name.lstrip(':')
      else:
          block_name = ALL_BLOCK_NAME
  
      return retrieve_block_from_map(
              source_path,
              include_path.strip(),
              block_name.strip(),
              leading_whitespace,
              block_map,
              link_stack)
docs: Process a string of content for include tags.
  
      This function assumes there are no blocks in the content. The content is split into segments,
      with include tags being replaced by Block objects.
  
      PARAMETERS:
      content     -- str; content to be converted into a Block.
      block_map   -- BlockMap
      link_stack  -- LinkStack
      source_path -- str; the filepath of the file from which this content came.
  
      RETURNS:
      list of str; segments that the comprise the content.