import re
def extract_html_content(text: str, stack: str = "react-tailwind") -> str:
"""
Extract code content from LLM response based on technology stack.
Args:
text: The raw text response from LLM
stack: Technology stack ("react-tailwind", "html-tailwind", "svg")
Returns:
str: Extracted code content
"""
# Remove markdown code blocks if present
text = re.sub(r"```[\w]*\n|```", "", text)
if stack == "svg":
# Extract SVG content
svg_match = re.search(r"(.*?)", text, re.DOTALL)
if svg_match:
return svg_match.group(1)
elif stack == "react-tailwind":
# Extract React component content
react_match = re.search(r"(export default function.*?})\s*$", text, re.DOTALL)
if react_match:
return react_match.group(1)
# Alternative: look for const/function component definition
alt_match = re.search(
r"((?:const|function)\s+\w+\s*=?\s*(?:\([^)]*\))?\s*=>?\s*{.*?})\s*$",
text,
re.DOTALL,
)
if alt_match:
return alt_match.group(1)
# Default: try to extract content within tags
html_match = re.search(r"(.*?)", text, re.DOTALL)
if html_match:
return html_match.group(1)
# If no specific patterns match, try to extract any HTML-like content
body_match = re.search(r"(.*?