code: def link(source_path):
      
      if not os.path.isfile(source_path):
          raise SourceNotFound(source_path)
      with open(source_path, 'r') as f:
          content = f.read()
      block_map = BlockMap()  # The map will be populated with the following function call.
      all_block = convert_lines_to_block(
              content.splitlines(), block_map, LinkStack(source_path), source_path)
      return all_block, block_map.get_variables()
docs: Links the content found at source_path and represents a Block that represents the content.