Metadata-Version: 2.4
Name: kb2md
Version: 0.1.0
Summary: Convert Confluence pages to Markdown with attachments.
Project-URL: Homepage, https://github.com/slash-xin/kb2md
Project-URL: Repository, https://github.com/slash-xin/kb2md
Author-email: xinyan <slash.xin@gmail.com>
License: MIT
License-File: LICENSE
Keywords: confluence,export,kb,markdown
Classifier: Development Status :: 4 - Beta
Classifier: Intended Audience :: Developers
Classifier: Intended Audience :: End Users/Desktop
Classifier: License :: OSI Approved :: MIT License
Classifier: Operating System :: OS Independent
Classifier: Programming Language :: Python :: 3
Classifier: Programming Language :: Python :: 3.10
Classifier: Programming Language :: Python :: 3.11
Classifier: Programming Language :: Python :: 3.12
Classifier: Topic :: Utilities
Requires-Python: >=3.10
Requires-Dist: atlassian-python-api>=3.41.0
Requires-Dist: beautifulsoup4>=4.12.0
Requires-Dist: markdownify>=0.13.0
Requires-Dist: pillow>=10.0.0
Requires-Dist: pycookiecheat>=0.8.0
Requires-Dist: requests>=2.31.0
Provides-Extra: dev
Requires-Dist: bandit>=1.7.0; extra == 'dev'
Requires-Dist: black>=24.0.0; extra == 'dev'
Requires-Dist: mypy>=1.10.0; extra == 'dev'
Requires-Dist: pytest-cov>=5.0.0; extra == 'dev'
Requires-Dist: pytest>=8.0.0; extra == 'dev'
Requires-Dist: ruff>=0.5.0; extra == 'dev'
Description-Content-Type: text/markdown

# kb2md

将 Confluence 页面导出为本地 Markdown 文件，并自动下载附件与图片，支持子页面批量导出。

## 安装

```bash
pip install kb2md
```

## 快速开始

### 1. 配置默认 URL 和 Token（可选，推荐）

```bash
kb2md --set-default-url https://kb.cvte.com
kb2md --set-default-token "你的PAT"
```

也可以同时设置：

```bash
kb2md --set-default-url https://kb.cvte.com --set-default-token "你的PAT"
```

### 2. 导出单个页面

```bash
# 使用 page ID（已设置默认 URL 和 Token 时）
kb2md 514437503

# 或使用完整 URL
kb2md https://kb.cvte.com/pages/viewpage.action?pageId=514437503

# 临时指定 Token
kb2md 514437503 --token "你的Token"
```

### 3. 导出子页面

```bash
# 只导出直接子页面
kb2md --subpage 514437503

# 递归导出所有子页面
kb2md --all-subpage 514437503
```

## 命令行参数

| 参数 | 说明 |
|------|------|
| `page_ref` | 页面 ID 或 Confluence URL |
| `--url` | Confluence base URL（临时覆盖默认值） |
| `--token` | Confluence Personal Access Token |
| `--output-dir` | 输出目录，默认 `./output` |
| `--subpage` | 下载直接子页面 |
| `--all-subpage` | 递归下载所有子页面 |
| `--no-chrome-cookies` | 禁用 Chrome Cookie 下载附件 |
| `--set-default-url` | 设置默认 Confluence URL |
| `--set-default-token` | 设置默认 Confluence Token/PAT |
| `--get-default-url` | 查看当前默认 URL |
| `--verbose` | 开启详细日志 |
| `--version` | 显示版本 |

## 输出结构

```text
output/
├── 页面标题[514437503].md
└── 514437503_page/
    ├── 子页面标题[childId].md
    ├── childId_attach/
    │   └── ...
    └── childId_page/
        └── ...
```

## 环境变量

- `CONFLUENCE_URL`: 默认 Confluence URL
- `CONFLUENCE_TOKEN`: 默认 Token

## 开发

```bash
pip install -e ".[dev]"
pytest --cov=kb2md --cov-report=term-missing
```

## 安全提示

- 不要把 Token 写死在代码或命令历史中
- 推荐通过环境变量注入 Token
- 使用 `--set-default-token` 时，Token 会保存在 `~/.kb2md/config.json`，该文件权限设置为仅所有者可读写（0o600）
- 共享机器上请谨慎使用 `--set-default-token`
