Now liveThe Skillselion MCP - thousands of ranked skills, loaded into your agent mid-task. No install.Get it →
kochetkov-ma avatar

Brewdoc:Md To Pdf

  • 19 installs
  • 29 repo stars
  • Updated August 2, 2026
  • kochetkov-ma/claude-brewcode

Helps with ai & agent building tasks.

About

brewdoc:md-to-pdf is a Claude Code skill for ai & agent building. It helps solo builders move faster with AI-assisted development.

  • brewdoc:md-to-pdf
  • AI & Agent Building
  • AI-coding skill

Brewdoc:Md To Pdf by the numbers

  • 19 all-time installs (skills.sh)
  • +1 installs in the week ending Aug 2, 2026 (Skillselion tracking)
  • Ranked #10,587 of 16,546 AI & Agent Building skills by installs in the Skillselion catalog
  • Data as of Aug 3, 2026 (Skillselion catalog sync)
npx skills add https://github.com/kochetkov-ma/claude-brewcode --skill brewdocmd-to-pdf

Add your badge

Show developers this skill is listed on Skillselion. Paste this into your README.

Listed on Skillselion
Installs19
repo stars29
Last updatedAugust 2, 2026
Repositorykochetkov-ma/claude-brewcode

What it does

Helps with ai & agent building tasks.

Files

SKILL.mdMarkdownGitHub ↗

MD to PDF

Converts Markdown files to professional PDF using one of two rendering engines.

Step 0: Parse Arguments

Parse $ARGUMENTS to determine mode and components.

ComponentRequiredDescription
md_fileper modePath to .md file
--engineNoreportlab or weasyprint (overrides saved config)
custom_promptNoLast argument in double quotes = LLM preprocessing instructions

Mode detection rules:

ConditionMode
Empty or helpHELP
styles or configSTYLES
testTEST
Path to .md file + quoted string at endCONVERT+PROMPT
Path to .md file (no quoted string)CONVERT

Extract --engine <name> from anywhere in arguments if present. Remove it before further parsing.

Step 1: Dependency Check

Determine the target engine (from --engine flag, saved config, or default reportlab).

EXECUTE using Bash tool:

bash "${CLAUDE_SKILL_DIR}/scripts/check_deps.sh" check ENGINE_NAME 2>&1; echo "EXIT_CODE=$?"

Replace ENGINE_NAME with the target engine.

If output contains `MISSING_PIP` or `MISSING_SYSTEM`:

Use AskUserQuestion presenting the engine comparison table:

Featurereportlabweasyprint
Installpip onlypip + brew
QualityGoodExcellent
SpeedFastModerate
ImagesBasicFull
CSS StylingNoYes
Code highlightNoYes (Pygments)

Options:

  • "Install ENGINE_NAME dependencies"
  • "Switch to OTHER_ENGINE" (if the other engine is available)
  • "Cancel"

If user chooses install, EXECUTE using Bash tool:

bash "${CLAUDE_SKILL_DIR}/scripts/check_deps.sh" install ENGINE_NAME 2>&1 && echo "---INSTALL_OK---" || echo "---INSTALL_FAILED---"
STOP if INSTALL_FAILED -- report error and exit.

If user cancels -- STOP.

Step 2: Engine Selection (first run only)

Check for saved config in order: 1. Project: .claude/md-to-pdf.config.json 2. Global: ~/.claude/md-to-pdf.config.json

If --engine flag was provided -- use it (skip config lookup).

If no saved preference and no --engine flag -- use AskUserQuestion with the engine comparison table from Step 1. Save the choice:

{
  "engine": "reportlab",
  "pygments_theme": "github"
}

Write to project config .claude/md-to-pdf.config.json (create .claude/ dir if needed).

Step 3: Mode Execution

HELP Mode

Print formatted usage:

MD to PDF Converter

Usage:
  /brewdoc:md-to-pdf <file.md>                     Convert with saved engine/style
  /brewdoc:md-to-pdf <file.md> --engine weasyprint  Convert with specific engine
  /brewdoc:md-to-pdf <file.md> "remove section X"   Preprocess MD then convert
  /brewdoc:md-to-pdf styles                          Configure page/color/font
  /brewdoc:md-to-pdf test                            Convert bundled test file
  /brewdoc:md-to-pdf help                            Show this help

Engines:
  reportlab    -- Pure Python, fast, no system deps (pip install reportlab)
  weasyprint   -- HTML/CSS pipeline, best quality (pip + brew deps)

EXIT after printing.

CONVERT Mode

1. Read the input MD file with Read tool. If not found -- STOP with error. 2. Determine output path: same directory, same name, .pdf extension. 3. Build the config path argument (if project or global config exists, add --config CONFIG_PATH).

EXECUTE using Bash tool:

python3 "${CLAUDE_SKILL_DIR}/scripts/md_to_pdf.py" "INPUT_PATH" "OUTPUT_PATH" --engine ENGINE --quiet 2>&1 && echo "---CONVERT_OK---" || echo "---CONVERT_FAILED---"

Replace INPUT_PATH, OUTPUT_PATH, ENGINE with actual values. Add --config CONFIG_PATH if a style config JSON exists. Add --pygments-theme THEME for weasyprint if configured.

STOP if CONVERT_FAILED -- read error output, attempt fix, retry once. If still failing -- report error.

4. Parse structured output lines: STATUS, OUTPUT, PAGES, SIZE, ENGINE.

CONVERT+PROMPT Mode

1. Read the input MD file with Read tool. 2. Apply LLM transformations per the custom_prompt instructions (delete sections, rewrite headings, restructure, etc.). 3. Write modified content to temp file: {original_dir}/.tmp_{original_name}.md 4. Run the converter on the temp file (same command as CONVERT mode, using temp file as input, original name for output). 5. Delete the temp file.

EXECUTE using Bash tool:

rm -f "TEMP_FILE_PATH"

6. Proceed to Step 4 with preprocessing: true.

STYLES Mode

Run interactive configuration via AskUserQuestion dialogs:

Question 1 -- Page size: Options: A4 (default), Letter, Legal

Question 2 -- Color scheme: Options: Default blue (primary #1a3a5c), Dark (primary #2d3748), Custom (ask for hex values)

Question 3 -- Code theme (weasyprint only): Options: github (default), monokai, friendly, solarized-dark, solarized-light

Question 4 -- Footer format: Options: Page {page} of {total} (default), {page}/{total}, Disabled

Build JSON config matching styles/default.json structure, overriding changed values. Write to .claude/md-to-pdf.config.json.

Report saved settings table and EXIT.

TEST Mode

1. Use bundled test file at ${CLAUDE_SKILL_DIR}/test/test-all-elements.md as INPUT_PATH. 2. Determine output path: /tmp/md-to-pdf-test-ENGINE.pdf 3. Run converter (same command as CONVERT mode, using test file as input, /tmp/ output). 4. Proceed to Step 4.

Step 4: Report Results

ParameterValue
Sourceabsolute path to input MD
Outputabsolute path to output PDF
Pagesfrom PAGES= in script output
Sizefrom SIZE= in script output
Enginereportlab or weasyprint
Preprocessingcustom_prompt summary (if used) or none

Related skills

This week in AI coding

Five minutes, every Monday - the tools, releases and tactics for developers.

unsubscribe anytime.