import os
from typing import Optional


def save_markdown(content: str, filename: str, directory: Optional[str] = None) -> str:
    """
    将字符串内容保存为Markdown文件

    :param content: 要保存的Markdown内容
    :param filename: 文件名（不需要.md后缀）
    :param directory: 保存目录（可选，默认为当前目录）
    :return: 保存的文件完整路径
    """
    try:
        # 确保文件名以.md结尾
        if not filename.endswith('.md'):
            filename += '.md'

        # 确定保存路径
        if directory:
            # 确保目录存在
            os.makedirs(directory, exist_ok=True)
            filepath = os.path.join(directory, filename)
        else:
            filepath = filename

        # 写入文件
        with open(filepath, 'w', encoding='utf-8') as f:
            f.write(content)

        print(f"[SUCCESS] Markdown文件已保存到: {filepath}")
        return filepath

    except Exception as e:
        print(f"[ERROR] 保存文件时出错: {str(e)}")
        raise


# 使用示例
if __name__ == "__main__":
    # 示例内容
    markdown_content = """# 测试标题

这是一个测试的Markdown文件。

## 二级标题

- 列表项1
- 列表项2

```python
print("Hello, World!")
```
"""
    print(markdown_content)
    # 保存到当前目录
    save_markdown(markdown_content, "test")

    # 保存到指定目录
    # save_markdown(markdown_content, "test", "D:/output")