CLI tool to export markdown to pdf using jinja2 templates.
Project description
Description
Mdexport is CLI tool to publish Markdown files as PDF using Jinja2 templates. You can use Frontmatter metadata as custom values to be filled into your template.
Designed to work with Obsidian.
Installation
pip3 install mdexport
Usage
Setup an html templates directory
Create a directory where you will store your templates. Each template should be a subdirectory named with the desired template name.
templates/
├──invoice/
│ ├──template.html
│ └──(any files or images that template.html depends on)
└── thesis/
├──template.html
└──(any files or images that template.html depends on)
Update the config of mdexport
Set the path of your template directory in the mdexport config.
mdexport options set template_dir /path/to/templates
Create your template
Create a template.html file with a Jinja2 template.
<html>
<body>
<section>
<b>Date: {{date}}</b>
<b>To: {{to}}</b>
</section>
<section>
<p>{{body}}</p>
</section>
</body>
</html>
Create your MD file
Write your Markdown file. Provide Frontmatter metadata(compatible with Obsidian properties) as the keys that shall be rendered in your template.
---
date: 14/10/2024
to: Bob
---
Body of my markdown file.
If you want to have mdexport generate an empty Markdown file with the metadata keys your template expects you can run the following:
mdexport emptymd test.md -t templatename
Generate pdf
mdexport publish file.md -o output.pdf -t invoice
Custom attachments folder
In case you are using Obsidian or some other tool that places images in a seperate folder you can set the name of this folder as:
mdexport options set attachments images_folder
Dependencies
Mdexport makes use of Weasyprint to generate PDF files. Installation of Weasyprint seems to be not straight forward on some systems. If you encounter issues please follow the steps in the link below.
[https://doc.courtbouillon.org/weasyprint/stable/first_steps.html#installation]
Issue with weasyprint on Mac
echo 'export DYLD_LIBRARY_PATH=$(brew --prefix)/lib' >> ~/.bashrc
sudo ln -s /opt/homebrew/opt/glib/lib/libgobject-2.0.0.dylib /usr/local/lib/gobject-2.0
sudo ln -s /opt/homebrew/opt/pango/lib/libpango-1.0.dylib /usr/local/lib/pango-1.0
sudo ln -s /opt/homebrew/opt/harfbuzz/lib/libharfbuzz.dylib /usr/local/lib/harfbuzz
sudo ln -s /opt/homebrew/opt/fontconfig/lib/libfontconfig.1.dylib /usr/local/lib/fontconfig-1
sudo ln -s /opt/homebrew/opt/pango/lib/libpangoft2-1.0.dylib /usr/local/lib/pangoft2-1.0
Project details
Release history Release notifications | RSS feed
Download files
Download the file for your platform. If you're not sure which to choose, learn more about installing packages.
Source Distribution
Built Distribution
File details
Details for the file mdexport-0.5.0.tar.gz
.
File metadata
- Download URL: mdexport-0.5.0.tar.gz
- Upload date:
- Size: 8.6 kB
- Tags: Source
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | e3dc306e8a0f79e1aeccea888c9177910c3f4514873d4d8fb5728dfa2c72d32e |
|
MD5 | 2ada052cada898ddfe258c9b91f96bb3 |
|
BLAKE2b-256 | a1de5179d4390c6af5f7952ef03d61b6f2023f19d141f71bdbe48f05ef6bac19 |
File details
Details for the file mdexport-0.5.0-py3-none-any.whl
.
File metadata
- Download URL: mdexport-0.5.0-py3-none-any.whl
- Upload date:
- Size: 10.1 kB
- Tags: Python 3
- Uploaded using Trusted Publishing? No
- Uploaded via: poetry/1.8.4 CPython/3.12.1 Darwin/23.5.0
File hashes
Algorithm | Hash digest | |
---|---|---|
SHA256 | bcae1344de502727f2033eee7abbc1031349aaf9f841a216bd5577ae76b5e46d |
|
MD5 | 035f339c9603c202900ddaefb8a3e48c |
|
BLAKE2b-256 | 80b5dd9dbb1cc410b28c6f8ae5ceaee98939a50ae7b5761988e3d3f769a7cfaf |