Source code for dash_evals.utils.markdown
"""Utilities for working with markdown or text."""
[docs]
def extract_code_from_markdown(text: str, language: str | None = None) -> str:
"""Extract code from markdown code blocks.
Args:
text: Text that may contain markdown code blocks.
language: Optional language identifier (e.g., 'dart', 'python').
Returns:
Extracted code, or original text if no code blocks found.
Example:
>>> extract_code_from_markdown("```dart\\ncode\\n```")
'code'
"""
# Try language-specific code block first if language is provided
if language:
marker = f"```{language}"
if marker in text:
start = text.find(marker) + len(marker)
end = text.find("```", start)
if end != -1:
return text[start:end].strip()
# Try generic language-specific code blocks (e.g., ```dart, ```python)
if "```" in text:
# Look for language-specific blocks
for lang in ["dart", "python", "javascript", "typescript", "java", "kotlin"]:
marker = f"```{lang}"
if marker in text:
start = text.find(marker) + len(marker)
end = text.find("```", start)
if end != -1:
return text[start:end].strip()
# Fall back to generic code block
start = text.find("```") + 3
end = text.find("```", start)
if end != -1:
return text[start:end].strip()
return text