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