Skip to main content

laudo

Convert markdown files to docx or pdf using docxtpl templates.

Installation

pip install laudo

Requires Python 3.13+ and LibreOffice for PDF output.

Usage

CLI

laudo gen [--dir <folder>] [--debug] [--pdf] [--output <path>] [--template <path>]
laudo captions [--dir <folder>]
laudo template <name> [--dir <folder>]
laudo vars [--dir <folder>]
laudo init <name> [--dir <folder>]
laudo install

Python API

from laudo import convert

convert("my_project/", "output.docx")
convert("my_project/", "output.pdf")

Input Folder Structure

my_project/
├── template.docx          # docxtpl template with Jinja2 placeholders
├── fotos/                 # Images (captions edited via GUI)
│   ├── image1.png
│   └── events/
│       └── party.jpg
├── context.txt            # (optional) Variables one per line: key = value
├── intro.md               # One or more .md files
└── chapter-1.md

Template

A standard Word document using docxtpl syntax with Jinja2 placeholders like {{ variable }} or {{p intro|markdown }}.

To use a template from a shared folder, create .laudo/.template with the template name and set the LAUDOS_TEMPLATES_FOLDER environment variable.

context.txt

Optional file with variables in key = value format, one per line. Lines starting with # and empty lines are ignored. These variables are available for substitution inside .md files via {{ varname }}.

Markdown files

Every .md file is read and its content is injected as a template variable named after the filename (without extension, spaces → underscores):

File Template variable
intro.md intro
chapter 1.md chapter_1

Inside markdown files you can reference context variables with {{ varname }} and embed image groups with image_group(name, cols).

Images

All images in fotos/ (including subdirectories) are available as the pics variable in templates. Use pics.group("events") to get images from a subfolder, or pics.all for all images. Captions are edited via the laudo captions GUI.

Template helpers

  • {{p variable\|markdown }} — render markdown as formatted docx content
  • {{p subdoc("file.docx", key=val) }} — embed a sub-template
  • {{p image("fotos/logo.png", width=50) }} — inline image with size control

License

MIT

Metadata

Release files for laudo 0.2.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 laudo 0.2.1
File Size Uploaded
laudo-0.2.1.tar.gz 94.6 kB Details

Built distribution (wheel)

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

Total release size: 194.6 kB

Release files / laudo-0.2.1.tar.gz

Download URL laudo-0.2.1.tar.gz
Size 94.6 kB
Tags Source
SHA-256 checksum
How to use checksums
3332f92d77c11915ca80e1101d38b72770106206347af64f684d1ae47784643a
BLAKE2b-256 checksum
How to use checksums
e3426fe335875cd078c6b11e4ec518253bc68375ef9f808a717a2725fcaee1c2
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release files / laudo-0.2.1-py3-none-any.whl

Download URL laudo-0.2.1-py3-none-any.whl
Size 100.0 kB
Tags Python 3
SHA-256 checksum
How to use checksums
2e7a667820be858b101fd2425e467df408cb5a7ea8672d464453912737c1996b
BLAKE2b-256 checksum
How to use checksums
dd86f16412cb1aa6b67c1e7161223e5527794b999cffbfd88c5e16326ff6514e
Upload date
Uploaded using Trusted Publishing?
What is trusted publishing?
No
Uploaded via uv/0.11.16 {"installer":{"name":"uv","version":"0.11.16","subcommand":["publish"]},"python":null,"implementation":{"name":null,"version":null},"distro":null,"system":{"name":null,"release":null},"cpu":null,"openssl_version":null,"setuptools_version":null,"rustc_version":null,"ci":null}

Release history Release notifications | RSS feed

This release

0.2.1 This release

2 release files

0.2.0

2 release files

0.1.6

2 release files

0.1.5

2 release files

0.1.3

2 release files

0.1.2

2 release files

0.1.1

2 release files

0.1.0

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