def METHOD_NAME(
    wxr: WiktextractContext, node: WikiNode
) -> Optional[Tuple[str, str]]:
    """Parse a HTML 'ruby' node for a kanji part and a furigana (ruby) part,
    and return a tuple containing those. Discard the rp-element's parentheses,
    we don't do anything with them."""
    ruby_nodes = []
    furi_nodes = []
    for child in node.children:
        if (
            not isinstance(child, WikiNode)
            or child.kind != NodeKind.HTML
            or child.sarg not in {"rp", "rt"}
        ):
            ruby_nodes.append(child)
        elif child.sarg == "rt":
            furi_nodes.append(child)
    ruby_kanji = clean_node(wxr, None, ruby_nodes).strip()
    furigana = clean_node(wxr, None, furi_nodes).strip()
    if not ruby_kanji or not furigana:
        # like in パイスラッシュ there can be a template that creates a ruby
        # element with an empty something (apparently, seeing as how this
        # works), leaving no trace of the broken ruby element in the final
        # HTML source of the page!
        return
    return ruby_kanji, furigana