Markdown documents to PDF
# Run docker image
docker run -d -p "8080:8080" projektanker/mark:latest
# Wait for server to start
sleep 5
# Post multipart/form-data
curl -F "[email protected]" -F "[email protected]" -o example.pdf http://localhost:8080/api/pdf
Required files:
template.md
metadata.yaml
Optional files:
document.css
to style your document.header.html
to add a header to your document.footer.html
to add a footer to your document.pagelayout.yaml
to change the layout of your document.Defaults to DIN A4 with 10mm margins.template.html
to change the used html template. Defaults to pandoc HTML5 template (extract template withpandoc -D html5
)- other files like images or fonts are also supported.
Any of these files can be in one or more *.zip
or *.tar
archives and will be extracted by the server. See ./integration-test
for an advanced example.
MARK uses pandoc to convert the template.md
and metadata.yaml
to an intermediate markdown document. The template.md
supports the pandoc template syntax.
The intermediate markdown document is converted to a HTML document using the provided template.html
file (defaults to pandoc default HTML5 template).
The HTML document is converted to a PDF document by using Playwright.
To add a header or footer provide a header.html
or footer.html
file respectively. The header and footer support some classes to inject printing values (see Playwright HeaderTemplate. The document styles are not available in the header and footer and must be added inline or within an <style>...</style>
tag at the beginning of the file.
You can use the api/html
endpoint to get the intermediate HTML file used to generate the final pdf document.
# ...
curl -F "[email protected]" -F "[email protected]" -o example.html http://localhost:8080/api/html