def split_page_data(post_data):
    """Pluck the page data from the post data and return both.

    publish_post is pure and doesn't know what a post/page is.

    Posts contain pages. devel.tech's architecture needs to split page data
    from the post. The page will store the "body" content and also
    a subtitle.
    """
    page_data = {}
    for field in ['body', 'subtitle', 'draft']:
        try:
            page_data[field] = post_data.pop(field)
        except KeyError:  # handle corner case, no subtitle/body
            pass
    return post_data, page_data