Render markdown files as typeset PDFs via pandoc and weasyprint using academic (A4, justified, headings, callouts, footnotes) or letter stylesheets. Use for reports, grant reviews, or formal letters.
- License 许可
- MIT
- 最近更新
- 2026-11-11
- Stars
- ★ 5
- Forks
- 3
01 前言 Front Matter
- name
- description
- Render markdown files as typeset PDFs via pandoc and weasyprint using academic (A4, justified, headings, callouts, footnotes) or letter stylesheets. Use for reports, grant reviews, or formal letters.
02 资源文件 12
- 资产文件assets/academic-style.css6.1 KB
- 资产文件assets/fonts/Roboto-Bold.ttf342.9 KB
- 资产文件assets/fonts/Roboto-BoldItalic.ttf369.8 KB
- 资产文件assets/fonts/Roboto-Italic.ttf366.3 KB
- 资产文件assets/fonts/Roboto-Light.ttf341.8 KB
- 资产文件assets/fonts/Roboto-Medium.ttf342.6 KB
- 资产文件assets/fonts/Roboto-Regular.ttf341.2 KB
- 资产文件assets/fonts/RobotoMonoNerdFont-Bold.ttf2.1 MB
- 资产文件assets/fonts/RobotoMonoNerdFont-Italic.ttf2.1 MB
- 资产文件assets/fonts/RobotoMonoNerdFont-Regular.ttf2.1 MB
- 资产文件assets/letter-style.css5.3 KB
- 脚本scripts/generate_pdf.py5.0 KB
03 SKILL.md 正文
PDF Generation
Generate typeset PDFs from markdown using bundled Roboto typography and house stylesheets.
Generation Command
uv run python scripts/generate_pdf.py <input.md> [output.pdf] [--title "Title"] [--type letter|academic]
Auto-detects document type (letter if initial text contains "Dear", "Re:", or lacks an H1; academic otherwise). Defaults output to <input>.pdf.
Stylesheets
assets/academic-style.css: Standard A4 format with justified text, hierarchical bordered headings, code syntax highlighting, tables, callouts (.note,.warning,.tip,.important), and footnotes.assets/letter-style.css: Suppresses H1, formats recipient address blocks, and prepares signature spacing.
Letter Structure Requirements
Letters styled with letter-style.css require paragraph-position ordering:
[Date]
[Recipient Name]
[Recipient Title]
[Organization]
Dear [Name],
**Re: [Subject]**
[Body paragraphs...]
Yours sincerely,
<img src="$ACA_DATA/assets/signature.png" style="height: 50px;" />
[Signer Name]
[Signer Title]
[Signer Email]
Insert signature image from $ACA_DATA/assets/signature.png if not already present.
Dependencies
Requires pandoc and weasyprint (uv tool install weasyprint).
04 同仓库更多 Skills
refresh-questions
Sweep and refresh open questions in the Telegram Mini App by closing questions that are answered elsewhere, superseded, or asking for completed actions, and ensuring active open questions carry recommendations and context. Use when asked to refresh questions, sweep stale questions, or keep the Mini App decision queue current. Exclude for asking new questions or routine chat replies.
refresh-questions
Sweep and refresh open questions in the Telegram Mini App by closing questions that are answered elsewhere, superseded, or asking for completed actions, and ensuring active open questions carry recommendations and context. Use when asked to refresh questions, sweep stale questions, or keep the Mini App decision queue current. Exclude for asking new questions or routine chat replies.
refresh-questions
Sweep and refresh open questions in the Telegram Mini App by closing questions that are answered elsewhere, superseded, or asking for completed actions, and ensuring active open questions carry recommendations and context. Use when asked to refresh questions, sweep stale questions, or keep the Mini App decision queue current. Exclude for asking new questions or routine chat replies.
refresh-questions
Sweep and refresh open questions in the Telegram Mini App by closing questions that are answered elsewhere, superseded, or asking for completed actions, and ensuring active open questions carry recommendations and context. Use when asked to refresh questions, sweep stale questions, or keep the Mini App decision queue current. Exclude for asking new questions or routine chat replies.
dispatch-queue
Show the user the tasks ready to dispatch, ranked with a recommendation on each, and start workers on the ones the user approves -- redirects to universal workflow template wf-dispatch-queue. Use for "what's ready", "what should we dispatch", or "dispatch the queue". Exclude for starting workers on named tasks without the user's choice (use dispatch) or graph truth maintenance (use reconcile).
dispatch-queue
Show the user the tasks ready to dispatch, ranked with a recommendation on each, and start workers on the ones the user approves -- redirects to universal workflow template wf-dispatch-queue. Use for "what's ready", "what should we dispatch", or "dispatch the queue". Exclude for starting workers on named tasks without the user's choice (use dispatch) or graph truth maintenance (use reconcile).