← Back to Skills Marketplace
tianxingleo

Markdown to PDF Converter (v2.0)

by tianxingleo · GitHub ↗ · v2.0.0
cross-platform ⚠ suspicious
1014
Downloads
2
Stars
2
Active Installs
2
Versions
Install in OpenClaw
/install md2pdf-converter
Description
Offline Markdown to PDF converter with full Unicode support using Pandoc + WeasyPrint + local emoji cache. Converts Markdown documents to professional PDFs w...
Usage Guidance
This skill appears to do what it claims (offline Markdown→PDF with Twemoji) and does not request credentials, but review the scripts before running them. Key points to consider: - The main script downloads ~150MB from GitHub and writes to ~/.cache/md2pdf; confirm you are OK with that download and storage location. - There is a hard-coded absolute path in md2pdf-local.sh that calls the Python script at /home/ltx/.openclaw/…; on your machine this will likely fail or point to an unexpected location. Edit the script to call the bundled script via a relative path (e.g., use the script's directory or $PWD) before running. - Inspect the scripts for any unwanted commands (they run wget, tar, mv, rm -rf on the cache dir and invoke pandoc/weasyprint). Run them in a sandbox/container or review the code if you have sensitive files or restrictive policies. - Ensure required tools (pandoc, weasyprint, python3, wget) and fonts are installed; run font installation steps only if you trust them. If you want to proceed, either fix the absolute path in md2pdf-local.sh to a relative path or run the generate_emoji_mapping.py manually from the skill folder so the mapping is created with the expected ~/.cache/md2pdf/emojis content. If you need higher assurance, run the first run inside an isolated environment (container or VM).
Capability Analysis
Type: OpenClaw Skill Name: md2pdf-converter Version: 2.0.0 The skill is designed to convert Markdown to PDF with emoji support, using Pandoc, WeasyPrint, and local Twemoji assets. It is classified as 'suspicious' due to the `scripts/md2pdf-local.sh` script executing external commands (`pandoc`, `weasyprint`) with user-provided input filenames. While the filenames are quoted, this pattern is a common vulnerability vector for shell injection or arbitrary code execution if the underlying tools have flaws. Additionally, the script uses a hardcoded absolute path (`/home/ltx/.openclaw/workspace/skills/md2pdf-converter/scripts/generate_emoji_mapping.py`) to invoke a Python script, which is a robustness vulnerability. There is no evidence of intentional malicious behavior like data exfiltration, persistence, or prompt injection against the agent.
Capability Assessment
Purpose & Capability
Name/description match the contents: scripts and instructions implement Pandoc + WeasyPrint conversion, local Twemoji download, and a mapping generator. Declared dependencies (Pandoc, WeasyPrint, Python, wget) are appropriate for the stated goal.
Instruction Scope
Runtime instructions stay within the converter's scope (download Twemoji to ~/.cache/md2pdf, generate emoji mapping, run Pandoc + Lua filter, render with WeasyPrint). They do not attempt to read unrelated system files or exfiltrate data. However md2pdf-local.sh calls the Python mapping script via a hard-coded absolute path (/home/ltx/.openclaw/workspace/skills/md2pdf-converter/scripts/generate_emoji_mapping.py) instead of a relative or $SCRIPT_DIR-based path — this is an inconsistency that will likely break on other systems and suggests packaging/authoring oversight.
Install Mechanism
No install spec is provided (instruction-only), so nothing is silently downloaded during installation. The script does download a Twemoji tarball from an official GitHub URL at first run — this is expected and the source is legitimate. No obscure or shortener URLs are used.
Credentials
The skill requests no environment variables or credentials. Files are written to ~/.cache/md2pdf and temporary directories only, which is proportionate to an offline caching converter. No unrelated credentials or config paths are requested.
Persistence & Privilege
The skill does not request always:true, does not modify other skills, and has no elevated persistence. It will create a local cache directory (~/.cache/md2pdf) and write files there, which is expected for its purpose.
How to Use
  1. Make sure OpenClaw is installed (local or Docker)
  2. Run the install command in chat: /install md2pdf-converter
  3. After installation, invoke the skill by name or use /md2pdf-converter
  4. Provide required inputs per the skill's parameter spec and get structured output
Version History
v2.0.0
Switch to Twemoji 14.0.0 (complete version) with 3660 colorful emojis including all variants. Add Python script to generate emoji mapping table. Fix black-and-white emoji display issue. Support all emoji variants (skin tones, hair styles, regional flags, etc.). Improve mapping accuracy with pre-generated lookup table.
v1.0.0
Initial release: Offline Markdown to PDF converter with full Unicode support, colorful emojis, and Chinese fonts. Uses Pandoc + WeasyPrint with local emoji cache from npmmirror.com.
Metadata
Slug md2pdf-converter
Version 2.0.0
License
All-time Installs 2
Active Installs 2
Total Versions 2
Frequently Asked Questions

What is Markdown to PDF Converter (v2.0)?

Offline Markdown to PDF converter with full Unicode support using Pandoc + WeasyPrint + local emoji cache. Converts Markdown documents to professional PDFs w... It is an AI Agent Skill for Claude Code / OpenClaw, with 1014 downloads so far.

How do I install Markdown to PDF Converter (v2.0)?

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

Is Markdown to PDF Converter (v2.0) free?

Yes, Markdown to PDF Converter (v2.0) is completely free (open-source). You can download, install and use it at no cost.

Which platforms does Markdown to PDF Converter (v2.0) support?

Markdown to PDF Converter (v2.0) is cross-platform and runs anywhere OpenClaw / Claude Code is available (cross-platform).

Who created Markdown to PDF Converter (v2.0)?

It is built and maintained by tianxingleo (@tianxingleo); the current version is v2.0.0.

💬 Comments