== Before starting == == Enable the plugin == Add the plugin to Jekyll’s _config.yml file: plugins: - jekyll-printing-press == Configure the plugin == Plugin-specific configuration goes under a pandoc key on _config.yml: pandoc: # Configuration goes here === Use Pandoc’s markdown flavor for generating Jekyll pages === Replace kramdown as default Markdown parser on Jekyll: markdown: Pandoc Markdown content on the Jekyll site is processed as Liquid (unless disabled) and then rendered using the HTML5 output format from Pandoc. You can configure this options later on. === Formats and options === Pandoc options can be configured on Jekyll’s side by adding them as YAML key-values. You can either use snake_case or kebab-case. For more info on options and possible values, please consult [https://pandoc.org/MANUAL.html#options Pandoc’s documentation]. Add an options key on the configuration file. pandoc: options: Then, add a key for any output format. pandoc: options: html5: pdf: epub: Each key will contain an option and their values for a specific format. pandoc: options: html5: table-of-contents: true toc-depth: 3 pdf: variable: - documentclass=book - papersize=a5 epub: true If you want to enable a format without passing any option, just add true as its value, like in the epub example. Some options don’t need a value, so they can also be enabled with a true value. Others do require a value, like in toc-depth for html5, or accept a list of values, like in variable for pdf. These options and values can be as long as you need them to be. Any option supported by Pandoc can go here. ==== Options for site publication ==== When you enable Pandoc for generating HTML pages, you can set its options using the html5 format. pandoc: options: html5: # Web pages options go here ==== Common options ==== Sometimes you need to share options between formats. In this case you can use a special common key which will share options between all formats. In this example, all three formats now have a table of contents, but only HTML5 produces one including third-level headers. pandoc: options: common: table-of-contents: true html5: toc-depth: 3 pdf: variable: - documentclass=book - papersize=a5 epub: true ==== Disabling or changing common options ==== If you need to disable a common option on a format, but keep it for others, set its value to false. pandoc: options: common: table-of-contents: true html5: toc-depth: 3 pdf: variable: - documentclass=book - papersize=a5 epub: table-of-contents: false Now only html5 and pdf have TOCs, and epub doesn’t. Same if you want to set a different value: pandoc: options: common: table-of-contents: true toc-depth: 3 html5: toc-depth: 4 pdf: variable: - documentclass=book - papersize=a5 epub: true Now all formats have a table of contents with three-level headers, except html5 where the TOC is four-level deep.