md2docx

تایید شده

Convert Markdown to Word (DOCX) documents. Use when user wants to export, convert, or create Word documents from Markdown content.

@Yorick-Ryu
NOASSERTION۱۴۰۴/۱۲/۳
63از ۱۰۰
(0)
۱۲۱
۸
۱۸

نصب مهارت

مهارت‌ها کدهای شخص ثالث از مخازن عمومی GitHub هستند. SkillHub الگوهای مخرب شناخته‌شده را اسکن می‌کند اما نمی‌تواند امنیت را تضمین کند. قبل از نصب، کد منبع را بررسی کنید.

نصب سراسری (سطح کاربر):

npx skillhub install Yorick-Ryu/deep-share/md2docx

نصب در پروژه فعلی:

npx skillhub install Yorick-Ryu/deep-share/md2docx --project

مسیر پیشنهادی: ~/.claude/skills/md2docx/

بررسی هوش مصنوعی

کیفیت دستورالعمل65
دقت توضیحات60
کاربردی بودن64
صحت فنی65

Scored 63 — practical Markdown-to-Word converter with good error handling (5 status codes with specific messages). Dual-mode design (URL vs file) is well-thought-out for different environments. Relies on external API (deepshare.app) which is a dependency risk.

محتوای SKILL.md

---
name: md2docx
description: Convert Markdown to Word (DOCX) documents. Use when user wants to export, convert, or create Word documents from Markdown content.
api_key: ""
---

# md2docx - Markdown to Word Converter

Convert Markdown text to professionally formatted Word (DOCX) documents.

## Quick Start

**Choose the right mode based on your environment**:

```bash
# URL mode: Returns download URL (for cloud/remote environments)
python scripts/convert.py input.md --url

# File mode: Saves file directly (for local environments)
python scripts/convert.py input.md --file
```

## Choosing the Right Mode

| Scenario | Mode | Command |
|----------|------|---------|
| Skill runs in cloud, user needs to download | `--url` | `python scripts/convert.py input.md --url` |
| Skill runs locally, user wants file saved | `--file` | `python scripts/convert.py input.md --file` |
| Remote execution (MCP, API, cloud agent) | `--url` | Returns URL for user to download |
| Local execution (user's machine) | `--file` | Saves .docx directly to disk |

**Decision Rule**:
- **Use `--url`** when the skill runs in a different environment than the user (cloud, remote server, MCP server)
- **Use `--file`** when the skill runs on the same machine where the user wants the output file

## How It Works

1. **Prepare Markdown**: Ensure content is in standard Markdown format
2. **Run Script**: Execute `scripts/convert.py` with appropriate mode
3. **Get Result**: 
   - URL mode: Receive download URL
   - File mode: File saved to specified location

## API Details

**Endpoints**:
- URL mode: `https://api.deepshare.app/convert-text-to-url` → Returns `{"url": "..."}`
- File mode: `https://api.deepshare.app/convert-text` → Returns DOCX file directly

**Authentication**: Include header `X-API-Key: {api_key}`

### API Key Configuration

You can configure the API key in three ways:

1. **Environment Variable** (Highest Priority)
   ```bash
   export DEEP_SHARE_API_KEY="your_api_key_here"
   ```

2. **Skill Variable** (Medium Priority)
   Edit the `api_key` field in the YAML frontmatter of this Skill file:
   ```yaml
   ---
   name: md2docx
   api_key: "your_api_key_here"
   ---
   ```

3. **Trial Key** (Fallback): `f4e8fe6f-e39e-486f-b7e7-e037d2ec216f`

**Priority Order**:
1. Environment variable `DEEP_SHARE_API_KEY` (if set)
2. Skill's `api_key` variable (if not empty)
3. Trial key (limited quota)

⚠️ **Trial Mode**: Limited quota. For stable production use, purchase at: https://ds.rick216.cn/purchase

## Request Format

```json
{
  "content": "markdown text here",
  "filename": "output",
  "template_name": "templates",
  "language": "zh",
  "hard_line_breaks": false,
  "remove_hr": false
}
```

## Parameters

| Parameter | Default | Description |
|-----------|---------|-------------|
| `content` | required | Markdown text to convert |
| `filename` | `"output"` | Output filename (without .docx) |
| `template_name` | `"templates"` | Template: `templates`, `论文`, `article`, `thesis`, etc. |
| `language` | `"zh"` | Template language: `zh` or `en` |
| `hard_line_breaks` | `false` | Preserve single line breaks |
| `remove_hr` | `false` | Remove horizontal rules |

## Common Templates

**Chinese** (`language: "zh"`):
- `templates` - General purpose
- `论文` - Academic paper
- `论文-首行不缩进` - Paper without indent
- `论文-标题加粗` - Paper with bold headings

**English** (`language: "en"`):
- `templates` - General purpose
- `article` - Article/report style
- `thesis` - Academic thesis

## Conversion Script Usage

### Command Line Options

```bash
python scripts/convert.py <input.md> [options]

Options:
  --url              Return download URL (default if no mode specified)
  --file             Save file directly to disk
  --template, -t     Template name (default: templates)
  --language, -l     Language: zh or en (default: zh)
  --output, -o       Output directory for file mode
  --api-key, -k      API key (optional)
```

### Examples

```bash
# URL mode (cloud/remote environments)
python scripts/convert.py document.md --url
python scripts/convert.py paper.md --url --template 论文 --language zh

# File mode (local environments)
python scripts/convert.py document.md --file
python scripts/convert.py paper.md --file --output ./docs --template thesis --language en

# With custom API key
python scripts/convert.py doc.md --url --api-key your_key
```

## Validation Before Conversion

Ensure Markdown content:
- Headers use `#` syntax
- Lists use `-` or `1.` syntax
- Code blocks use triple backticks
- Math formulas use `$...$` (inline) or `$$...$$` (block)
- Images use publicly accessible URLs

## Response Handling

### URL Mode Response

**Success** (200 OK):
```json
{
  "url": "https://flies.deepshare.app/mcp/hash/document_xxx.docx"
}
```

### File Mode Response

**Success**: File saved to disk, path printed to stdout

### Error Responses (Both Modes)

- `401 Unauthorized` - Invalid API key
- `403 Forbidden` - Quota exceeded → Purchase at https://ds.rick216.cn/purchase
- `413 Payload Too Large` - Content exceeds 10MB
- `500 Internal Server Error` - Service unavailable, retry

## User Communication

### On Success

Tell user:
1. Conversion completed successfully
2. **URL mode**: Provide the download URL
3. **File mode**: Provide the file path where document was saved
4. Check which API key was used:
   - **If using environment variable or Skill variable**: No reminder needed
   - **If using trial key**: Remind: "⚠️ You're using trial mode (limited quota). For stable production use, get your API key at: https://ds.rick216.cn/purchase"

### On Quota Exceeded

Tell user:
1. Conversion failed: quota exceeded
2. Purchase more credits at: https://ds.rick216.cn/purchase
3. Or use another API key

### On Other Errors

Tell user:
1. What went wrong (based on error message)
2. How to fix it
3. Offer to retry

## Tips

- **API Key Configuration**:
  - **Option 1 (Recommended)**: Set environment variable `DEEP_SHARE_API_KEY`
    ```bash
    export DEEP_SHARE_API_KEY="your_api_key_here"
    ```
  - **Option 2**: Edit `api_key` in this Skill's YAML frontmatter
  - **Option 3**: Use trial key (limited quota)
- **File Size**: Keep Markdown under 10MB
- **Images**: Use `https://` URLs, not local paths
- **Math**: Use LaTeX syntax: `$E=mc^2$` or `$$\int_0^\infty$$`
- **Line Breaks**: Use `hard_line_breaks: true` for addresses, poetry
- **Templates**: Choose based on document type (paper, article, etc.)

## Example Workflows

### Workflow 1: Cloud Environment (URL Mode)

**User asks**: "Convert this to Word" (skill running in cloud)

1. Save the Markdown content to a temporary file (e.g., `temp.md`)

2. Run the conversion script with URL mode:
   ```bash
   python scripts/convert.py temp.md --url
   ```

3. The script will:
   - Select API key by priority (env → skill → trial)
   - Call the conversion API
   - Return download URL

4. Provide the download URL to user

5. Clean up temporary file

### Workflow 2: Local Environment (File Mode)

**User asks**: "Convert my notes.md to Word" (skill running locally)

1. Run the conversion script with file mode:
   ```bash
   python scripts/convert.py notes.md --file --output ./output
   ```

2. The script will:
   - Select API key by priority (env → skill → trial)
   - Call the conversion API
   - Save the DOCX file directly

3. Tell user where the file was saved

4. No cleanup needed - file is the output