AGENT SKILL

pdf

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
pdf
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 资源文件 18

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

nicsuzor
nicsuzor/academicOps

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.

★ 5
nicsuzor
nicsuzor/academicOps

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.

★ 5
nicsuzor
nicsuzor/academicOps

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.

★ 5
nicsuzor
nicsuzor/academicOps

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.

★ 5
nicsuzor
nicsuzor/academicOps

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).

★ 5
nicsuzor
nicsuzor/academicOps

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).

★ 5