Skills 1coos-markdown-converter

Convert files to beautifully formatted Markdown. TRIGGER when user asks to convert a file to Markdown, extract text from PDF/DOCX/PPTX/XLSX, or format a document as Markdown.

install
source · Clone the upstream repo
git clone https://github.com/openclaw/skills
Claude Code · Install into ~/.claude/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.claude/skills && cp -r "$T/skills/1coos/1coos-markdown-converter" ~/.claude/skills/openclaw-skills-1coos-markdown-converter && rm -rf "$T"
OpenClaw · Install into ~/.openclaw/skills/
T=$(mktemp -d) && git clone --depth=1 https://github.com/openclaw/skills "$T" && mkdir -p ~/.openclaw/skills && cp -r "$T/skills/1coos/1coos-markdown-converter" ~/.openclaw/skills/openclaw-skills-1coos-markdown-converter && rm -rf "$T"
manifest: skills/1coos/1coos-markdown-converter/SKILL.md
source content

Markdown Converter

Convert files to beautifully formatted Markdown in two steps: convert with

uvx markitdown[all]
, then beautify with configurable style formatting.

Usage

/1coos-markdown-converter <file-path> [--style github|commonmark|clean|obsidian] [--output-dir path] [--convert-only]

Parameters

ParameterRequiredDescription
<file-path>
YesPath to the file to convert
--style
NoFormatting style:
github
(default),
commonmark
,
clean
,
obsidian
--output-dir
NoOutput directory (default:
skills/1coos-markdown-converter/output
)
--convert-only
NoOnly convert, skip formatting step
--config
NoPath to config.json (default: skill directory config.json)

Supported Formats

  • Documents: PDF, Word (.docx), PowerPoint (.pptx), Excel (.xlsx, .xls)
  • Web/Data: HTML, CSV, JSON, XML
  • Media: Images (EXIF + OCR), Audio (EXIF + transcription)
  • Other: ZIP (iterates contents), YouTube URLs, EPub

Formatting Styles

github (default)

GitHub Flavored Markdown — table column alignment, fenced code blocks, task lists.

commonmark

Strict CommonMark — enforces sequential heading levels (no skipping h1 to h3).

clean

Minimal style — removes excessive formatting, simplifies redundant links.

obsidian

Obsidian Flavored Markdown — converts internal links to

[[wikilinks]]
, normalizes callout syntax (
> [!type]
), formats properties/frontmatter, normalizes
==highlight==
syntax, and aligns tables. Ideal for notes destined for Obsidian vaults.

Configuration

Core parameters are configurable via

config.json
in the skill directory:

{
  "style": "github",
  "outputDir": null,
  "convertOnly": false,
  "formatting": {
    "maxWidth": 80,
    "listMarker": "-",
    "emphasisMarker": "*",
    "strongMarker": "**",
    "codeBlockStyle": "fenced"
  },
  "converter": {
    "timeout": 60000,
    "charset": "UTF-8"
  }
}

CLI arguments always override config.json values.

Execution Instructions

When the user invokes this skill:

  1. Check prerequisites: Verify
    uvx
    is available. If not, instruct the user to install uv:
    curl -LsSf https://astral.sh/uv/install.sh | sh
  2. Run conversion: Execute the script:
    bun run ${CLAUDE_SKILL_DIR}/scripts/main.ts $ARGUMENTS
    
  3. Report results: Show the output file path and a brief summary of the conversion.
  4. Handle errors:
    • Exit code 2: argument error — show the specific error message
    • Exit code 3: missing dependency — guide user to install uv
    • Exit code 4: conversion failure — suggest checking file format support

Examples

# Convert a PDF with default github style
/1coos-markdown-converter report.pdf

# Convert Word document with clean style
/1coos-markdown-converter document.docx --style clean

# Convert Excel to markdown without formatting
/1coos-markdown-converter data.xlsx --convert-only

# Specify output directory
/1coos-markdown-converter slides.pptx --output-dir ~/notes

Notes

  • First run caches
    markitdown[all]
    dependencies; subsequent runs are faster
  • Uses
    markitdown[all]
    to ensure full format support (PDF, OCR, audio transcription)
  • Output preserves document structure: headings, tables, lists, links
  • For complex PDFs with poor extraction, consider using Azure Document Intelligence