Basic Book Builder

A Pandoc template for building books and articles

Cover illustration

Basic Book Builder

A Pandoc template for building books and articles
AuthorJohn Haverlack
Version1.1.0
Date2026-02-04
ISBN:UNSPECIFIED
DOI:UNSPECIFIED
MaturityBETA

Copyright © 2026 Alaska Center for Energy and Power

Licensing

Open Source Edition (PDF and HTML)

Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License


Basic Book Builder

Preface

Preface t the Book…

Introduction

This is a basic book (or article) builder template based on a Pandoc build process in conjunction with a number of other tools to generate PDF, ODT, HTML, LaTex, Markdown, and Epub book output formats from Markdown source content , which can optionally be edited as an Obsidian vault.

This book builder template has been curated by John Haverlack.(John Haverlack ACEP, n.d.)

Getting Started

Installing Pre-Requisites

For Debian / ZorinOS and likely Ubuntu based systems.

TODO

It would be nice to roll a setup script to take care of this.

Required

Pandoc

sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb

Code Editor

Code Editor

VSCodium is recommend for privacy (telemetry/tracking) reasons - https://vscodium.com/

But any text editor will work. #### make

sudo apt install make

jq and yq

sudo apt install jq yq

texlive

sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra

MathJax

wget https://registry.npmjs.org/mathjax/-/mathjax-3.2.2.tgz
tar xzf mathjax-3.2.2.tgz
mv package/es5/* lib/mathjax
rm -rf package mathjax-3.2.2.tgz

TODO

This need to be rolled into a setup script.

Optional

The following are not strictly requires to use this book builder template.

Obsidian

Highly Recommended

Editing book chapter content in Obsidian is a very productive means for editing Markdown source content.

sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb

Zotero

Highly Recommended

If you need to managed citations and references, Zotero integration is highly recommended.

sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/
sudo apt update
sudo apt install zotero
Better BibTex for Zotero

Install the Better BibTex Plugin for Zotero - Zotero > Tool > Plugins

Export citations.bib
Zotero Connector Browser Plugin

Provides you the ability to auto add Web resources to your Zotero citation database.

lmodern

sudo apt install lmodern

epubcheck

sudo apt install epubcheck

foliate

An EPub Reader

sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb

calibre

An EPub Reader

sudo apt install calibre

Editing the Configuration

Editing the Book

Configuration

There are a number of other config files for each format:

conf/
├── epub-metadata.xml
├── epub_template.html
├── epub.yaml
├── frontmatter_epub.md
├── frontmatter_epub.xhtml
├── frontmatter.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── metadata.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css

Main Config Files

FrontMatter Config

There are 2 Version of the FrontMatter for PDF, and HTML bases formats that set the Title, Author, Verizon, Copyright, etc…

There is probably a better way to do this.

Editing the Content

To edit the book open the basic-book-builder directory as an Obsidian Vault.

Citations

Note: the Zotero database needs configured to export automatically to lib/citations.bib

To insert a Zotero Citation - Ensure the Zotero App and DB are running on you system. - Alt + I (to insert citation) - Search for and select citation reference

Usage: Building the Book

PDF

make pdf

HTML

make html

LaTex

make latex

Markdown

make markdown

EPub

Note: This ePub configuration still needs tuning.

make epub

Appendix A

First Appendix

Glossary

Bibliography

John Haverlack ACEP. n.d. Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.