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.
-For Debian / ZorinOS and likely Ubuntu based systems.
+
-
Code Editor
-
VSCodium is recommend for
-privacy (telemetry/tracking) reasons - https://vscodium.com/
+
+
Setup Build Environment
+
./scripts/setup-linux-deb.sh
-
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
-
-- https://www.mathjax.org/
-
-
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.
-
-
-- https://www.zotero.org/
-
-
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
-
-- https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc
-
-
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
-
-- https://johnfactotum.github.io/foliate/
-
-
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
-
-- https://calibre-ebook.com
-
-
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
-
-- metadata.yaml - Set Title, etc
-- pandoc.yaml - Main Pandoc Config #### Per format Configs
-pdf.yaml
-html.yaml
-latex.yaml
-epub.yaml
-
-
FrontMatter Config
-
There are 2 Version of the FrontMatter for PDF, and HTML bases
-formats that set the Title, Author, Verizon, Copyright, etc…
-
-frontmatter.tex
-frontmatter.html
-frontmatter_epub.* - Work in Progress
-
-
-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.
-
-- Edit the Markdown content in the
chapters
-directory.
-
-
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
+
For more information on setting up the build environment for your
+system see Appendix A.
Glossary
-
-- AI - Artificial Intelligence
-
-
+
+
+
+
+
+
+
+| Term |
+Description |
+
+
+
+
+| AST (Abstract Syntax Tree) |
+Pandoc’s internal structured representation of a document. Lua
+filters operate on the AST before rendering to a target format. |
+
+
+| Bibliography |
+A .bib file (e.g., Zotero export) used by Pandoc with
+citeproc to generate formatted citations and reference
+lists. |
+
+
+| Callout |
+A styled block (e.g., [!warning]) transformed by Lua
+filters into format-specific output such as LaTeX environments or HTML
+<div> elements. |
+
+
+| Defaults File (YAML) |
+A Pandoc configuration file defining output format, filters,
+metadata, and rendering options (e.g., pdf.yaml,
+html.yaml). |
+
+
+| DOCX |
+Microsoft Word document format generated by Pandoc; styling is
+controlled via a reference.docx file. |
+
+
+| Filter (Lua) |
+A script that modifies Pandoc’s AST before rendering. Used in this
+workflow for callouts and other structural transformations. |
+
+
+| Frontmatter |
+Format-specific content inserted before the main body (e.g.,
+frontmatter.tex, frontmatter.html,
+frontmatter-docx.md). |
+
+
+| HTML |
+Web output format generated by Pandoc, typically styled via CSS and
+supporting interactive features. |
+
+
+| LaTeX |
+Typesetting system used for high-quality PDF generation via XeLaTeX
+in this workflow. |
+
+
+| Lua Filter |
+A lightweight scripting extension used by Pandoc to customize
+document transformations programmatically. |
+
+
+| Makefile |
+Automation script orchestrating the build pipeline for PDF, HTML,
+DOCX, ODT, and Markdown outputs. |
+
+
+| Markdown |
+Plain-text markup language serving as the source format for all
+outputs in the workflow. |
+
+
+| Metadata |
+Key–value pairs (e.g., metadata.yaml) defining title,
+author, license, version, and other document variables. |
+
+
+| ODT |
+OpenDocument Text format used by LibreOffice; similar to DOCX but
+open-standard. |
+
+
+| Pandoc |
+Universal document converter used to transform Markdown into PDF,
+HTML, DOCX, ODT, EPUB, and more. |
+
+
+| PDF |
+Portable Document Format output produced via Pandoc + XeLaTeX. |
+
+
+| Reference Document |
+A DOCX or ODT file defining styles (fonts, headings, spacing) used
+when generating Word/LibreOffice outputs. |
+
+
+| Resource Path |
+Directories Pandoc searches for images, diagrams, and other assets
+during rendering. |
+
+
+| Template |
+A format-specific layout file (e.g., LaTeX template) used to control
+document structure beyond styling. |
+
+
+| TOC (Table of Contents) |
+Automatically generated navigation structure controlled by
+toc and toc-depth options. |
+
+
+| XeLaTeX |
+LaTeX engine used to generate PDFs with modern font support (via
+fontspec). |
+
+
+| Zotero |
+Reference manager used to generate .bib files for
+citation processing with Pandoc. |
+
+
+
Bibliography
+
+Jehaverlack/Basic-Book-Builder: A Pandoc Workflow for
+Building PDF, HTML, EPUB, and
+LaTeX Book Format. n.d.
+Https://github.com/jehaverlack/basic-book-builder.
+
John Haverlack ACEP. n.d.
Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
+
+Pandoc - Index. n.d. Https://pandoc.org/.
+