Mineru
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.
Convert Markdown documents to professionally typeset PDF files with reportlab.
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a claude-codeProject install by default; add -g for ~/.claude/skills/.
$ gh skill install lovstudio/any2pdf lov-any2pdf --agent claude-codeProject scope by default; add --scope user for a personal install. Needs GitHub CLI 2.90.0 or later (public preview).
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .claude/skills && cp -r skills-src/lov-any2pdf .claude/skills/lov-any2pdf && rm -rf skills-srcUse ~/.claude/skills/ instead of .claude/skills for a personal install. The folder must contain SKILL.md.
Claude Code skills documentation · loads skills from .claude/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .claude/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.Claude Code copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$skill-installer install https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdfType this inside Codex. $skill-installer <name> installs a curated skill from openai/skills. The installer writes to $CODEX_HOME/skills (default ~/.codex/skills). Restart Codex if the skill does not show up.
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a codexProject install goes to .agents/skills/; add -g for ~/.codex/skills/.
$ gh skill install lovstudio/any2pdf lov-any2pdf --agent codexProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .agents/skills && cp -r skills-src/lov-any2pdf .agents/skills/lov-any2pdf && rm -rf skills-srcUse ~/.agents/skills/ instead of .agents/skills for a personal install.
Codex skills documentation · loads skills from .agents/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .agents/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.Codex copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a cursorProject install goes to .agents/skills/; add -g for ~/.cursor/skills/.
$ gh skill install lovstudio/any2pdf lov-any2pdf --agent cursorProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .cursor/skills && cp -r skills-src/lov-any2pdf .cursor/skills/lov-any2pdf && rm -rf skills-srcUse ~/.cursor/skills/ instead of .cursor/skills for a personal install.
Cursor skills documentation · loads skills from .cursor/skills/, .agents/skills/, .claude/skills/, .codex/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .cursor/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.Cursor copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gemini skills install https://github.com/lovstudio/any2pdf.git --path lov-any2pdf--scope user (default) or --scope workspace; --path is the subfolder of the repo that holds the skill; --consent skips the security confirmation prompt.
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a gemini-cliProject install goes to .agents/skills/; add -g for ~/.gemini/skills/.
$ gh skill install lovstudio/any2pdf lov-any2pdf --agent gemini-cliProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .gemini/skills && cp -r skills-src/lov-any2pdf .gemini/skills/lov-any2pdf && rm -rf skills-srcUse ~/.gemini/skills/ instead of .gemini/skills for a personal install, then run /skills reload.
Gemini CLI skills documentation · loads skills from .gemini/skills/, .agents/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .gemini/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.Gemini CLI copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ gh skill install lovstudio/any2pdf lov-any2pdfInstalls for Copilot at project scope by default; add --scope user for a personal install. Preview a skill first with gh skill preview. Needs GitHub CLI 2.90.0 or later (public preview).
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a github-copilotProject install goes to .agents/skills/; add -g for ~/.copilot/skills/.
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .github/skills && cp -r skills-src/lov-any2pdf .github/skills/lov-any2pdf && rm -rf skills-srcUse ~/.copilot/skills/ instead of .github/skills for a personal install. Commit .github/skills so cloud agent and code review can use it.
GitHub Copilot skills documentation · loads skills from .github/skills/, .claude/skills/, .agents/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .github/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.GitHub Copilot copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
$ npx skills add lovstudio/any2pdf --skill lov-any2pdf -a opencodeOpenCode documents no install command of its own. Project install goes to .agents/skills/; add -g for ~/.config/opencode/skills/.
$ gh skill install lovstudio/any2pdf lov-any2pdf --agent opencodeProject scope by default (.agents/skills/); add --scope user for a personal install.
$ git clone --depth 1 https://github.com/lovstudio/any2pdf.git skills-src && mkdir -p .opencode/skills && cp -r skills-src/lov-any2pdf .opencode/skills/lov-any2pdf && rm -rf skills-srcUse ~/.config/opencode/skills/ instead of .opencode/skills for a personal install.
OpenCode skills documentation · loads skills from .opencode/skills/, .claude/skills/, .agents/skills/
Install the "lov-any2pdf" agent skill from https://github.com/lovstudio/any2pdf/tree/main/lov-any2pdf into .opencode/skills/lov-any2pdf/ in this project. Copy the whole folder (SKILL.md and every file beside it), keep the folder name "lov-any2pdf", then confirm the skill loads.OpenCode copies the folder itself, the same result as the manual copy. Check what it changed before you commit it.
lov-any2pdfConvert Markdown documents to professionally typeset PDF files with reportlab.
Lov Any2pdf is an agent skill from lovstudio/any2pdf. Convert Markdown documents to professionally typeset PDF files with reportlab. Handles CJK/Latin mixed text, fenced code blocks, tables, blockquotes, Obsidian callouts, inline images, emoji fallback, LaTeX-style formulas, cover pages, clickable TOC, PDF bookmarks, watermarks, and page numbers. Supports multiple color themes (Configurable Academic, Nord, GitHub Light, Solarized, etc.) and is battle-tested for Chinese technical reports. Use this skill whenever the user wants to turn a .md file into a styled PDF…
Its SKILL.md is about 2.4k tokens, which your agent loads only when the skill is triggered. The skill folder holds 5 other files, including scripts and reference files (for example `references/themes.md`, `scripts/md2pdf.py` and `skill.yaml`). Compatibility notes: Requires Python 3.8+ and reportlab (pip install reportlab). Optional: matplotlib (pip install matplotlib) for rendered display formulas. macOS: uses Palatino…
It sits in Documents & Office, covering PDF, LaTeX and Markdown. It works with GitHub, LaTeX, pypdf and Obsidian. The repository describes itself as: Markdown to professionally typeset PDF — an agent skill for AI coding assistants. The licence is MIT.
11 steps, taken from the first numbered list in SKILL.md.
Read from SKILL.md and the folder at commit eed4161. It shows what the files ask for, not the result of running them.
Pre-approves nothing: there is no allowed-tools line, so your agent's usual permission prompts apply.
From allowed-tools in the SKILL.md frontmatter.
Ships 1 file in scripts/ (Python), which the agent can run.
Shell commands in SKILL.md call:
pippythonaptFrom the folder's file list and the shell code blocks in SKILL.md.
No URLs in SKILL.md. Its commands use pip, which can reach the network depending on how they are called.
From URLs in SKILL.md, links to its own repository left out.
Names no API keys, tokens, secrets or passwords.
From names ending in _API_KEY, _TOKEN, _SECRET, _KEY or _PASSWORD in SKILL.md.
Requires Python 3.8+ and reportlab (`pip install reportlab`). Optional: matplotlib (`pip install matplotlib`) for rendered display formulas. macOS: uses Palatino, Songti SC, Menlo (pre-installed). Linux: uses DejaVu/Liberation/FreeFont/Noto, Noto CJK, Droid Sans Fallback, DejaVu Sans Mono, and Noto Emoji when available.
From compatibility in the SKILL.md frontmatter.
Lov Any2pdf loads about 2.4k tokens when it runs, and up to ~3.2k if it reads all its reference files. Until then it costs about 216 tokens; SKILL.md has 823 words of instructions outside code blocks.
Estimates: characters ÷ 4, the usual rule of thumb; real counts depend on the model's tokenizer. Scripts and assets cost tokens only if the agent reads them.
The automated check noted patterns worth knowing about, such as sudo or a known installer.
sudo apt install fonts-dejavu-core fonts-liberation fonts-freefont-ttf fonts-noto fonts-noto-cjk fonts-noto-color-emojiAutomated static check — not a guarantee. Review scripts before installing. It scans the text of SKILL.md for risky patterns (piping downloads into a shell, reading credential files, hidden Unicode, destructive commands); the scripts in this folder are not scanned.
The full file from lovstudio/any2pdf at commit eed4161, republished under its MIT licence (© lovstudio). 823 words, ~2,397 tokens.
.claude/skills/lov-any2pdf/SKILL.md (or your agent's skills folder). This skill also uses 3 other files; get the full folder from GitHub.This skill converts any Markdown file into a publication-quality PDF using Python's reportlab library. It was developed through extensive iteration on real Chinese technical reports and solves several hard problems that naive MD→PDF converters get wrong.
.md → .pdfpython md2pdf/scripts/md2pdf.py \
--input report.md \
--output report.pdf \
--title "My Report" \
--author "Author Name" \
--theme warm-academicAll parameters except --input are optional — sensible defaults are applied.
IMPORTANT: You MUST use the AskUserQuestion tool to ask these questions BEFORE
running the conversion. Do NOT list options as plain text — use the tool so the user
gets a proper interactive prompt. Ask all options in a SINGLE AskUserQuestion call.
Use AskUserQuestion with the following template. The tone should be friendly and
concise — like a design assistant, not a config form:
开始转 PDF!先帮你确认几个选项 👇
━━━ 📐 设计风格 ━━━
a) 暖学术 — 陶土色调,温润典雅,适合人文/社科报告
b) 经典论文 — 棕色调,灵感源自 LaTeX classicthesis,适合学术论文
c) Tufte — 极简留白,深红点缀,适合数据叙事/技术写作
d) 期刊蓝 — 藏蓝严谨,灵感源自 IEEE,适合正式发表风格
e) 精装书 — 咖啡色调,书卷气,适合长篇专著/技术书
f) 中国红 — 朱红配暖纸,适合中文正式报告/白皮书
g) 水墨 — 纯灰黑,素雅克制,适合文学/设计类内容
h) GitHub — 蓝白极简,程序员熟悉的风格
i) Nord 冰霜 — 蓝灰北欧风,清爽现代
j) 海洋 — 青绿色调,清新自然
━━━ 🖼 扉页图片(封面之后的全页插图) ━━━
1) 跳过
2) 我提供本地图片路径
3) AI 根据内容自动生成一张
━━━ 💧 水印 ━━━
1) 不加
2) 自定义文字(如 "DRAFT"、"内部资料")
━━━ 📇 封底物料(名片/二维码/品牌) ━━━
1) 跳过
2) 我提供图片
3) 纯文字信息
示例回复:"a, 扉页跳过, 水印:仅供学习参考, 封底图片:/path/qr.png"
直接说人话就行,不用记编号 😄| Choice | CLI arg |
|---|---|
| Design style a-j | --theme with value from table below |
| Frontispiece local | --frontispiece <path> |
| Frontispiece AI | Generate image first, then --frontispiece /tmp/frontispiece.png |
| Watermark text | --watermark "文字" |
| Back cover image | --banner <path> |
| Back cover text | --disclaimer "声明" and/or --copyright "© 信息" |
| Choice | --theme value | Inspiration |
|---|---|---|
| a) 暖学术 | warm-academic | Skill Publisher design system |
| b) 经典论文 | classic-thesis | LaTeX classicthesis |
| c) Tufte | tufte | Edward Tufte's books |
| d) 期刊蓝 | ieee-journal | IEEE journal format |
| e) 精装书 | elegant-book | LaTeX ElegantBook |
| f) 中国红 | chinese-red | Chinese formal documents |
| g) 水墨 | ink-wash | 水墨画 / ink wash painting |
| h) GitHub | github-light | GitHub Markdown style |
| i) Nord | nord-frost | Nord color scheme |
| j) 海洋 | ocean-breeze | — |
If user chose AI generation: read the document title + first paragraphs, use an
image generation tool to create a themed illustration matching the chosen design
style, show for approval, then pass via --frontispiece /path/to/image.png
Markdown → Preprocess (split merged headings) → Parse (code-fence-aware) → Story (reportlab flowables) → PDF buildKey components:
_font_wrap() wraps CJK character runs in <font> tags for automatic font switching_draw_mixed() handles CJK/Latin mixed text on canvas (cover, headers, footers)esc_code() preserves indentation and line breaks in reportlab ParagraphsChapterMark flowable creates PDF sidebar bookmarks + named anchors_preprocess_md() splits merged headings like # Part## Chapter into separate linesfile://, and remote markdown images are scaled into the body frame with fallback text on errors> [!NOTE] blocks render as themed boxed calloutsreportlab's Paragraph only uses the font in ParagraphStyle. If fontName="Mono" but
text contains Chinese, they render as □. Fix: Always apply _font_wrap() to ALL text
that might contain CJK, including code blocks.
reportlab treats \n as whitespace. Fix: esc_code() converts \n → <br/> and
all spaces → , preserving indentation and mid-line alignment before _font_wrap().
Default reportlab breaks lines only at spaces, causing ugly splits like "Claude\nCode".
Fix: Set wordWrap='CJK' on body/bullet styles to allow breaks at CJK character boundaries.
drawString() / drawCentredString() with a Latin font can't render 年/月/日 etc.
Fix: Use _draw_mixed() for ALL user-content canvas text (dates, stats, disclaimers).
Most options can also be set in top-of-file YAML-style frontmatter. Explicit CLI arguments take precedence over frontmatter values.
| Argument | Frontmatter Key | Default | Description |
|---|---|---|---|
--input | — | (required) | Path to markdown file |
--output | — | output.pdf | Output PDF path |
--title | title | From first H1 | Document title for cover page |
--subtitle | subtitle | "" | Subtitle text |
--author | author | "" | Author name |
--date | date | Today | Date string |
--version | version | "" | Version string for cover |
--watermark | watermark | "" | Watermark text (empty = none) |
--theme | theme | warm-academic | Color theme name |
--theme-file | — | "" | Custom theme JSON file path |
--cover | cover | true | Generate cover page |
--toc | toc | true | Generate table of contents |
--page-size | page-size | A4 | Page size (A4 or Letter) |
--frontispiece | frontispiece | "" | Full-page image after cover |
--banner | banner | "" | Back cover banner image |
--header-title | header-title | "" | Report title in page header |
--footer-left | footer-left | author | Brand/author in footer |
--stats-line | stats-line | "" | Stats on cover |
--stats-line2 | stats-line2 | "" | Second stats line |
--edition-line | edition-line | "" | Edition line at cover bottom |
--disclaimer | disclaimer | "" | Back cover disclaimer |
--copyright | copyright | "" | Back cover copyright |
--code-max-lines | code-max-lines | 30 | Max lines per code block |
Available: warm-academic, nord-frost, github-light, solarized-light,
paper-classic, ocean-breeze.
Each theme defines: page background, ink color, accent color, faded text, border, code background, watermark tint.
pip install reportlab --break-system-packages
# Optional formula rendering:
pip install matplotlib --break-system-packagesRecommended Ubuntu/Debian fonts:
sudo apt install fonts-dejavu-core fonts-liberation fonts-freefont-ttf fonts-noto fonts-noto-cjk fonts-noto-color-emoji运行前读取本 Skill 包的 skill.yaml,由宿主提供 skill-runtime/v1 上下文。字段解析顺序为:当前请求、项目上下文、个人 Preferences、品牌 Profile、通用默认值。
required: true 字段缺失时,按 Manifest 的问题配置向用户提出一个聚焦问题;用户明确同意后再保存回答。context_id、字段路径与来源,诊断内容避开秘密、完整私人路径和原始配置。© lovstudio, MIT. Rendered from Markdown: HTML in the file is shown as text, images as links, and headings moved down two levels. Raw file
SKILL.md and 3 other files (scripts, references) in lov-any2pdf of lovstudio/any2pdf.
Open the folder on GitHubat commit eed4161
Lov Any2pdf next to the 5 skills that share the most tags, products or categories with it. Stars are the repository's; “used in” counts other GitHub owners with a copy.
| Skill | Stars | Used in | Tokens | Auto-check | Licence | Repo updated |
|---|---|---|---|---|---|---|
| Lov Any2pdf this skilllovstudio/any2pdf | 211 | — | ~2.4k | Automated safety check: Notes | MIT | |
| MineruNebutra/MinerU-Skill | 122 | — | ~1.4k | Automated safety check: Pass | MIT | |
| MineruNebutra/MinerU-Skill | 122 | — | ~504 | Automated safety check: Pass | MIT | |
| Z Md To PDFtjxj/z-skills | 545 | — | ~711 | Automated safety check: Pass | MIT | |
| Using Streamlit Markdowniusztinpaul/designing-real-world-ai-agents-workshop | 512 | — | ~1.8k | Automated safety check: Pass | Apache-2.0 | |
| Thu ThesisLeoYeAI/openclaw-master-skills | 2.2k | — | ~4k | Automated safety check: Pass | MIT |
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into clean Markdown with MinerU — a fast, zero-config document parser for AI agents.
Nebutra/MinerU-Skill
An AI-Native skill for parsing PDF / Office / image files into Markdown with MinerU — a fast, zero-config document parser for AI agents.
tjxj/z-skills
将 Markdown、Obsidian 笔记、技术文章、白皮书或长文排成中文 PDF。用户说“转成 PDF”“Markdown 转 PDF”“md 转 pdf”“排版成电子书”“生成指定风格 PDF”“一次生成多种风格”“学术风/书籍风/报告风”,或要编译 my-girlfriend-jingtian-latex 项目时,都应使用本…
iusztinpaul/designing-real-world-ai-agents-workshop
Covers all Markdown features in Streamlit including GitHub-flavored syntax plus Streamlit extensions like colored text, badges, Material icons, and LaTeX.
LeoYeAI/openclaw-master-skills
清华大学毕业论文 Word → PDF 一键格式规范化工具。输入任意 Word (.docx) 格式的清华毕业论文,自动转换为符合清华 thuthesis 官方 LaTeX 模板规范的高质量 PDF。适用于所有清华学位论文(MBA/学硕/专硕),一条命令搞定。功能:自动提取章节结构、中英文摘要、参考文献(自动生成 BibTeX)、图片(含…
ysyecust/lecture-to-notes
把课堂视频(本地或 B 站/YouTube)、文字稿、课件三者(任意组合)整理成一份详细的中文 Markdown 课堂笔记,输出按课程标题命名的 {titlename}.md(首行为 文档标题)+ 相对路径图片。Markdown 工作流,与上游 lecture-to-notes 的 LaTeX/PDF 输出并行存在;上游 skill 完全不动。触发词:markdown 笔记、md 笔记、视频转…
Categories
Convert Markdown documents to professionally typeset PDF files with reportlab. Lov Any2pdf is an agent skill from lovstudio/any2pdf. Convert Markdown documents to professionally typeset PDF files with reportlab.
Lov Any2pdf fits situations like: the user wants to turn a .md file into a styled PDF; generate a report PDF from markdown; create a print-ready document from markdown content — especially if CJK characters; tables are involved.
Run `npx skills add lovstudio/any2pdf --skill lov-any2pdf -a claude-code`. Or copy the skill folder (lov-any2pdf in lovstudio/any2pdf) into .claude/skills/lov-any2pdf in your project. Claude Code loads it when a task matches its description.
Run `npx skills add lovstudio/any2pdf --skill lov-any2pdf -a codex`. Or copy the skill folder (lov-any2pdf in lovstudio/any2pdf) into .agents/skills/lov-any2pdf in your project. Codex loads it when a task matches its description.
Cursor, Gemini CLI, GitHub Copilot and OpenCode also load SKILL.md folders. With the skills CLI, run `npx skills add lovstudio/any2pdf --skill lov-any2pdf -a cursor` (or -a gemini-cli, github-copilot or opencode for the others). To copy it by hand, put the folder in .cursor/skills/lov-any2pdf, .gemini/skills/lov-any2pdf, .github/skills/lov-any2pdf and .opencode/skills/lov-any2pdf in your project.
Going by SKILL.md and its folder, Lov Any2pdf needs Python for the scripts in its folder and the command-line tools its instructions call (pip, python and apt). Our summary lists: Python 3. Compatibility (from SKILL.md): Requires Python 3.8+ and reportlab (`pip install reportlab`). Optional: matplotlib (`pip install matplotlib`) for rendered display formulas. macOS: uses Palatino, Songti SC, Menlo (pre-installed). Linux: uses DejaVu/Liberation/FreeFont/Noto, Noto CJK, Droid Sans Fallback, DejaVu Sans Mono, and Noto Emoji when available. .
SKILL.md contains no URLs. Its commands use pip, which can reach the network depending on how they are called. This is read from the text; nothing was executed.
Our automated static check of SKILL.md found notes only (runs commands with sudo), nothing it rates as a warning. It is not a guarantee. The check reads SKILL.md only: the scripts in the folder are not scanned, so read them before running anything.
Lov Any2pdf is published under the MIT licence (declared in SKILL.md). It allows redistribution, so the full SKILL.md is shown on this page.
About 2.4k tokens (SKILL.md is roughly 9.6k characters). Agents keep only the skill's name and description in context until a task matches; then they load SKILL.md in full. Its references folder adds about 845 tokens, read only when the agent opens those files.
Skills that share tags, products or a category with Lov Any2pdf: Mineru (Nebutra/MinerU-Skill, 122 stars), Mineru (Nebutra/MinerU-Skill, 122 stars), Z Md To PDF (tjxj/z-skills, 545 stars) and Using Streamlit Markdown (iusztinpaul/designing-real-world-ai-agents-workshop, 512 stars). The comparison table on this page puts their stars, adoption, token cost, safety result and licence side by side.
lovstudio (a GitHub organization) maintains it in lovstudio/any2pdf, which has 211 GitHub stars. The repository was last updated on August 10, 2026.
Source: lovstudio/any2pdf on GitHub. Facts on this page come from the repository at the commit we read; the author's words are quoted as theirs.