chatgpt-to-md


Namechatgpt-to-md JSON
Version 0.1.0 PyPI version JSON
download
home_pageNone
Summary将ChatGPT导出的对话转换为Markdown文件
upload_time2025-10-20 06:04:07
maintainerNone
docs_urlNone
authorNone
requires_python>=3.7
licenseMIT
keywords chatgpt markdown export converter
VCS
bugtrack_url
requirements No requirements were recorded.
Travis-CI No Travis.
coveralls test coverage No coveralls.
            # ChatGPT to Markdown

一个简单的工具,将ChatGPT导出的zip文件转换为漂亮的Markdown文件。

## 安装

```bash
pip install chatgpt-to-md
```

## 使用方法

### 命令行使用

```bash
# 基本用法
chatgpt-to-md conversation.zip

# 指定输出目录
chatgpt-to-md conversation.zip -o ./my_chats
```

### Python中使用

```python
from chatgpt_to_md import convert

convert("conversation.zip", "./output")
```

## 功能特点

- ✅ 自动解压zip文件
- ✅ 转换所有对话为独立的Markdown文件
- ✅ 包含YAML front matter元数据
- ✅ 按时间排序对话消息
- ✅ 自动处理文件名中的非法字符

## 许可证

MIT
```

## 5. 许可证文件 (`LICENSE`)

```text
MIT License

Copyright (c) 2024 Your Name

Permission is hereby granted...
```

## 发布流程

### 1. 本地开发和测试

```bash
# 进入项目目录
cd chatgpt-to-md

# 安装为开发模式
pip install -e .

# 测试功能
chatgpt-to-md test_conversation.zip -o ./test_output
```

### 2. 构建包

```bash
# 安装构建工具
pip install build

# 构建包
python -m build
```

这会生成 `dist/` 目录,包含 `.whl` 和 `.tar.gz` 文件。

### 3. 发布到 PyPI

```bash
# 安装上传工具
pip install twine

# 上传到 PyPI
twine upload dist/*
```

## 使用方式

### 作为用户安装使用

```bash
# 从PyPI安装
pip install chatgpt-to-md

# 使用
chatgpt-to-md my_chatgpt_data.zip -o ./conversations
```

### 作为开发者使用

```python
from chatgpt_to_md import convert

# 在代码中使用
convert("path/to/chatgpt.zip", "./output_directory")
```

## 项目特点

1. **最简依赖**: 只使用Python标准库,无外部依赖
2. **单一功能**: 专注完成一个核心任务
3. **易于理解**: 代码结构清晰,便于学习和修改
4. **即装即用**: 安装后直接通过命令行使用
5. **标准化**: 符合Python包发布标准

这个架构让你能够:
- ✅ 快速理解整个发布流程
- ✅ 轻松维护和扩展
- ✅ 让其他用户方便安装使用
- ✅ 符合Python生态系统标准

            

Raw data

            {
    "_id": null,
    "home_page": null,
    "name": "chatgpt-to-md",
    "maintainer": null,
    "docs_url": null,
    "requires_python": ">=3.7",
    "maintainer_email": null,
    "keywords": "chatgpt, markdown, export, converter",
    "author": null,
    "author_email": "Your Name <your.email@example.com>",
    "download_url": "https://files.pythonhosted.org/packages/9e/45/6cc3f5db45e4814233d6ce548a975cc24480eac1b20c51c66223b0eaf539/chatgpt_to_md-0.1.0.tar.gz",
    "platform": null,
    "description": "# ChatGPT to Markdown\r\n\r\n\u4e00\u4e2a\u7b80\u5355\u7684\u5de5\u5177\uff0c\u5c06ChatGPT\u5bfc\u51fa\u7684zip\u6587\u4ef6\u8f6c\u6362\u4e3a\u6f02\u4eae\u7684Markdown\u6587\u4ef6\u3002\r\n\r\n## \u5b89\u88c5\r\n\r\n```bash\r\npip install chatgpt-to-md\r\n```\r\n\r\n## \u4f7f\u7528\u65b9\u6cd5\r\n\r\n### \u547d\u4ee4\u884c\u4f7f\u7528\r\n\r\n```bash\r\n# \u57fa\u672c\u7528\u6cd5\r\nchatgpt-to-md conversation.zip\r\n\r\n# \u6307\u5b9a\u8f93\u51fa\u76ee\u5f55\r\nchatgpt-to-md conversation.zip -o ./my_chats\r\n```\r\n\r\n### Python\u4e2d\u4f7f\u7528\r\n\r\n```python\r\nfrom chatgpt_to_md import convert\r\n\r\nconvert(\"conversation.zip\", \"./output\")\r\n```\r\n\r\n## \u529f\u80fd\u7279\u70b9\r\n\r\n- \u2705 \u81ea\u52a8\u89e3\u538bzip\u6587\u4ef6\r\n- \u2705 \u8f6c\u6362\u6240\u6709\u5bf9\u8bdd\u4e3a\u72ec\u7acb\u7684Markdown\u6587\u4ef6\r\n- \u2705 \u5305\u542bYAML front matter\u5143\u6570\u636e\r\n- \u2705 \u6309\u65f6\u95f4\u6392\u5e8f\u5bf9\u8bdd\u6d88\u606f\r\n- \u2705 \u81ea\u52a8\u5904\u7406\u6587\u4ef6\u540d\u4e2d\u7684\u975e\u6cd5\u5b57\u7b26\r\n\r\n## \u8bb8\u53ef\u8bc1\r\n\r\nMIT\r\n```\r\n\r\n## 5. \u8bb8\u53ef\u8bc1\u6587\u4ef6 (`LICENSE`)\r\n\r\n```text\r\nMIT License\r\n\r\nCopyright (c) 2024 Your Name\r\n\r\nPermission is hereby granted...\r\n```\r\n\r\n## \u53d1\u5e03\u6d41\u7a0b\r\n\r\n### 1. \u672c\u5730\u5f00\u53d1\u548c\u6d4b\u8bd5\r\n\r\n```bash\r\n# \u8fdb\u5165\u9879\u76ee\u76ee\u5f55\r\ncd chatgpt-to-md\r\n\r\n# \u5b89\u88c5\u4e3a\u5f00\u53d1\u6a21\u5f0f\r\npip install -e .\r\n\r\n# \u6d4b\u8bd5\u529f\u80fd\r\nchatgpt-to-md test_conversation.zip -o ./test_output\r\n```\r\n\r\n### 2. \u6784\u5efa\u5305\r\n\r\n```bash\r\n# \u5b89\u88c5\u6784\u5efa\u5de5\u5177\r\npip install build\r\n\r\n# \u6784\u5efa\u5305\r\npython -m build\r\n```\r\n\r\n\u8fd9\u4f1a\u751f\u6210 `dist/` \u76ee\u5f55\uff0c\u5305\u542b `.whl` \u548c `.tar.gz` \u6587\u4ef6\u3002\r\n\r\n### 3. \u53d1\u5e03\u5230 PyPI\r\n\r\n```bash\r\n# \u5b89\u88c5\u4e0a\u4f20\u5de5\u5177\r\npip install twine\r\n\r\n# \u4e0a\u4f20\u5230 PyPI\r\ntwine upload dist/*\r\n```\r\n\r\n## \u4f7f\u7528\u65b9\u5f0f\r\n\r\n### \u4f5c\u4e3a\u7528\u6237\u5b89\u88c5\u4f7f\u7528\r\n\r\n```bash\r\n# \u4ecePyPI\u5b89\u88c5\r\npip install chatgpt-to-md\r\n\r\n# \u4f7f\u7528\r\nchatgpt-to-md my_chatgpt_data.zip -o ./conversations\r\n```\r\n\r\n### \u4f5c\u4e3a\u5f00\u53d1\u8005\u4f7f\u7528\r\n\r\n```python\r\nfrom chatgpt_to_md import convert\r\n\r\n# \u5728\u4ee3\u7801\u4e2d\u4f7f\u7528\r\nconvert(\"path/to/chatgpt.zip\", \"./output_directory\")\r\n```\r\n\r\n## \u9879\u76ee\u7279\u70b9\r\n\r\n1. **\u6700\u7b80\u4f9d\u8d56**: \u53ea\u4f7f\u7528Python\u6807\u51c6\u5e93\uff0c\u65e0\u5916\u90e8\u4f9d\u8d56\r\n2. **\u5355\u4e00\u529f\u80fd**: \u4e13\u6ce8\u5b8c\u6210\u4e00\u4e2a\u6838\u5fc3\u4efb\u52a1\r\n3. **\u6613\u4e8e\u7406\u89e3**: \u4ee3\u7801\u7ed3\u6784\u6e05\u6670\uff0c\u4fbf\u4e8e\u5b66\u4e60\u548c\u4fee\u6539\r\n4. **\u5373\u88c5\u5373\u7528**: \u5b89\u88c5\u540e\u76f4\u63a5\u901a\u8fc7\u547d\u4ee4\u884c\u4f7f\u7528\r\n5. **\u6807\u51c6\u5316**: \u7b26\u5408Python\u5305\u53d1\u5e03\u6807\u51c6\r\n\r\n\u8fd9\u4e2a\u67b6\u6784\u8ba9\u4f60\u80fd\u591f\uff1a\r\n- \u2705 \u5feb\u901f\u7406\u89e3\u6574\u4e2a\u53d1\u5e03\u6d41\u7a0b\r\n- \u2705 \u8f7b\u677e\u7ef4\u62a4\u548c\u6269\u5c55\r\n- \u2705 \u8ba9\u5176\u4ed6\u7528\u6237\u65b9\u4fbf\u5b89\u88c5\u4f7f\u7528\r\n- \u2705 \u7b26\u5408Python\u751f\u6001\u7cfb\u7edf\u6807\u51c6\r\n",
    "bugtrack_url": null,
    "license": "MIT",
    "summary": "\u5c06ChatGPT\u5bfc\u51fa\u7684\u5bf9\u8bdd\u8f6c\u6362\u4e3aMarkdown\u6587\u4ef6",
    "version": "0.1.0",
    "project_urls": {
        "Homepage": "https://github.com/yourusername/chatgpt-to-md"
    },
    "split_keywords": [
        "chatgpt",
        " markdown",
        " export",
        " converter"
    ],
    "urls": [
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "f80a67afefddc9c722847d9de0b81538acdf566dda171981088fb9da37094715",
                "md5": "2b0e9c063c90647b520aebc35c719511",
                "sha256": "badf7f47c676fb56042359d89234bbfb3933e7a3293eb75d2b10c575259ebd4d"
            },
            "downloads": -1,
            "filename": "chatgpt_to_md-0.1.0-py3-none-any.whl",
            "has_sig": false,
            "md5_digest": "2b0e9c063c90647b520aebc35c719511",
            "packagetype": "bdist_wheel",
            "python_version": "py3",
            "requires_python": ">=3.7",
            "size": 4910,
            "upload_time": "2025-10-20T06:04:06",
            "upload_time_iso_8601": "2025-10-20T06:04:06.557998Z",
            "url": "https://files.pythonhosted.org/packages/f8/0a/67afefddc9c722847d9de0b81538acdf566dda171981088fb9da37094715/chatgpt_to_md-0.1.0-py3-none-any.whl",
            "yanked": false,
            "yanked_reason": null
        },
        {
            "comment_text": null,
            "digests": {
                "blake2b_256": "9e456cc3f5db45e4814233d6ce548a975cc24480eac1b20c51c66223b0eaf539",
                "md5": "e4e89488514114a600e10b5be8c12f13",
                "sha256": "82983768861ea95c56250718e88cf4acdf414755f3a2dcf560558b75065b9341"
            },
            "downloads": -1,
            "filename": "chatgpt_to_md-0.1.0.tar.gz",
            "has_sig": false,
            "md5_digest": "e4e89488514114a600e10b5be8c12f13",
            "packagetype": "sdist",
            "python_version": "source",
            "requires_python": ">=3.7",
            "size": 4415,
            "upload_time": "2025-10-20T06:04:07",
            "upload_time_iso_8601": "2025-10-20T06:04:07.796496Z",
            "url": "https://files.pythonhosted.org/packages/9e/45/6cc3f5db45e4814233d6ce548a975cc24480eac1b20c51c66223b0eaf539/chatgpt_to_md-0.1.0.tar.gz",
            "yanked": false,
            "yanked_reason": null
        }
    ],
    "upload_time": "2025-10-20 06:04:07",
    "github": true,
    "gitlab": false,
    "bitbucket": false,
    "codeberg": false,
    "github_user": "yourusername",
    "github_project": "chatgpt-to-md",
    "github_not_found": true,
    "lcname": "chatgpt-to-md"
}
        
Elapsed time: 1.01614s