2 years ago
#63225
Oo'-
Converting multiple Markdown files with multiple CSS files to PDF as one single page, using wkhtmltopdf and Pandoc
My trainings were inspired by the following (one of the questions didn't work):
- Using CSS when converting Markdown to PDF with Pandoc
- How to convert Markdown + CSS -> PDF?
- How to compile all .md files in a directory into a single .pdf with pandoc, while preserving YAML header data?
And the tutorial:
Converting Markdown to Beautiful PDF with Pandoc
My platform:
- Endeavour OS (derived of Arch Linux)
- KDE Plasma
- MikTeX
- Terminator
I have Lua installed.
My goal is to:
- convert multiple Markdown to one single PDF page (not multiple PDF pages)
- include multiple CSS files;
- use LaTeX macros (for example:
$\LaTeX$
on Markdown file) - to preserve YAML header data
I tried to run the command:
$ cd diários
$ pandoc -s \
# Because of few LaTeX macros on one Markdown file
-f markdown \
# I need to use HTML 5, but the result warned it is not compatible with the format output (xelatex)
-t html5 \
# Accoridng to https://jdhao.github.io/2019/05/30/markdown2pdf_pandoc/
--pdf-engine=xelatex \
--self-contained \
# Multiple CSS files
--css ../assets/css/colours.css,../assets/css/fonts.css,../assets/css/global.css \
# To preserve YAML data
--lua-filter=../scripts/demote.lua \
# Multiple Markdown files
-V geometry:margin=1in \
*.md \
# Output as PDF
-o combined.pdf
Tree
.
├── assets
│ ├── css
│ │ ├── colours.css
│ │ ├── fonts.css
│ │ ├── global.css
│ ├── fonts
│ │ ├── Latin Modern
│ │ │ ├── LM-bold-italic.woff
│ │ │ ├── LM-bold-italic.woff2
│ │ │ ├── LM-bold.woff
│ │ │ ├── LM-bold.woff2
│ │ │ ├── LM-italic.woff
│ │ │ ├── LM-italic.woff2
│ │ │ ├── LM-regular.woff
│ │ │ └── LM-regular.woff2
│ │
│ ├── images
│ │ ├── 2021-12-27-camiseta-do-hackathon-do-itau.jpeg
│ │ ├── emojis
│ │ │ ├── 32
│ │ │ │ ├── 1-emoji-excited.png
│ │ │ │ ├── 2-emoji-happy.png
│ │ │ │ ├── 3-emoji-neutral.png
│ │ │ │ ├── 4-emoji-sad.png
│ │ │ │ └── 5-emoji-down.png
│ ├── videos
│ │ └── 2021-12-27 – Comboio no temrinal em dois monitores.mp4
├── diários
│ ├── 2021-05-28.md
│ ├── 2021-12-25.md
│ ├── 2021-12-26.md
│ ├── 2021-12-27.md
│ ├── 2021-12-28.md
│ ├── 2021-12-29.md
│ ├── 2021-12-30.md
│ ├── 2021-12-31.md
│ ├── 2022-01-01.md
│ ├── 2022-01-02.md
│ ├── 2022-01-03.md
│ ├── 2022-01-04.md
│ ├── 2022-01-05.md
│ ├── 2022-01-06.md
│ ├── 2022-01-07.md
│ ├── 2022-01-10.md
│ ├── 2022-01-11.md
├── scripts
│ └── demote.lua
Errors
pdf-engine xelatex is not compatible with output format html5
And with -t html5
, another error:
Error running filter ../scripts/demote.lua:
[string "--[[..."]:227: Constructor for Header failed: [string "--[[..."]:258: attempt to index a nil value (local 'x')
stack traceback:
[C]: in function 'error'
[string "--[[..."]:227: in field 'Header'
../scripts/demote.lua:11: in function 'Pandoc'
With --lua-filter=../scripts/demote.lua
removed, it almost worked, but it did not capture the CSS files. I believe the problem is in the pdf-engine=xelatex
.
html
css
markdown
pandoc
0 Answers
Your Answer