Markdown is a popular text formatting syntax these days. With Pandoc it is easy to convert markdown files to PDF, Words docx or many other formats. The official Docker images for pandoc can be found at and at dockerhub. The pandoc/core image contains pandoc. The pandoc/latex image also contains the minimal LaTeX installation needed to produce PDFs using pandoc. Figured it out, you have to create a custom template that looks for your tags and formats them for the output. Easy way to do this is run this command to get the default html template, create your. :Pandoc -template template.html -s -metadata date=' That’s going to run pandoc on the current buffer, use the template.html we just made, the -s flag tells it we want a standalone file (as opposed to just the content), and also passing in the metadata date so our template will insert where we added the variable.
17.3 Custom Pandoc templates
An R Markdown is first compiled to Markdown through knitr, and then converted to an output document (e.g., PDF, HTML, or Word) by Pandoc through a Pandoc template. While the default Pandoc templates used by R Markdown are designed to be flexible by allowing parameters to be specified in the YAML, users may wish to provide their own template for more control over the output format.
You can make use of additional YAML fields from the source document when designing a Pandoc template. For example, you may wish to have a department
field to be added to your title page, or include an editor
field to be displayed below the author. We can add additional variables to the Pandoc template by surrounding the variable in dollar signs ($
) within the template. Most variables take values from the YAML metadata of the R Markdown document (or command-line arguments passed to Pandoc). We may also use conditional statements and for-loops. Readers are recommended to check the Pandoc manual for more details: https://pandoc.org/MANUAL.html#using-variables-in-templates. Below is an example of a very minimal Pandoc template for HTML documents that only contains two variables ($title$
and $body$
):
For R Markdown to use the customized template, you can specify the template
option in the output format (provided that the output format supports this option), e.g.,
If you wish to design your own template, we recommend starting from the default Pandoc templates included within the rmarkdown package (https://github.com/rstudio/rmarkdown/tree/master/inst/rmd) or Pandoc’s built-in templates (https://github.com/jgm/pandoc-templates).
With Pandoc, it is possible to use a CSS stylesheet while converting Markdown to HTML.
This is the basic format of the command:
Assuming you have the custom CSS ready. If not, one possibility is to use a classless CSS stylesheet. I came accross MVP.css recently and liked how it looked.
To use MVP.css for documenting a project I’m working on, I had to make some modifications to Pandoc’s default HTML template. These are the steps I followed.
First, I saved the default template to a file:
Pandoc Html2pdf
And then, made the following changes in template.html
:
Pandoc Html Docx
- Move TOC to a dropdown menu in site navigation
- Add a button with a link to the project website
- Update colour scheme using CSS variables and made some minor adjustments to styles
After adding some YAML metadata 1 to README.md
, I ran pandoc
again with the modified template and CSS file to generate the final output:
Pandoc Convert Pdf To Latex
You can get the modified template, MVP.css, a Makefile, and input and output files from this repository on GitLab.
These links might be useful:
- Pandoc home page
- Pandoc usage examples
- Pandoc documentation on templates
- I also like the Sakura stylesheet
- More classless css stylesheets
Otherwise these variables will need to be provided on the command line. ↩