Convert a Markdown file to a styled Word (.docx) document using docpilot — syntax-highlighted code blocks, blue-header tables, no Pandoc required.
Scanned 9/3/2026
Install to Claude Code
npx -y skills add fabioc-aloha/Alex_Skill_Mall --skill docpilot --agent claude-codeInstalls into .claude/skills of the current project.
Are you the author of Docpilot?
Add the live security badge to your README — it updates automatically with every re-scan.
[](https://www.skillsdirectory.com/skills/fabioc-aloha-docpilot)More formats (shields.io, HTML) on the badges page.
---
name: convert-to-docx
description: "Convert a Markdown file to a styled Word (.docx) document using docpilot — syntax-highlighted code blocks, blue-header tables, no Pandoc required."
lastReviewed: 2026-05-03
---
# Convert Markdown → Word
Convert a Markdown design or dev spec into a formatted `.docx` file the user can open in Microsoft Word.
## When to Use
- User says "convert to Word", "make a docx", "export this spec to Word"
- User has a `.md` file and wants a Word document with formatted code blocks and tables
- User asks for a printable / shareable version of a Markdown document
## How to Respond
### Step 1 — If the user provided a file path
Run:
```bash
python plugins/docpilot/scripts/venv-run.py plugins/docpilot/scripts/convert.py "<input.md>" --to word --open
```
The first run installs dependencies into a per-plugin venv (one-time, ~30s). Subsequent runs are instant.
### Step 2 — If no file path was provided
1. Use the Glob tool to find `**/*.md` files under the current working directory, excluding `.git`, `.claude`, `node_modules`, and `__pycache__`. Take the 4 most recently modified.
2. Use the AskUserQuestion tool with those files as options. For each option:
- `label`: the filename only (e.g. `spec.md`)
- `description`: the relative directory path (e.g. `docs/` or `.` for root)
The user can also pick "Other" to type a path manually.
3. Once chosen, run:
```bash
python plugins/docpilot/scripts/venv-run.py plugins/docpilot/scripts/convert.py "<chosen_file>" --to word --open
```
### Step 3 — Report
Tell the user the output path and confirm whether the file opened.
## Common Variants
- **Custom output path**: add `--output <path.docx>`
- **Different code colour theme**: add `--style monokai` (or any [Pygments style](https://pygments.org/styles/))
- **Don't open after conversion**: omit `--open`
## What Gets Converted
| Markdown | Word Output |
|----------|-------------|
| `# Heading` / `## Heading` | Word Heading 1 / Heading 2 (with bookmarks for cross-references) |
| Fenced code blocks (` ```py `) | Syntax-highlighted, Consolas 9.5pt |
| Tables | Blue header row, grid borders |
| Inline images (``) | Embedded, resized to page content width |
| Fragment links (`[text](#anchor)`) | Internal Word hyperlinks to bookmarked headings |
## Limitations
- Loop-specific output (clipboard) — use the `convert-to-loop` skill instead.
- PDF export not supported (planned future enhancement).
- Bold/italic formatting in tables may not be preserved (htmldocx limitation).
## Error Handling
- **`ImportError` mentioning `lxml` or `docx`**: the venv may have a broken install — delete `%LOCALAPPDATA%/agency-plugins/docpilot/venv` (Windows) or the equivalent cache dir (`~/Library/Caches/agency-plugins/docpilot/venv` on macOS, `~/.cache/agency-plugins/docpilot/venv` on Linux) and re-run.
- **First-run pip install fails**: ensure the user has network access to PyPI and Python 3.11+.
---
type: skill
lifecycle: stable
inheritance: inheritable
name: convert-to-loop
description: Convert a Markdown file to styled HTML and copy it to the Windows clipboard, ready to paste into Microsoft Loop with full formatting preserved.
tier: standard
applyTo: '**/*docx*,**/*word*,**/*loop*,**/*convert*'
currency: 2026-05-03
lastReviewed: 2026-05-03
---
# Convert Markdown → Microsoft Loop
Convert a Markdown file to rich HTML and place it on the Windows clipboard. The user then presses **Ctrl+V** in any Loop page and the headings, tables, code blocks, and inline formatting paste with full styling.
> **Windows-only**: the Loop converter writes to the Windows clipboard via Win32 APIs. Use `convert-to-docx` for cross-platform output.
## When to Use
- User says "send this to Loop", "paste into Loop", "copy for Loop"
- User wants to share a Markdown spec in a Microsoft Loop workspace, page, or component
- User has a `.md` file open and wants its content as a Loop-ready clipboard payload
## How to Respond
### Step 1 — If the user provided a file path
Run:
```bash
python plugins/docpilot/scripts/venv-run.py plugins/docpilot/scripts/convert.py "<input.md>" --to loop
```
After it succeeds, tell the user verbatim:
> HTML copied to clipboard — open a Loop page and press Ctrl+V.
### Step 2 — If no file path was provided
1. Use the Glob tool to find `**/*.md` files under the current working directory, excluding `.git`, `.claude`, `node_modules`, and `__pycache__`. Take the 4 most recently modified.
2. Use the AskUserQuestion tool with those files as options:
- `label`: filename only (e.g. `spec.md`)
- `description`: relative directory (e.g. `docs/` or `.`)
The user can also pick "Other" to type a path manually.
3. Once chosen, run:
```bash
python plugins/docpilot/scripts/venv-run.py plugins/docpilot/scripts/convert.py "<chosen_file>" --to loop
```
4. Tell the user: "HTML copied to clipboard — open a Loop page and press Ctrl+V."
## Notes
- **Do not add `--open`** — the output goes to the clipboard, not a file.
- Single-line fenced code blocks are automatically converted to inline backtick code so they paste cleanly into Loop.
- Multi-line code blocks paste as Loop code blocks.
- Local images (``) are embedded as base64 data URIs so they render correctly in Loop.
- Table-of-Contents section links do not navigate in Loop — a small notice is automatically inserted under any TOC heading.
## Limitations
- **Windows only**: requires `ctypes.windll` for the clipboard write. On macOS or Linux this skill will fail; suggest `convert-to-docx` instead.
- Loop's paste handler ignores some HTML attributes (e.g. inline styles on `<span>`). What you see in Word may differ from what Loop renders.
## Error Handling
- **`OSError: [WinError ...]`** while writing to the clipboard: another application may be holding the clipboard. Retry once.
- **`ImportError`**: see the `convert-to-docx` skill's error-handling section — same venv applies.
- **Skill invoked on non-Windows**: tell the user the Loop path is Windows-only and suggest `/docpilot:convert-to-docx` instead.
Is this your skill, or is something wrong with this listing? Request removal or report an issue. Author removals are honored within 72 hours.
No comments yet. Be the first to comment!