Skip to main content

YakultPDF

YakultPDF 是一个基于 Pandoc 和 Typst 的 Markdown → PDF 工具库和命令行程序,面向中文报告、书籍、稿纸和 3:4 练习页。

  • PyPI 包名:yakultpdf
  • 命令行:yakultpdf
  • Python 导入名:mark2pdf
Markdown + 配置 → YakultPDF / Pandoc → Typst 模板 → PDF

系统要求

  • Python 3.11+
  • Pandoc
  • Typst

完整安装方法见安装指引。

快速开始

安装 Python 包:

uv tool install yakultpdf

确认三个组件可用:

yakultpdf --version
pandoc --version
typst --version

准备 demo.md:

# 我的第一份 PDF

这是由 YakultPDF 生成的文档。

转换并使用输入文件名作为输出名:

yakultpdf convert demo.md --force-filename

独立模式会在当前目录生成 demo.pdf。更多内容见快速开始。

工作区

长期项目建议初始化工作区:

yakultpdf init my-docs
cd my-docs
yakultpdf convert index.md

工作区使用 mark2pdf.config.toml 管理输入、输出、模板和字体,PDF 默认写入 out/。

[paths]
in = "."
out = "out"
tmp = "tmp"
template = "template"
fonts = "fonts"

[options]
default_template = "nb"
withcover = false
overwrite = false

配置、Frontmatter 和封面规则见配置指南。

主要能力

  • 单文件、目录合并和批量转换
  • 工作区本地模板、字体和资源管理
  • NB 模板的封面、目录、背景页、整页图片和 Mermaid
  • 远程图片下载与 Markdown 资源结构迁移
  • 简繁转换和 PDF 压缩
  • classic / small 中文稿纸
  • 简洁版和精装版 Worksheet 练习页
  • Python API

文档

完整入口:YakultPDF 用户文档。

文档 内容
工作区使用指南 目录、资源和常用工作流
CLI 命令参考 当前命令与参数
配置指南 TOML、Frontmatter、模板和封面
NB 模板语法 页面和组件扩展
稿纸模式 classic、small 和着重号
Worksheet 模板 五种练习页版式
Python API 程序化转换
Docker 与 Web 服务 容器部署

Python API

from mark2pdf import convert_file
from mark2pdf.core import ConversionOptions

result = convert_file(
    "input.md",
    output_file="output.pdf",
    options=ConversionOptions(overwrite=True, force_filename=True),
)

完整签名和目录转换示例见Python API 文档。

开发与测试

uv sync
uv run pytest

项目架构见 DEVELOPMENT.md,发布流程见 RELEASING.md。Agent 规则见 AGENTS.md。

License

MIT

Metadata

Release files for yakultpdf 0.10.1

For a detailed explanation of source distributions (sdists) and built distributions (wheels), please see the package formats documentation.

Source distribution (sdist)

Source distribution for yakultpdf 0.10.1
File Size Uploaded
yakultpdf-0.10.1.tar.gz 6.1 MB Details

Built distribution (wheel)

Table of built distributions (wheels) for yakultpdf 0.10.1
File Interpreter ABI Platform
yakultpdf-0.10.1-py3-none-any.whl Python 3 none any Details

Total release size: 6.5 MB

Release files / yakultpdf-0.10.1.tar.gz

Download URL yakultpdf-0.10.1.tar.gz
Size 6.1 MB
Tags Source
SHA-256 checksum
How to use checksums
7501bed09574f93c0739b52957713ca6c2d607815e15b0f2e80b33922747912a
BLAKE2b-256 checksum
How to use checksums
fd72bb2e97587d01d48e713a8778e275f7140473543e7f2d0b500ace24f997db
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release files / yakultpdf-0.10.1-py3-none-any.whl

Download URL yakultpdf-0.10.1-py3-none-any.whl
Size 408.7 kB
Tags Python 3
SHA-256 checksum
How to use checksums
d00f9c921ab2cdf2069232c7d37692b8467281f565dd85d504af0f822cf588f0
BLAKE2b-256 checksum
How to use checksums
d89b6237e15a34785218286b872386a43c6041d1bbce34d01424c07cd2c2fa84
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.6.9

Release history Release notifications | RSS feed

This release

0.10.1 This release

2 release files

0.8.23

2 release files

0.8.20

2 release files

0.8.9

2 release files

0.8.8

2 release files

0.8.7

2 release files

0.8.6

2 release files

0.8.3

2 release files

0.7.36

2 release files

0.7.5

2 release files

Anthropic, PBC Visionary sponsor Bloomberg Visionary sponsor Hudson River Trading Visionary sponsor Meta Visionary sponsor NVIDIA Visionary sponsor Microsoft Sustainability sponsor Depot Continuous Integration AWS Cloud computing and Security Sponsor Datadog Monitoring Fastly CDN Google Download Analytics Sentry Error logging StatusPage Status page