# Markdown utility functions
import markdown
import bleach


def md_to_html(text):
    """Convert markdown text到 HTML，并进行安全过滤"""
    if not text:
        return ""
    
    # 使用 markdown 库转换
    html = markdown.markdown(text, extensions=['fenced_code', 'tables'])
    
    # 使用 bleach 进行安全过滤
    allowed_tags = [
        'p', 'br', 'strong', 'em', 'ul', 'ol', 'li', 'a', 'code', 'pre',
        'h1', 'h2', 'h3', 'h4', 'h5', 'h6', 'blockquote', 'hr', 'table',
        'thead', 'tbody', 'tr', 'th', 'td'
    ]
    allowed_attrs = {
        'a': ['href', 'title', 'target'],
        'img': ['src', 'alt'],
        'th': ['align'],
        'td': ['align'],
    }
    
    clean_html = bleach.clean(html, tags=allowed_tags, attributes=allowed_attrs)
    return clean_html
