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.

def process_links(include_match, block_map, link_stack, source_path):
    """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.
    """
    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)