def replace_code_blocks_and_inline_code()

in src/co_op_translator/utils/llm/markdown_utils.py [0:0]


def replace_code_blocks_and_inline_code(document: str):
    """
    Replace code blocks and inline code in the document with placeholders.

    Args:
        document (str): The markdown document to process.

    Returns:
        tuple: A tuple containing:
            - The document with placeholders.
            - A dictionary mapping placeholders to their original code.
    """
    code_block_pattern = r"```[\s\S]*?```"
    inline_code_pattern = r"`[^`]+`"

    # Replace code blocks
    code_blocks = re.findall(code_block_pattern, document)
    inline_codes = re.findall(inline_code_pattern, document)

    placeholder_map = {}

    # Replace code blocks with placeholders
    for i, code_block in enumerate(code_blocks):
        placeholder = f"@@CODE_BLOCK_{i}@@"
        document = document.replace(code_block, placeholder)
        placeholder_map[placeholder] = code_block

    # Replace inline codes with placeholders
    for i, inline_code in enumerate(inline_codes):
        placeholder = f"@@INLINE_CODE_{i}@@"
        document = document.replace(inline_code, placeholder)
        placeholder_map[placeholder] = inline_code

    return document, placeholder_map