← Back to Skills Marketplace
karlzhu-zxc

md-pdf

by Karl Zhu · GitHub ↗ · v1.0.1 · MIT-0
cross-platform ✓ Security Clean
184
Downloads
0
Stars
0
Active Installs
2
Versions
Install in OpenClaw
/install md-pdf
Description
Convert Markdown to polished PDF using Pandoc + XeLaTeX for print-quality or browser rendering with emoji and CSS support for rich visuals.
README (SKILL.md)

md2pdf

Produce polished, print-ready PDF from Markdown with a stable, reusable pipeline.

Quick start

  1. Install dependencies (Ubuntu/Debian):
    • bash scripts/install_deps_ubuntu.sh
  2. Convert standard formal Markdown with Pandoc/XeLaTeX:
    • bash scripts/md2pdf.sh input.md output.pdf
  3. Convert emoji-heavy or browser-like Markdown with CDP browser rendering:
    • bash scripts/md2pdf-browser.sh input.md output.pdf
  4. Optional: enable cover page / metadata style via defaults:
    • bash scripts/md2pdf.sh input.md output.pdf --defaults assets/defaults/hifi.yaml

Workflow

1) Choose the pipeline

Use the LaTeX pipeline when the document is mostly text/tables and should look print-formal.

Use the browser pipeline when any of these are true:

  • emoji must render correctly
  • HTML/CSS-like appearance matters more than TeX typography
  • the Markdown contains GitHub-style formatting that is easier to preserve in HTML
  • a CDP browser endpoint is already available

2) Prepare source markdown

  • Prefer #/## heading hierarchy (for TOC quality).
  • Keep code blocks fenced with language tags (for syntax highlight).
  • Keep tables in GFM format.
  • For very wide tables, prefer shorter cell content or convert the summary table to bullets before export.

3) Run the formal print pipeline

Use scripts/md2pdf.sh as the default entrypoint for print-style output.

It applies a professional baseline:

  • --pdf-engine=xelatex
  • Chinese font fallback (Noto Sans CJK SC)
  • Table of contents (--toc)
  • Section numbering (--number-sections)
  • Reasonable margins / line spread / link coloring
  • Code highlight style

4) Run the emoji-friendly browser pipeline

Use scripts/md2pdf-browser.sh when emoji support matters.

It does this:

  • render Markdown to HTML
  • convert emoji to Twemoji images
  • connect to an existing CDP browser (BROWSER_CDP_URL or http://127.0.0.1:9222)
  • print the page to PDF with browser CSS

Example:

  • BROWSER_CDP_URL=http://192.168.1.30:9222 bash scripts/md2pdf-browser.sh input.md output.pdf

5) Tune output quality

Use either:

  • CLI flags in scripts/md2pdf.sh (quick tuning), or
  • defaults file (assets/defaults/hifi.yaml) for stable team-wide style.

Recommended adjustments:

  • business report: keep 11pt, margin 2.2cm, TOC on
  • printable manual: increase margin to 2.5cm
  • dense technical doc: keep section numbers and monospace code font
  • emoji-heavy travel/share docs: prefer browser pipeline first

Troubleshooting

  • pandoc: command not found: run scripts/install_deps_ubuntu.sh.
  • xelatex not found: ensure texlive-xetex installed, or switch to scripts/md2pdf-browser.sh.
  • Emoji missing in PDF: use scripts/md2pdf-browser.sh; TeX engines are often poor at color emoji.
  • CJK glyph squares/tofu: install fonts-noto-cjk and keep CJKmainfont as Noto Sans CJK.
  • Browser script cannot connect: pass a valid CDP URL as arg 3 or set BROWSER_CDP_URL.
  • Weird table wrapping: reduce table width in markdown or use bullets for wide summary tables.

References

  • Style baseline and knobs: references/style-guide.md
  • Reusable defaults preset: assets/defaults/hifi.yaml
Usage Guidance
This skill appears to do what it says, but consider these practical cautions before installing: 1) The browser pipeline can connect to any CDP URL you provide—avoid pointing it at remote or untrusted browsers because a connected CDP can expose browser state (tabs, cookies, etc.). Prefer a local Chrome instance (http://127.0.0.1:9222). 2) The npm dependencies are installed at runtime with `npm install` (no lockfile); standard supply-chain risks apply—inspect package.json and run in an isolated environment if you have strict security requirements. 3) The installer will run apt-get and requires sudo/root; review the install script if you must limit package installs. If those points are acceptable, the skill is coherent with its description.
Capability Analysis
Type: OpenClaw Skill Name: md-pdf Version: 1.0.1 The skill bundle provides a legitimate utility for converting Markdown files to PDF using either Pandoc/XeLaTeX or a Puppeteer-based browser rendering pipeline. The scripts (scripts/md2pdf.sh, scripts/md2pdf_browser.js) are well-structured, use standard dependencies like 'marked' and 'puppeteer-core', and perform expected file operations. While the dependency installer (scripts/install_deps_ubuntu.sh) requires sudo privileges to install system packages, its actions are transparent and consistent with the tool's requirements. No evidence of data exfiltration, malicious persistence, or prompt injection was found.
Capability Assessment
Purpose & Capability
Name/description match the implementation: pandoc/xelatex pipeline (scripts/md2pdf.sh) and a browser-based pipeline (scripts/md2pdf-browser.sh + md2pdf_browser.js) are present. Required binaries and packages (pandoc, xelatex, node/npm, puppeteer-core, marked, twemoji) are appropriate for the stated functionality.
Instruction Scope
SKILL.md instructs the agent to run the included scripts and to provide an input markdown file; runtime code only reads the input file, renders to HTML, and prints to PDF. The browser pipeline does connect to a CDP endpoint (configurable via BROWSER_CDP_URL), which is explicitly documented and required for that pipeline.
Install Mechanism
There is no platform install spec in the registry; the repo includes an Ubuntu installer script that apt-installs pandoc/texlive/fonts/node/npm and the npm dependencies are installed at runtime via `npm install`. This is expected but carries normal package-manager and supply-chain risk (unlocked npm install). No obscure download URLs or extract-from-unknown-server steps are used; twemoji assets come from the public jsDelivr CDN.
Credentials
The skill does not require any declared credentials or config paths. The only optional environment variable referenced is BROWSER_CDP_URL to point the browser pipeline at a CDP endpoint, which is justified by the pipeline design.
Persistence & Privilege
The skill does not request persistent/always-on privileges and does not modify other skills or global agent config. Autonomous invocation is allowed by platform default but is not combined with unusual privileges here.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install md-pdf
  3. After installation, invoke the skill by name or use /md-pdf
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v1.0.1
- Removed package-lock.json from the repository. - No changes to the skill's functionality or documentation.
v1.0.0
- Initial release of md2pdf. - Provides two Markdown to PDF pipelines: Pandoc + XeLaTeX for print-quality outputs, and browser-rendered HTML/Twemoji for emoji or WYSIWYG-friendly PDFs. - Strong support for Chinese/CJK text and robust table of contents/section numbering. - Special handling for emoji to ensure they survive PDF export. - Includes quick start instructions, workflow guidance, and detailed troubleshooting.
Metadata
Slug md-pdf
Version 1.0.1
License MIT-0
All-time Installs 0
Active Installs 0
Total Versions 2
Frequently Asked Questions

What is md-pdf?

Convert Markdown to polished PDF using Pandoc + XeLaTeX for print-quality or browser rendering with emoji and CSS support for rich visuals. It is an AI Agent Skill for Claude Code / OpenClaw, with 184 downloads so far.

How do I install md-pdf?

Run "/install md-pdf" in the OpenClaw or Claude Code chat to install it in one step — no extra setup required.

Is md-pdf free?

Yes, md-pdf is completely free, licensed under MIT-0. You can download, install and use it at no cost.

Which platforms does md-pdf support?

md-pdf is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created md-pdf?

It is built and maintained by Karl Zhu (@karlzhu-zxc); the current version is v1.0.1.

💬 Comments