A function which parses the main Runeforge website into dict format.

    Parameters
    ----------
    html : str
        The string representation of the html obtained via a GET request.

    Returns
    -------
    dict
        The nested rune_links champ rune pages from runeforge.

def parse_rune_links(html: str) -> dict:
    """A function which parses the main Runeforge website into dict format.

    Parameters
    ----------
    html : str
        The string representation of the html obtained via a GET request.

    Returns
    -------
    dict
        The nested rune_links champ rune pages from runeforge.
    """
    soup = BeautifulSoup(html, 'lxml')

    # Champs with only a single runepage
    single_page_raw = soup.find_all('li', class_='champion')
    single_page = {re.split('\W+', x.a.div.div['style'])[-3].lower():
                       [x.a['href']] for x in single_page_raw if x.a is not None}

    # Champs with two (or more) runepages
    double_page_raw = soup.find_all('div', class_='champion-modal-open')
    # This is JSON data which just needs to be decoded
    double_page_decode = [json.loads(x['data-loadouts']) for x in double_page_raw]
    # This lowers the champ name in the structure, 
    # and pulls out the champ links, after it's been decoded
    double_page = {re.sub('[^A-Za-z0-9]+', '', x[0]['champion'].lower()):
                       [x[0]['link'], x[1]['link']] for x in double_page_decode}

    # Combine the two dicts
    champs_combined = {**single_page, **double_page}

    return champs_combined