402 lines
15 KiB
HTML
402 lines
15 KiB
HTML
<!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>Pandoc’s 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><div></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 Pandoc’s 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>Key–value 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>
|