def filter_printing_tokens()

in assets/assets/utils/convert/badgerdoc.py [0:0]


def filter_printing_tokens(objs: List[BadgerdocToken]) -> List[BadgerdocToken]:
    needed_objs = []
    at_the_beginning_of_string = True
    non_printing_sequence = []
    for token_obj in objs:
        char = token_obj.text
        if not char.isspace():
            needed_objs.append(token_obj.copy())

        # form field previous
        if at_the_beginning_of_string:
            if char.isspace():
                non_printing_sequence.append(char)
                continue
            else:
                needed_objs[0].previous = (
                    "".join(non_printing_sequence)
                    if non_printing_sequence
                    else None
                )
                at_the_beginning_of_string = False

        # form field after
        if char.isspace():
            previous_text = needed_objs[-1].after
            needed_objs[-1].after = (
                char if not previous_text else previous_text + char
            )

    return needed_objs