basic-book-builder/build/html/basic-book-builder.html

402 lines
15 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml" lang="" xml:lang="">
<head>
<meta charset="utf-8" />
<meta name="generator" content="pandoc" />
<meta name="viewport" content="width=device-width, initial-scale=1.0, user-scalable=yes" />
<title>Basic Book Builder</title>
<style>
/* Default styles provided by pandoc.
** See https://pandoc.org/MANUAL.html#variables-for-html for config info.
*/
code{white-space: pre-wrap;}
span.smallcaps{font-variant: small-caps;}
div.columns{display: flex; gap: min(4vw, 1.5em);}
div.column{flex: auto; overflow-x: auto;}
div.hanging-indent{margin-left: 1.5em; text-indent: -1.5em;}
/* The extra [class] is a hack that increases specificity enough to
override a similar rule in reveal.js */
ul.task-list[class]{list-style: none;}
ul.task-list li input[type="checkbox"] {
font-size: inherit;
width: 0.8em;
margin: 0 0.8em 0.2em -1.6em;
vertical-align: middle;
}
.display.math{display: block; text-align: center; margin: 0.5rem auto;}
/* CSS for syntax highlighting */
html { -webkit-text-size-adjust: 100%; }
pre > code.sourceCode { white-space: pre; position: relative; }
pre > code.sourceCode > span { display: inline-block; line-height: 1.25; }
pre > code.sourceCode > span:empty { height: 1.2em; }
.sourceCode { overflow: visible; }
code.sourceCode > span { color: inherit; text-decoration: inherit; }
div.sourceCode { margin: 1em 0; }
pre.sourceCode { margin: 0; }
@media screen {
div.sourceCode { overflow: auto; }
}
@media print {
pre > code.sourceCode { white-space: pre-wrap; }
pre > code.sourceCode > span { text-indent: -5em; padding-left: 5em; }
}
pre.numberSource code
{ counter-reset: source-line 0; }
pre.numberSource code > span
{ position: relative; left: -4em; counter-increment: source-line; }
pre.numberSource code > span > a:first-child::before
{ content: counter(source-line);
position: relative; left: -1em; text-align: right; vertical-align: baseline;
border: none; display: inline-block;
-webkit-touch-callout: none; -webkit-user-select: none;
-khtml-user-select: none; -moz-user-select: none;
-ms-user-select: none; user-select: none;
padding: 0 4px; width: 4em;
color: #aaaaaa;
}
pre.numberSource { margin-left: 3em; border-left: 1px solid #aaaaaa; padding-left: 4px; }
div.sourceCode
{ }
@media screen {
pre > code.sourceCode > span > a:first-child::before { text-decoration: underline; }
}
code span.al { color: #ff0000; font-weight: bold; } /* Alert */
code span.an { color: #60a0b0; font-weight: bold; font-style: italic; } /* Annotation */
code span.at { color: #7d9029; } /* Attribute */
code span.bn { color: #40a070; } /* BaseN */
code span.bu { color: #008000; } /* BuiltIn */
code span.cf { color: #007020; font-weight: bold; } /* ControlFlow */
code span.ch { color: #4070a0; } /* Char */
code span.cn { color: #880000; } /* Constant */
code span.co { color: #60a0b0; font-style: italic; } /* Comment */
code span.cv { color: #60a0b0; font-weight: bold; font-style: italic; } /* CommentVar */
code span.do { color: #ba2121; font-style: italic; } /* Documentation */
code span.dt { color: #902000; } /* DataType */
code span.dv { color: #40a070; } /* DecVal */
code span.er { color: #ff0000; font-weight: bold; } /* Error */
code span.ex { } /* Extension */
code span.fl { color: #40a070; } /* Float */
code span.fu { color: #06287e; } /* Function */
code span.im { color: #008000; font-weight: bold; } /* Import */
code span.in { color: #60a0b0; font-weight: bold; font-style: italic; } /* Information */
code span.kw { color: #007020; font-weight: bold; } /* Keyword */
code span.op { color: #666666; } /* Operator */
code span.ot { color: #007020; } /* Other */
code span.pp { color: #bc7a00; } /* Preprocessor */
code span.sc { color: #4070a0; } /* SpecialChar */
code span.ss { color: #bb6688; } /* SpecialString */
code span.st { color: #4070a0; } /* String */
code span.va { color: #19177c; } /* Variable */
code span.vs { color: #4070a0; } /* VerbatimString */
code span.wa { color: #60a0b0; font-weight: bold; font-style: italic; } /* Warning */
/* CSS for citations */
div.csl-bib-body { }
div.csl-entry {
clear: both;
}
.hanging-indent div.csl-entry {
margin-left:2em;
text-indent:-2em;
}
div.csl-left-margin {
min-width:2em;
float:left;
}
div.csl-right-inline {
margin-left:2em;
padding-left:1em;
}
div.csl-indent {
margin-left: 2em;
} </style>
<link rel="stylesheet" href="conf/style.css" />
</head>
<body>
<div class="frontmatter">
<!-- Title Page -->
<h1 class="titlepage" style="margin-top:3em; font-size:2.4em; text-align:center;">Basic Book Builder</h1>
<h2 style="text-align:center; font-weight:normal;">A Pandoc template for building books, documents and articles</h2>
<div style="text-align:center; margin:2em 0;">
<img src="lib/img/UAF-ACEP.png" alt="Cover illustration" style="max-width:350px;">
</div>
<hr style="margin:3em 0;">
<!-- Metadata Page -->
<div style="text-align:left; margin-top:5em;">
<h2>Basic Book Builder</h2>
<i>A Pandoc template for building books, documents and articles</i>
<table style="margin-top:2em; width:50%; border-collapse:collapse;">
<tbody>
<tr><td style="font-weight:bold;">Author</td><td>John Haverlack</td></tr>
<tr><td style="font-weight:bold;">Version</td><td>1.1.0</td></tr>
<tr><td style="font-weight:bold;">Date</td><td>2026-02-04</td></tr>
<tr><td style="font-weight:bold;">Affiliation</td><td>Alaska Center for Energy and Power</td></tr>
<tr><td style="font-weight:bold;">Institution</td><td>University of Alaska Fairbanks</td></tr>
<tr><td style="font-weight:bold;">ISBN:</td><td>UNSPECIFIED</td></tr>
<tr><td style="font-weight:bold;">DOI:</td><td>UNSPECIFIED</td></tr>
<tr><td style="font-weight:bold;">Maturity</td><td>BETA</td></tr>
</tbody>
</table>
<p>Copyright © 2026 Alaska Center for Energy and Power</p>
<h3>Licensing</h3>
<h4>Open Source Edition (PDF and HTML)</h4>
<p>Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International License
<ul>
<li>License: <a href="https://creativecommons.org/licenses/by-nd/4.0/">CC BY-ND 4.0</a></li>
</ul>
</p>
<!-- <h4>Commercial Edition (ebook and print)</h4>
<p>All Rights Reserved. No part of the EPUB or printed editions may be reproduced or redistributed without permission.</p> -->
</div>
<hr style="margin:4em 0;">
<!-- Image attribution + perception note (PDF analog) -->
<!-- <div style="width:100%; text-align:left; display:block; margin:1em 0;">
<h2>Cover Illustration</Code></h2>
</div>
<div style="max-width:40em; margin:auto;">
Cover illustration by <a href="$img-attribution-url$">$img-attribution$</a>.
</div> -->
</div>
<!-- <hr style="margin:4em 0;">
<div style="max-width:40em; margin:auto;">
<div style="width:100%; text-align:center; display:block; margin:1em 0; font-style: italic;">
This book is dedicated to ****.
</div>
</div>
<hr style="margin:4em 0;"> -->
<script>
window.MathJax = {
tex: { inlineMath: [['$', '$'], ['\\(', '\\)']] },
svg: { fontCache: 'global' }
};
</script>
<script src="lib/mathjax/tex-mml-chtml.js"></script>
<header id="title-block-header">
<h1 class="title">Basic Book Builder</h1>
</header>
<nav id="TOC" role="doc-toc">
<h2 id="toc-title">Contents</h2>
<ul>
<li><a href="#introduction" id="toc-introduction">Introduction</a></li>
<li><a href="#getting-started" id="toc-getting-started">Getting
Started</a>
<ul>
<li><a href="#cloning-the-basic-book-builder"
id="toc-cloning-the-basic-book-builder">Cloning the Basic Book
Builder</a></li>
<li><a href="#setting-up-build-environment"
id="toc-setting-up-build-environment">Setting Up Build
Environment</a></li>
</ul></li>
<li><a href="#glossary" id="toc-glossary">Glossary</a></li>
<li><a href="#bibliography" id="toc-bibliography">Bibliography</a></li>
</ul>
</nav>
<h1 id="introduction">Introduction</h1>
<p>This is a basic book (or article / document) builder template based
on a Pandoc<span class="citation" data-cites="PandocIndex">(<a
href="#ref-PandocIndex" role="doc-biblioref"><em>Pandoc - Index</em>,
n.d.</a>)</span> build process in conjunction with a number of other
tools to generate PDF, HTML, LaTex, Markdown, ODT, DOCX, and Epub book
output formats from a single set Markdown source content , which can
optionally be edited as an Obsidian vault.</p>
<p>This <strong>basic book builder</strong><span class="citation"
data-cites="JehaverlackBasicbookbuilderPandoca">(<a
href="#ref-JehaverlackBasicbookbuilderPandoca"
role="doc-biblioref"><em>Jehaverlack/Basic-Book-Builder</em>,
n.d.</a>)</span> template has been curated by John Haverlack.<span
class="citation" data-cites="JohnHaverlackACEP">(<a
href="#ref-JohnHaverlackACEP" role="doc-biblioref"><em>John
<span>Haverlack</span> <span>ACEP</span></em>, n.d.</a>)</span></p>
<h1 id="getting-started">Getting Started</h1>
<h2 id="cloning-the-basic-book-builder">Cloning the Basic Book
Builder</h2>
<div class="callout-cli">
<p><strong>Cloning the repository</strong></p>
<div class="sourceCode" id="cb1"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb1-1"><a href="#cb1-1" aria-hidden="true" tabindex="-1"></a><span class="fu">git</span> clone https://github.com/jehaverlack/basic-book-builder.git</span></code></pre></div>
</div>
<div class="callout-cli">
<p><strong>Navigate to the repo directory</strong></p>
<pre><code>cd basic-book-builder</code></pre>
</div>
<h2 id="setting-up-build-environment">Setting Up Build Environment</h2>
<div class="callout-caution">
<p><strong>Debian Based Linux</strong></p>
<p> This script only support Debian based linux system (Debian, Ubunutu,
Zorin, etc) This script has not been widely tested across platforms</p>
</div>
<div class="callout-cli">
<p><strong>Setup Build Environment</strong></p>
<div class="sourceCode" id="cb3"><pre
class="sourceCode bash"><code class="sourceCode bash"><span id="cb3-1"><a href="#cb3-1" aria-hidden="true" tabindex="-1"></a><span class="ex">./scripts/setup-linux-deb.sh</span></span></code></pre></div>
</div>
<p>For more information on setting up the build environment for your
system see Appendix A.</p>
<h1 class="unnumbered" id="glossary">Glossary</h1>
<table>
<colgroup>
<col style="width: 17%" />
<col style="width: 82%" />
</colgroup>
<thead>
<tr>
<th>Term</th>
<th>Description</th>
</tr>
</thead>
<tbody>
<tr>
<td><strong>AST (Abstract Syntax Tree)</strong></td>
<td>Pandocs internal structured representation of a document. Lua
filters operate on the AST before rendering to a target format.</td>
</tr>
<tr>
<td><strong>Bibliography</strong></td>
<td>A <code>.bib</code> file (e.g., Zotero export) used by Pandoc with
<code>citeproc</code> to generate formatted citations and reference
lists.</td>
</tr>
<tr>
<td><strong>Callout</strong></td>
<td>A styled block (e.g., <code>[!warning]</code>) transformed by Lua
filters into format-specific output such as LaTeX environments or HTML
<code>&lt;div&gt;</code> elements.</td>
</tr>
<tr>
<td><strong>Defaults File (YAML)</strong></td>
<td>A Pandoc configuration file defining output format, filters,
metadata, and rendering options (e.g., <code>pdf.yaml</code>,
<code>html.yaml</code>).</td>
</tr>
<tr>
<td><strong>DOCX</strong></td>
<td>Microsoft Word document format generated by Pandoc; styling is
controlled via a <code>reference.docx</code> file.</td>
</tr>
<tr>
<td><strong>Filter (Lua)</strong></td>
<td>A script that modifies Pandocs AST before rendering. Used in this
workflow for callouts and other structural transformations.</td>
</tr>
<tr>
<td><strong>Frontmatter</strong></td>
<td>Format-specific content inserted before the main body (e.g.,
<code>frontmatter.tex</code>, <code>frontmatter.html</code>,
<code>frontmatter-docx.md</code>).</td>
</tr>
<tr>
<td><strong>HTML</strong></td>
<td>Web output format generated by Pandoc, typically styled via CSS and
supporting interactive features.</td>
</tr>
<tr>
<td><strong>LaTeX</strong></td>
<td>Typesetting system used for high-quality PDF generation via XeLaTeX
in this workflow.</td>
</tr>
<tr>
<td><strong>Lua Filter</strong></td>
<td>A lightweight scripting extension used by Pandoc to customize
document transformations programmatically.</td>
</tr>
<tr>
<td><strong>Makefile</strong></td>
<td>Automation script orchestrating the build pipeline for PDF, HTML,
DOCX, ODT, and Markdown outputs.</td>
</tr>
<tr>
<td><strong>Markdown</strong></td>
<td>Plain-text markup language serving as the source format for all
outputs in the workflow.</td>
</tr>
<tr>
<td><strong>Metadata</strong></td>
<td>Keyvalue pairs (e.g., <code>metadata.yaml</code>) defining title,
author, license, version, and other document variables.</td>
</tr>
<tr>
<td><strong>ODT</strong></td>
<td>OpenDocument Text format used by LibreOffice; similar to DOCX but
open-standard.</td>
</tr>
<tr>
<td><strong>Pandoc</strong></td>
<td>Universal document converter used to transform Markdown into PDF,
HTML, DOCX, ODT, EPUB, and more.</td>
</tr>
<tr>
<td><strong>PDF</strong></td>
<td>Portable Document Format output produced via Pandoc + XeLaTeX.</td>
</tr>
<tr>
<td><strong>Reference Document</strong></td>
<td>A DOCX or ODT file defining styles (fonts, headings, spacing) used
when generating Word/LibreOffice outputs.</td>
</tr>
<tr>
<td><strong>Resource Path</strong></td>
<td>Directories Pandoc searches for images, diagrams, and other assets
during rendering.</td>
</tr>
<tr>
<td><strong>Template</strong></td>
<td>A format-specific layout file (e.g., LaTeX template) used to control
document structure beyond styling.</td>
</tr>
<tr>
<td><strong>TOC (Table of Contents)</strong></td>
<td>Automatically generated navigation structure controlled by
<code>toc</code> and <code>toc-depth</code> options.</td>
</tr>
<tr>
<td><strong>XeLaTeX</strong></td>
<td>LaTeX engine used to generate PDFs with modern font support (via
<code>fontspec</code>).</td>
</tr>
<tr>
<td><strong>Zotero</strong></td>
<td>Reference manager used to generate <code>.bib</code> files for
citation processing with Pandoc.</td>
</tr>
</tbody>
</table>
<h1 class="unnumbered" id="bibliography">Bibliography</h1>
<div id="refs" class="references csl-bib-body hanging-indent"
role="list">
<div id="ref-JehaverlackBasicbookbuilderPandoca" class="csl-entry"
role="listitem">
<em>Jehaverlack/Basic-Book-Builder: <span>A Pandoc</span> Workflow for
Building <span>PDF</span>, <span>HTML</span>, <span>EPUB</span>, and
<span>LaTeX</span> Book Format.</em> n.d.
Https://github.com/jehaverlack/basic-book-builder.
</div>
<div id="ref-JohnHaverlackACEP" class="csl-entry" role="listitem">
<em>John <span>Haverlack</span> <span>ACEP</span></em>. n.d.
Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
</div>
<div id="ref-PandocIndex" class="csl-entry" role="listitem">
<em>Pandoc - Index</em>. n.d. Https://pandoc.org/.
</div>
</div>
</body>
</html>