This commit is contained in:
John Haverlack 2026-02-05 17:36:18 -09:00
parent da0e59bd22
commit 8384c47f11
21 changed files with 980 additions and 973 deletions

View File

@ -4,51 +4,24 @@
"type": "split",
"children": [
{
"id": "c327dc0e927bf66a",
"type": "split",
"id": "2d8c08f76d34c644",
"type": "tabs",
"children": [
{
"id": "f0990ffd7a67a2ec",
"type": "tabs",
"children": [
{
"id": "9f4cd104c7d85619",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/03_Features.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "03_Features"
}
}
]
},
{
"id": "3de8dc3f3db46984",
"type": "tabs",
"children": [
{
"id": "8fb585e598f88138",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/03_Features.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "03_Features"
}
}
]
"id": "24988c076d2f30d6",
"type": "leaf",
"state": {
"type": "markdown",
"state": {
"file": "chapters/04_Design.md",
"mode": "source",
"source": false
},
"icon": "lucide-file",
"title": "04_Design"
}
}
],
"direction": "horizontal"
]
}
],
"direction": "vertical"
@ -279,7 +252,8 @@
}
],
"direction": "horizontal",
"width": 200
"width": 200,
"collapsed": true
},
"left-ribbon": {
"hiddenItems": {
@ -294,33 +268,35 @@
"obsidian-kanban:Create new board": false
}
},
"active": "8fb585e598f88138",
"active": "24988c076d2f30d6",
"lastOpenFiles": [
"README.md",
"conf/sedTQLO9w",
"chapters/02_Usage.md",
"conf/sedufgozC",
"conf/sedQ287QU",
"conf/sedq3LRZz",
"chapters/03_Features.md",
"chapters/Appendix.md",
"conf/sedkKV6c0",
"conf/sedAqcSmo",
"conf/sedk8YBK0",
"conf/sedzF3xOr",
"conf/sedtZNObL",
"chapters/AppendixB.md",
"chapters/Bibliography.md",
"chapters/AppendixA.md",
"conf/sed6ZdLUq",
"chapters/04_Design.md",
"conf/sedtBb3Os",
"conf/sedRcZh0D",
"conf/sed1CDdq2",
"conf/sedzZKUYL",
"conf/sedGlYwid",
"conf/sedB61nJB",
"conf/sedkPk5Sn",
"conf/seddNGzeb",
"chapters/01_Getting_Started.md",
"conf/sedBapyXA",
"conf/sedYZ2rBJ",
"conf/sedbEPwZC",
"chapters/02_Usage.md",
"chapters/Bibliography.md",
"chapters/Index.md",
"chapters/00_Introduction.md",
"chapters/AppendixB.md",
"chapters/04_Design.md",
"package/README.md",
"README.md",
"chapters/Appendix.md",
"chapters/AppendixA.md",
"conf/frontmatter-docx.md",
"templates/frontmatter-docx.md",
"chapters/02_Features.md",
"chapters/Preface.md",
"chapters/Index.md",
"chapters/Glossary.md",
"lib/img/unit-circle-with-tau.png",
"lib/img/unit-circle-with-pi.png.png",
@ -339,7 +315,6 @@
"build/basic-book-builder.md",
"LICENSE.md",
"pm/Book Action Items.md",
"chapters/Unitfication.md",
"chapters/03_Cylindrical_Spacetime.md"
"chapters/Unitfication.md"
]
}

View File

@ -5,7 +5,7 @@
| **Author** | John Haverlack |
| **Copyright** | 2026 John Haverlack |
| **License** | CC BY-ND 4.0 |
| **Version** | 1.2.2 |
| **Version** | v1.2.3 |
| **Date** | 2026-02-05 |
This is a basic book (article) builder template based on a Pandoc build process in conjunction with a number of other tools to generate PDF, DOCX, ODT, HTML, LaTeX, Markdown, and Epub book formats all from a single set of Markdown source content in an Obsidian vault.

Binary file not shown.

View File

@ -51,7 +51,7 @@
<!-- 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 build process for books, docs and articles</h2>
<h2 style="text-align:center; font-weight:normal;">A Pandoc build process for books, docs 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;">
@ -64,12 +64,12 @@
<div style="text-align:left; margin-top:5em;">
<h2>Basic Book Builder</h2>
<i>A Pandoc build process for books, docs and articles</i>
<i>A Pandoc build process for books, docs 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.2.2</td></tr>
<tr><td style="font-weight:bold;">Version</td><td>1.2.3</td></tr>
<tr><td style="font-weight:bold;">Date</td><td>2026-02-05</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>
@ -130,31 +130,25 @@ window.MathJax = {
<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="#introduction" id="toc-introduction">Introduction</a>
<ul>
<li><a href="#workflow" id="toc-workflow">Workflow</a></li>
</ul></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
<li><a href="#clone-the-basic-book-builder"
id="toc-clone-the-basic-book-builder">Clone 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>
id="toc-setting-up-build-environment">Setting Up Build Environment</a>
<ul>
<li><a href="#non-deb-systems" id="toc-non-deb-systems">Non deb
systems</a></li>
</ul></li>
<li><a href="#testing" id="toc-testing">Testing</a></li>
<li><a href="#creating-a-new-project"
id="toc-creating-a-new-project">Creating a New Project</a>
<ul>
<li><a href="#zotero-configuration-optional"
id="toc-zotero-configuration-optional">Zotero Configuration
(Optional)</a></li>
</ul></li>
</ul></li>
<li><a href="#usage" id="toc-usage">Usage</a>
<ul>
<li><a href="#creating-a-project" id="toc-creating-a-project">Creating a
Project</a></li>
<li><a href="#editing-content" id="toc-editing-content">Editing
Content</a></li>
id="toc-creating-a-new-project">Creating a New Project</a></li>
<li><a href="#building" id="toc-building">Building</a>
<ul>
<li><a href="#pdf" id="toc-pdf">PDF</a></li>
@ -175,6 +169,8 @@ Page</a></li>
Illustration</a></li>
<li><a href="#dedication" id="toc-dedication">Dedication</a></li>
</ul></li>
<li><a href="#table-of-contents" id="toc-table-of-contents">Table of
Contents</a></li>
<li><a href="#chapters" id="toc-chapters">Chapters</a></li>
<li><a href="#appendixes" id="toc-appendixes">Appendixes</a></li>
<li><a href="#glossary" id="toc-glossary">Glossary</a></li>
@ -190,7 +186,8 @@ Integration</a></li>
<li><a href="#obsidian-citations" id="toc-obsidian-citations">Obsidian
Citations</a></li>
</ul></li>
<li><a href="#mathjax-equations" id="toc-mathjax-equations">Mathjax
<li><a href="#images" id="toc-images">Images</a></li>
<li><a href="#latex-equations" id="toc-latex-equations"><em>LaTeX</em>
Equations</a>
<ul>
<li><a href="#left-justified-inline" id="toc-left-justified-inline">Left
@ -202,19 +199,26 @@ Markdown</a>
<ul>
<li><a href="#call-outs" id="toc-call-outs">Call-outs</a></li>
</ul></li>
</ul></li>
<li><a href="#appendix-a-build-environment-notes"
id="toc-appendix-a-build-environment-notes">Appendix A: Build
Environment Notes</a>
<li><a href="#advanced" id="toc-advanced">Advanced</a>
<ul>
<li><a href="#installing-pre-requisites"
id="toc-installing-pre-requisites">Installing Pre-Requisites</a>
<ul>
<li><a href="#required" id="toc-required">Required</a></li>
<li><a href="#optional" id="toc-optional">Optional</a></li>
<li><a href="#changing-fonts" id="toc-changing-fonts">Changing
Fonts</a></li>
<li><a href="#adding-filters" id="toc-adding-filters">Adding
Filters</a></li>
</ul></li>
<li><a href="#editing-the-configuration"
id="toc-editing-the-configuration">Editing the Configuration</a></li>
</ul></li>
<li><a href="#design" id="toc-design">Design</a>
<ul>
<li><a href="#directory-structure"
id="toc-directory-structure">Directory Structure</a></li>
<li><a href="#configuration-files"
id="toc-configuration-files">Configuration Files</a>
<ul>
<li><a href="#pandoc-main-config" id="toc-pandoc-main-config">Pandoc
Main Config</a></li>
</ul></li>
<li><a href="#build-workflow" id="toc-build-workflow">Build
Workflow</a></li>
</ul></li>
<li><a href="#glossary-1" id="toc-glossary-1">Glossary</a></li>
<li><a href="#bibliography-1"
@ -222,13 +226,31 @@ id="toc-bibliography-1">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
<p>This is a <strong>basic book builder</strong> template is 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>
n.d.</a>)</span> + Makefile build process in conjunction Obsidian to
edit content and Zotero to manage citation, to generate multiple format
of the document including:</p>
<ul>
<li>PDF</li>
<li>HTML</li>
<li><em>LaTeX</em></li>
<li>Markdown</li>
<li>ODT</li>
<li>DOCX</li>
<li>Epub</li>
</ul>
<h3 id="workflow">Workflow</h3>
<ol type="1">
<li>Create a new project</li>
<li>Initialize <code>metadata.yaml</code> with title, copyright, author,
etc.</li>
<li>Customize <code>input-files:</code> in <code>pandoc.yaml</code></li>
<li>Edit <code>chapters</code> Markdown “conent” files using
Obidian</li>
<li>Build your document</li>
</ol>
<p>This <strong>basic book builder</strong><span class="citation"
data-cites="JehaverlackBasicbookbuilderPandoca">(<a
href="#ref-JehaverlackBasicbookbuilderPandoca"
@ -238,8 +260,7 @@ 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>
<h2 id="clone-the-basic-book-builder">Clone the Basic Book Builder</h2>
<div class="callout-cli">
<p><strong>Clone the repository</strong></p>
<pre><code>git clone https://github.com/jehaverlack/basic-book-builder.git</code></pre>
@ -251,56 +272,56 @@ Builder</h2>
<h2 id="setting-up-build-environment">Setting Up Build Environment</h2>
<div class="callout-caution">
<p><strong>~Debian 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>
<p> This script only support Debian based Linux system (e.g Debian,
Ubuntu, Zorin). And this script will install several ATP packages on
your system.</p>
</div>
<div class="callout-danger">
<p><strong>Warning</strong></p>
<p> This script <strong>has not</strong> been widely tested across many
platforms</p>
</div>
<p>To initialize your systems build environment run:</p>
<div class="callout-cli">
<p><strong>Setup Build Environment</strong></p>
<pre><code>./scripts/setup-linux-deb.sh</code></pre>
</div>
<h3 id="non-deb-systems">Non deb systems</h3>
<p>For more information on setting up the build environment for your
system see Appendix A.</p>
system see: <strong>TBD: NEEDS DOCUMENTED</strong>.</p>
<h2 id="testing">Testing</h2>
<p>If you can build all format for the <strong>Basic Book Build</strong>
then you have a working build environment.</p>
<p>Once you have set up your build environment, you test by building the
<strong>basic book builder</strong>.</p>
<div class="callout-cli">
<p><strong>Testing Build Environment</strong></p>
<pre><code>make all</code></pre>
</div>
<h2 id="creating-a-new-project">Creating a New Project</h2>
<h3 id="zotero-configuration-optional">Zotero Configuration
(Optional)</h3>
<h1 id="usage">Usage</h1>
<h2 id="creating-a-project">Creating a Project</h2>
<p>To create a new Project based on the Basic Book Builder template:</p>
<ol type="1">
<li>Run the new-project.sh script.</li>
</ol>
<pre><code>./scripts/new-project.sh &lt;PATH_TO_PROJECT&gt;</code></pre>
<ul>
<li><PATH_TO_PROJECT> should be outside of the
<strong>basic-book-builder</strong> directory</li>
</ul>
<pre><code>cd &lt;PATH_TO_PROJECT&gt;</code></pre>
<p>Update:</p>
<ol type="1">
<li><code>metadata.yaml</code></li>
<li><code>templates/pandoc.yaml</code></li>
</ol>
<div class="callout-info">
<p><strong>Suggestion</strong></p>
<p> Create a git repository to version control your new
<PATH_TO_PROJECT> content.</p>
<div class="callout-proposed">
<p><strong>Tip</strong></p>
<p> You do not want to edit your new project document in the
<code>basic-book-builder</code> directory. You will want to create a
<strong>new project</strong> for your document based on this
template.</p>
</div>
<div class="callout-cli">
<p><strong>Create a new project</strong></p>
<pre><code>./scripts/new-project.sh &lt;NEW_PROJECT_DIR&gt;</code></pre>
</div>
<pre><code>cd &lt;NEW_PROJECT_DIR&gt;</code></pre>
<p>Update your project configuration:</p>
<ol type="1">
<li>Edit: <code>metadata.yaml</code>, for title, author, etc</li>
<li>Edit: <code>templates/pandoc.yaml</code></li>
<li>Open: <code>&lt;NEW_PROJECT_DIR&gt;</code> with Obsidian, and edit
<code>chapters</code> documents.</li>
<li>Build: <code>make pdf</code></li>
</ol>
<div class="callout-warning">
<p><strong>Warning</strong></p>
<p> <code>&lt;NEW_PROJECT_DIR&gt;</code> should be outside of the
<strong>basic-book-builder</strong> directory</p>
</div>
<h2 id="editing-content">Editing Content</h2>
<p>Edit your source content Markdown under the <code>chapters</code>
directory.</p>
<p><strong>Optional</strong></p>
<ul>
<li>Open your <code>&lt;PATH_TO_PROJECT&gt;</code> directory as an
Obsidian vault.</li>
<li>Edit your Markdown with Obsidian</li>
</ul>
<h2 id="building">Building</h2>
<h3 id="pdf">PDF</h3>
<pre><code>make pdf</code></pre>
@ -326,31 +347,30 @@ work.</p>
<p>To build all supported formats</p>
<pre><code>make all</code></pre>
<h1 id="features">Features</h1>
<p>The basic book builder template integrates feature from many systems
including Pandoc, MathJax, Obsidian, and Zotero. The following list
covers these features from a functional point of view.</p>
<h2 id="metadata">Metadata</h2>
<p>Metadata for the project is managed in <code>metadata.yaml</code>.
Edit this file to make global changes to variables for your document.
Changes here will propagate to all format builds.</p>
Edit this file to make <strong>global changes</strong> to variables for
your document. Definitions in <code>metadata.yaml</code> will propagate
to all format builds.</p>
<h2 id="front-matter">Front-matter</h2>
<p>Front matter content is manged in:</p>
<p>Front-Matter documents control the Title Page, Metadata and other
pages before the Title of Contents. Front matter content is manged in
these files:</p>
<ul>
<li><code>templates/frontmatter.tex</code></li>
<li><code>templates/frontmatter.html</code></li>
<li><code>templates/frontmatter-md.html</code></li>
</ul>
<div class="callout-caution">
<p><strong>Tip</strong></p>
<p> Unfortunately when you edit one, you need to edit the respective
<p>Unfortunately when you edit one, you need to edit the respective
changes to the other front-matter formats. ### Title Page</p>
</div>
<p>Edit the <strong>Front-matter</strong> files to modify the formatting
of the Title Page.</p>
<div class="callout-caution">
<p><strong>Tip</strong></p>
<p> Youll need to modify the HTML / LaTex.</p>
</div>
of the Title Page. Youll need to modify the HTML / LaTex code.</p>
<h3 id="meta-data-page">Meta Data Page</h3>
<p>Edit the <strong>Front-matter</strong> files to modify the 2nd page
Metadata format.</p>
Metadata format and fields to display.</p>
<h3 id="cover-illustration">Cover Illustration</h3>
<p>Edit the <strong>Front-matter</strong> files to optionally un-comment
the Cover Art Acknowledgement.</p>
@ -361,13 +381,20 @@ the Cover Art Acknowledgement.</p>
<p>Edit the <strong>Front-matter</strong> files to modify un-comment the
Book Dedication.</p>
<ul>
<li>This is disabled by default ## Table of Contents</li>
<li>This is disabled by default</li>
</ul>
<h2 id="table-of-contents">Table of Contents</h2>
<p>The table of contents is auto generated. But can be disabled in
<code>template\pandoc.yaml</code> by setting: -
<code>toc: false</code></p>
<h2 id="chapters">Chapters</h2>
<p>Chapter Markdown source files are located in the
<code>chapters</code> directory. Edit the
<code>template\pandoc.yaml</code> file to control which chapter markdown
files are in what order.</p>
<code>chapters</code> directory. To edit which chapter files are
included the document:</p>
<ul>
<li>Edit the <code>input-file:</code> section of the
<code>template\pandoc.yaml</code></li>
</ul>
<h2 id="appendixes">Appendixes</h2>
<p>TBD</p>
<h2 id="glossary">Glossary</h2>
@ -382,14 +409,38 @@ files are in what order.</p>
<p>TBD</p>
<h3 id="obsidian-citations">Obsidian Citations</h3>
<p>TBD</p>
<h2 id="mathjax-equations">Mathjax Equations</h2>
<p>TBD</p>
<h2 id="images">Images</h2>
<p>You can use basic Markdown Images</p>
<pre><code>![ACEP](lib/img/ACEPLogo.png)</code></pre>
<figure>
<img src="lib/img/ACEPLogo.png" alt="ACEP" />
<figcaption aria-hidden="true">ACEP</figcaption>
</figure>
<h2 id="latex-equations"><em>LaTeX</em> Equations</h2>
<p>You can embed LaTeX equations directly in your Markdown pages.</p>
<h3 id="left-justified-inline">Left Justified / Inline</h3>
<p>TBD</p>
<p>To left justify <em>LaTex</em> surround the code inside single
<code>$</code>:</p>
<div class="callout-code">
<p><strong>Left Justified Equation</strong></p>
<pre><code>$x = \frac{1}{2}$</code></pre>
</div>
<p><span class="math inline">$x = \frac{1}{2}$</span></p>
<div class="callout-code">
<p><strong>Inline</strong></p>
<pre><code>Or inline, $x = \frac{1}{2}$, in a sentence.</code></pre>
</div>
<p>Or inline, <span class="math inline">$x = \frac{1}{2}$</span>, in a
sentence.</p>
<h3 id="centered">Centered</h3>
<p>TBD</p>
<p>To center justify <em>LaTex</em> surround the code inside double
<code>$$</code>:</p>
<div class="callout-code">
<p><strong>Centered Equation</strong></p>
<pre><code>$$x = \frac{1}{2}$$</code></pre>
</div>
<p><span class="math display">$$x = \frac{1}{2}$$</span></p>
<h2 id="custom-markdown">Custom Markdown</h2>
<p>TBD</p>
<h3 id="call-outs">Call-outs</h3>
<p>A few call-out box styles have been custom added to easily highlight
certain types of content.</p>
@ -417,17 +468,6 @@ A blue box</code></pre>
<hr />
<div class="callout-code">
<p><strong>Markdown Example</strong></p>
<pre><code>[!info] Info Box
Same as a blue box</code></pre>
</div>
<p>Will render:</p>
<div class="callout-info">
<p><strong>Info Box</strong></p>
<p> Same as a blue box</p>
</div>
<hr />
<div class="callout-code">
<p><strong>Markdown Example</strong></p>
<pre><code>[!speculative] Purple Call-out Title
A purple box</code></pre>
</div>
@ -493,7 +533,8 @@ fi</code></pre>
A command line example
&#39;&#39;&#39;
$ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml &gt;README.md scripts templates
build chapters conf filters lib LICENSE.md Makefile
metadata.yaml &gt;README.md scripts templates
&#39;&#39;&#39;</code></pre>
</div>
<p>Will render:</p>
@ -501,118 +542,126 @@ build chapters conf filters lib LICENSE.md Makefile metadata.yaml &gt;RE
<p><strong>Command line</strong></p>
<p> A command line example</p>
<pre><code>$ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates</code></pre>
build chapters conf filters lib LICENSE.md Makefile
metadata.yaml README.md scripts templates</code></pre>
</div>
<p>Appendix A</p>
<h1 id="appendix-a-build-environment-notes">Appendix A: Build
Environment Notes</h1>
<h2 id="installing-pre-requisites">Installing Pre-Requisites</h2>
<h2 id="advanced">Advanced</h2>
<h3 id="changing-fonts">Changing Fonts</h3>
<p>It is possible to change fonts by editing
<code>templates/pandoc.yaml</code>, and
<code>templates\styles.css</code>, but you will have to make sure you
have the proper fonts installed on your system first.</p>
<h3 id="adding-filters">Adding Filters</h3>
<p>Custom filters can be created. This is complicated and typically
needs done in 3 places for:</p>
<ul>
<li>obsidian</li>
<li><em>LaTeX</em></li>
<li>HTML</li>
</ul>
<h1 id="design">Design</h1>
<h2 id="directory-structure">Directory Structure</h2>
<p>The <strong>basic-book-builder</strong> directory tree.</p>
<pre><code>basic-book-builder
├── build
│   ├── docx
│   ├── html
│   │   ├── conf
│   │   └── lib
│   │   ├── diag
│   │   ├── img
│   │   └── mathjax
│   ├── latex
│   ├── odt
│   └── pdf
├── chapters
├── conf
├── filters
├── lib
│   ├── citations
│   ├── diag
│   ├── img
│   └── mathjax
├── scripts
│   └── tmp
└── templates</code></pre>
<h2 id="configuration-files">Configuration Files</h2>
<p>The <strong>basic-book-builder</strong> configuration files, scripts,
and build files.</p>
<pre><code>../basic-book-builder
├── chapters
├── conf
├── filters
│   ├── callouts-html.lua
│   └── callouts.lua
├── lib
│   ├── diag
│   ├── img
│   └── zotero.bib
├── Makefile
├── metadata.yaml
├── scripts
│   ├── new-project.sh
│   ├── replace-metadata.sh
│   ├── setup-linux-deb.sh
│   └── tmp
└── templates
├── docx.yaml
├── epub_template.html
├── epub.yaml
├── frontmatter-docx.md
├── frontmatter.html
├── frontmatter-md.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── odt.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
</code></pre>
<div class="callout-caution">
<p><strong>Not Cross-platform Tested</strong></p>
<p> For Debian / ZorinOS and likely Ubuntu based systems.</p>
<p><strong>About conf</strong></p>
<p> NEVER: edit file directly in <code>conf</code>. They will be
overwritten by the build process. ### Metadata</p>
</div>
<h3 id="required">Required</h3>
<h4 id="pandoc">Pandoc</h4>
<ul>
<li>https://pandoc.org/</li>
<li><a
href="https://github.com/jgm/pandoc/releases/tag/3.8.2.1">Download</a></li>
</ul>
<blockquote>
<p><code>sudo apt install https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb</code></p>
</blockquote>
<h4 id="code-editor">Code Editor</h4>
<div class="callout-established">
<p><strong>Code Editor</strong></p>
<p> <a href="https://vscodium.com/">VSCodium</a> is recommend for
privacy (telemetry/tracking) reasons - https://vscodium.com/</p>
</div>
<p>But any text editor will work. #### make</p>
<pre><code>sudo apt install make</code></pre>
<h4 id="jq-and-yq">jq and yq</h4>
<pre><code>sudo apt install jq yq</code></pre>
<h4 id="texlive">texlive</h4>
<blockquote>
<p><code>sudo apt install texlive texlive-xetex texlive-latex-extra texlive-fonts-recommended texlive-fonts-extra</code></p>
</blockquote>
<h4 id="mathjax">MathJax</h4>
<ul>
<li>https://www.mathjax.org/</li>
</ul>
<pre><code>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</code></pre>
<div class="callout-caution">
<p><strong>TODO</strong></p>
<p> This need to be rolled into a setup script.</p>
</div>
<h3 id="optional">Optional</h3>
<p>The following are not strictly requires to use this book builder
template.</p>
<h4 id="obsidian">Obsidian</h4>
<div class="callout-established">
<p><strong>Highly Recommended</strong></p>
<p> Editing book chapter content in Obsidian is a very productive means
for editing Markdown source content.</p>
</div>
<ul>
<li>https://obsidian.md/</li>
<li><a
href="https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb">Deb
Package</a></li>
</ul>
<pre><code>sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb</code></pre>
<h4 id="zotero">Zotero</h4>
<div class="callout-established">
<p><strong>Highly Recommended</strong></p>
<p> If you need to managed citations and references, Zotero integration
is highly recommended.</p>
</div>
<ul>
<li>https://www.zotero.org/</li>
</ul>
<pre><code>sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/</code></pre>
<pre><code>sudo apt update</code></pre>
<pre><code>sudo apt install zotero</code></pre>
<h5 id="better-bibtex-for-zotero">Better BibTex for Zotero</h5>
<p>Install the Better BibTex Plugin for Zotero - Zotero &gt; Tool &gt;
Plugins</p>
<h5 id="export-citations.bib">Export citations.bib</h5>
<ul>
<li>Zotero &gt; File &gt; Export Library &gt; Format: Better BibTeX</li>
<li><label><input type="checkbox" />Keep Updated</label></li>
<li><label><input type="checkbox" />Save to:
~/Documents/Lib/zotero.bib</label></li>
<li><label><input type="checkbox" />Symlink your
~/Documents/Lib/Citations.bib to
basic-book-builder/lib/zotero.bib</label></li>
</ul>
<h5 id="zotero-connector-browser-plugin">Zotero Connector Browser
Plugin</h5>
<ul>
<li>https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc</li>
</ul>
<p>Provides you the ability to auto add Web resources to your Zotero
citation database.</p>
<h4 id="lmodern">lmodern</h4>
<pre><code>sudo apt install lmodern</code></pre>
<h4 id="epubcheck">epubcheck</h4>
<pre><code>sudo apt install epubcheck</code></pre>
<h4 id="foliate">foliate</h4>
<p>An EPub Reader</p>
<ul>
<li>https://johnfactotum.github.io/foliate/</li>
</ul>
<pre><code>sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb</code></pre>
<h4 id="calibre">calibre</h4>
<p>An EPub Reader</p>
<ul>
<li>https://calibre-ebook.com</li>
</ul>
<pre><code>sudo apt install calibre</code></pre>
<h2 id="editing-the-configuration">Editing the Configuration</h2>
<p>Update the <code>metadata.yaml</code> file to globally configure your
document title and other metadata. Edit this file to control your
document title, author, etc.</p>
<h3 id="pandoc-main-config">Pandoc Main Config</h3>
<p>Update the <code>input-files:</code> section of
<code>templates/pandoc.yaml</code> to control what chapter source files
are in which order in your document.</p>
<pre><code># pandoc.yaml
input-files:
# - chapters/Preface.md
- chapters/00_Introduction.md
- chapters/01_Getting_Started.md
- chapters/02_Usage.md
- chapters/03_Features.md
- chapters/Appendix.md
- chapters/AppendixA.md
# - chapters/AppendixB.md
- chapters/Glossary.md
- chapters/Index.md
- chapters/Bibliography.md</code></pre>
<h2 id="build-workflow">Build Workflow</h2>
<p>For a PDF Build:</p>
<pre><code>make pdf</code></pre>
<p>will build dependencies on these file:</p>
<ol type="1">
<li>Makefile</li>
<li>conf/pandoc.yaml</li>
<li>conf/pdf.yaml</li>
<li>lib/zotero.bib</li>
<li>chapters/*.md</li>
</ol>
<p>NOTE: the <code>Makefile</code> will copy
<code>templates/*.yaml</code> to <code>conf/*.yaml</code>.
<strong>Never</strong> edit <code>conf/*</code>directly.</p>
<h1 class="unnumbered" id="glossary-1">Glossary</h1>
<table>
<colgroup>

View File

@ -22,133 +22,107 @@
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{introduction}{{1}{1}{Introduction}{chapter.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {1.0.1}Workflow}{1}{subsection.1.0.1}\protected@file@percent }
\newlabel{workflow}{{1.0.1}{1}{Workflow}{subsection.1.0.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{getting-started}{{2}{2}{Getting Started}{chapter.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Cloning the Basic Book Builder}{2}{section.2.1}\protected@file@percent }
\newlabel{cloning-the-basic-book-builder}{{2.1}{2}{Cloning the Basic Book Builder}{section.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.1}Clone the Basic Book Builder}{2}{section.2.1}\protected@file@percent }
\newlabel{clone-the-basic-book-builder}{{2.1}{2}{Clone the Basic Book Builder}{section.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}\protected@file@percent }
\newlabel{setting-up-build-environment}{{2.2}{2}{Setting Up Build Environment}{section.2.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Testing}{2}{section.2.3}\protected@file@percent }
\newlabel{testing}{{2.3}{2}{Testing}{section.2.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.2.1}Non deb systems}{3}{subsection.2.2.1}\protected@file@percent }
\newlabel{non-deb-systems}{{2.2.1}{3}{Non deb systems}{subsection.2.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.3}Testing}{3}{section.2.3}\protected@file@percent }
\newlabel{testing}{{2.3}{3}{Testing}{section.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}\protected@file@percent }
\newlabel{creating-a-new-project}{{2.4}{3}{Creating a New Project}{section.2.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.4.1}Zotero Configuration (Optional)}{3}{subsection.2.4.1}\protected@file@percent }
\newlabel{zotero-configuration-optional}{{2.4.1}{3}{Zotero Configuration (Optional)}{subsection.2.4.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}\protected@file@percent }
\newlabel{building}{{2.5}{4}{Building}{section.2.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.1}PDF}{4}{subsection.2.5.1}\protected@file@percent }
\newlabel{pdf}{{2.5.1}{4}{PDF}{subsection.2.5.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.2}HTML}{4}{subsection.2.5.2}\protected@file@percent }
\newlabel{html}{{2.5.2}{4}{HTML}{subsection.2.5.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.3}DocX}{4}{subsection.2.5.3}\protected@file@percent }
\newlabel{docx}{{2.5.3}{4}{DocX}{subsection.2.5.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.4}ODT}{4}{subsection.2.5.4}\protected@file@percent }
\newlabel{odt}{{2.5.4}{4}{ODT}{subsection.2.5.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {2.5.5}Make All}{4}{subsection.2.5.5}\protected@file@percent }
\newlabel{make-all}{{2.5.5}{4}{Make All}{subsection.2.5.5}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {3}Features}{5}{chapter.3}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{usage}{{3}{4}{Usage}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}\protected@file@percent }
\newlabel{creating-a-project}{{3.1}{4}{Creating a Project}{section.3.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}\protected@file@percent }
\newlabel{editing-content}{{3.2}{4}{Editing Content}{section.3.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}\protected@file@percent }
\newlabel{building}{{3.3}{4}{Building}{section.3.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}\protected@file@percent }
\newlabel{pdf}{{3.3.1}{4}{PDF}{subsection.3.3.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}\protected@file@percent }
\newlabel{html}{{3.3.2}{5}{HTML}{subsection.3.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}\protected@file@percent }
\newlabel{docx}{{3.3.3}{5}{DocX}{subsection.3.3.3}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}\protected@file@percent }
\newlabel{odt}{{3.3.4}{5}{ODT}{subsection.3.3.4}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}\protected@file@percent }
\newlabel{make-all}{{3.3.5}{5}{Make All}{subsection.3.3.5}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}\protected@file@percent }
\newlabel{features}{{3}{5}{Features}{chapter.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}\protected@file@percent }
\newlabel{metadata}{{3.1}{5}{Metadata}{section.3.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}\protected@file@percent }
\newlabel{front-matter}{{3.2}{5}{Front-matter}{section.3.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}\protected@file@percent }
\newlabel{meta-data-page}{{3.2.1}{5}{Meta Data Page}{subsection.3.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}\protected@file@percent }
\newlabel{cover-illustration}{{3.2.2}{5}{Cover Illustration}{subsection.3.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}\protected@file@percent }
\newlabel{dedication}{{3.2.3}{6}{Dedication}{subsection.3.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}\protected@file@percent }
\newlabel{table-of-contents}{{3.3}{6}{Table of Contents}{section.3.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}\protected@file@percent }
\newlabel{chapters}{{3.4}{6}{Chapters}{section.3.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}\protected@file@percent }
\newlabel{appendixes}{{3.5}{6}{Appendixes}{section.3.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.6}Glossary}{6}{section.3.6}\protected@file@percent }
\newlabel{glossary}{{3.6}{6}{Glossary}{section.3.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.7}Index}{6}{section.3.7}\protected@file@percent }
\newlabel{index}{{3.7}{6}{Index}{section.3.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.7.1}Markdown Indexes}{6}{subsection.3.7.1}\protected@file@percent }
\newlabel{markdown-indexes}{{3.7.1}{6}{Markdown Indexes}{subsection.3.7.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.8}Bibliography}{7}{section.3.8}\protected@file@percent }
\newlabel{bibliography}{{3.8}{7}{Bibliography}{section.3.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.1}Zotero Integration}{7}{subsection.3.8.1}\protected@file@percent }
\newlabel{zotero-integration}{{3.8.1}{7}{Zotero Integration}{subsection.3.8.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.8.2}Obsidian Citations}{7}{subsection.3.8.2}\protected@file@percent }
\newlabel{obsidian-citations}{{3.8.2}{7}{Obsidian Citations}{subsection.3.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.9}Images}{7}{section.3.9}\protected@file@percent }
\newlabel{images}{{3.9}{7}{Images}{section.3.9}{}}
\@writefile{lof}{\contentsline {figure}{\numberline {3.1}{\ignorespaces ACEP}}{7}{figure.3.1}\protected@file@percent }
\@writefile{toc}{\contentsline {section}{\numberline {3.10}\emph {LaTeX} Equations}{7}{section.3.10}\protected@file@percent }
\newlabel{latex-equations}{{3.10}{7}{\texorpdfstring {\emph {LaTeX} Equations}{LaTeX Equations}}{section.3.10}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.1}Left Justified / Inline}{7}{subsection.3.10.1}\protected@file@percent }
\newlabel{left-justified-inline}{{3.10.1}{7}{Left Justified / Inline}{subsection.3.10.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.10.2}Centered}{8}{subsection.3.10.2}\protected@file@percent }
\newlabel{centered}{{3.10.2}{8}{Centered}{subsection.3.10.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.11}Custom Markdown}{8}{section.3.11}\protected@file@percent }
\newlabel{custom-markdown}{{3.11}{8}{Custom Markdown}{section.3.11}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.11.1}Call-outs}{8}{subsection.3.11.1}\protected@file@percent }
\newlabel{call-outs}{{3.11.1}{8}{Call-outs}{subsection.3.11.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {3.12}Advanced}{11}{section.3.12}\protected@file@percent }
\newlabel{advanced}{{3.12}{11}{Advanced}{section.3.12}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.1}Changing Fonts}{11}{subsection.3.12.1}\protected@file@percent }
\newlabel{changing-fonts}{{3.12.1}{11}{Changing Fonts}{subsection.3.12.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {3.12.2}Adding Filters}{11}{subsection.3.12.2}\protected@file@percent }
\newlabel{adding-filters}{{3.12.2}{11}{Adding Filters}{subsection.3.12.2}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {4}Design}{12}{chapter.4}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{features}{{4}{6}{Features}{chapter.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}\protected@file@percent }
\newlabel{metadata}{{4.1}{6}{Metadata}{section.4.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}\protected@file@percent }
\newlabel{front-matter}{{4.2}{6}{Front-matter}{section.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}\protected@file@percent }
\newlabel{meta-data-page}{{4.2.1}{6}{Meta Data Page}{subsection.4.2.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}\protected@file@percent }
\newlabel{cover-illustration}{{4.2.2}{6}{Cover Illustration}{subsection.4.2.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.3}Dedication}{7}{subsection.4.2.3}\protected@file@percent }
\newlabel{dedication}{{4.2.3}{7}{Dedication}{subsection.4.2.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.3}Chapters}{7}{section.4.3}\protected@file@percent }
\newlabel{chapters}{{4.3}{7}{Chapters}{section.4.3}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.4}Appendixes}{7}{section.4.4}\protected@file@percent }
\newlabel{appendixes}{{4.4}{7}{Appendixes}{section.4.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.5}Glossary}{7}{section.4.5}\protected@file@percent }
\newlabel{glossary}{{4.5}{7}{Glossary}{section.4.5}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.6}Index}{7}{section.4.6}\protected@file@percent }
\newlabel{index}{{4.6}{7}{Index}{section.4.6}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.6.1}Markdown Indexes}{7}{subsection.4.6.1}\protected@file@percent }
\newlabel{markdown-indexes}{{4.6.1}{7}{Markdown Indexes}{subsection.4.6.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.7}Bibliography}{7}{section.4.7}\protected@file@percent }
\newlabel{bibliography}{{4.7}{7}{Bibliography}{section.4.7}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.1}Zotero Integration}{7}{subsection.4.7.1}\protected@file@percent }
\newlabel{zotero-integration}{{4.7.1}{7}{Zotero Integration}{subsection.4.7.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.7.2}Obsidian Citations}{8}{subsection.4.7.2}\protected@file@percent }
\newlabel{obsidian-citations}{{4.7.2}{8}{Obsidian Citations}{subsection.4.7.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.8}Mathjax Equations}{8}{section.4.8}\protected@file@percent }
\newlabel{mathjax-equations}{{4.8}{8}{Mathjax Equations}{section.4.8}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8.1}Left Justified / Inline}{8}{subsection.4.8.1}\protected@file@percent }
\newlabel{left-justified-inline}{{4.8.1}{8}{Left Justified / Inline}{subsection.4.8.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.8.2}Centered}{8}{subsection.4.8.2}\protected@file@percent }
\newlabel{centered}{{4.8.2}{8}{Centered}{subsection.4.8.2}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.9}Custom Markdown}{8}{section.4.9}\protected@file@percent }
\newlabel{custom-markdown}{{4.9}{8}{Custom Markdown}{section.4.9}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.9.1}Call-outs}{8}{subsection.4.9.1}\protected@file@percent }
\newlabel{call-outs}{{4.9.1}{8}{Call-outs}{subsection.4.9.1}{}}
\@writefile{toc}{\contentsline {chapter}{\numberline {A}Appendix A: Build Environment Notes}{12}{appendix.A}\protected@file@percent }
\@writefile{lof}{\addvspace {10\p@ }}
\@writefile{lot}{\addvspace {10\p@ }}
\newlabel{appendix-a-build-environment-notes}{{A}{12}{Appendix A: Build Environment Notes}{appendix.A}{}}
\@writefile{toc}{\contentsline {section}{\numberline {A.1}Installing Pre-Requisites}{12}{section.A.1}\protected@file@percent }
\newlabel{installing-pre-requisites}{{A.1}{12}{Installing Pre-Requisites}{section.A.1}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.1}Required}{12}{subsection.A.1.1}\protected@file@percent }
\newlabel{required}{{A.1.1}{12}{Required}{subsection.A.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.1}Pandoc}{12}{subsubsection.A.1.1.1}\protected@file@percent }
\newlabel{pandoc}{{A.1.1.1}{12}{Pandoc}{subsubsection.A.1.1.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.2}Code Editor}{12}{subsubsection.A.1.1.2}\protected@file@percent }
\newlabel{code-editor}{{A.1.1.2}{12}{Code Editor}{subsubsection.A.1.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.3}jq and yq}{12}{subsubsection.A.1.1.3}\protected@file@percent }
\newlabel{jq-and-yq}{{A.1.1.3}{12}{jq and yq}{subsubsection.A.1.1.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.4}texlive}{12}{subsubsection.A.1.1.4}\protected@file@percent }
\newlabel{texlive}{{A.1.1.4}{12}{texlive}{subsubsection.A.1.1.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.1.5}MathJax}{13}{subsubsection.A.1.1.5}\protected@file@percent }
\newlabel{mathjax}{{A.1.1.5}{13}{MathJax}{subsubsection.A.1.1.5}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {A.1.2}Optional}{13}{subsection.A.1.2}\protected@file@percent }
\newlabel{optional}{{A.1.2}{13}{Optional}{subsection.A.1.2}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.1}Obsidian}{13}{subsubsection.A.1.2.1}\protected@file@percent }
\newlabel{obsidian}{{A.1.2.1}{13}{Obsidian}{subsubsection.A.1.2.1}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.2}Zotero}{13}{subsubsection.A.1.2.2}\protected@file@percent }
\newlabel{zotero}{{A.1.2.2}{13}{Zotero}{subsubsection.A.1.2.2}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.1}Better BibTex for Zotero}{14}{paragraph.A.1.2.2.1}\protected@file@percent }
\newlabel{better-bibtex-for-zotero}{{A.1.2.2.1}{14}{Better BibTex for Zotero}{paragraph.A.1.2.2.1}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.2}Export citations.bib}{14}{paragraph.A.1.2.2.2}\protected@file@percent }
\newlabel{export-citations.bib}{{A.1.2.2.2}{14}{Export citations.bib}{paragraph.A.1.2.2.2}{}}
\@writefile{toc}{\contentsline {paragraph}{\numberline {A.1.2.2.3}Zotero Connector Browser Plugin}{14}{paragraph.A.1.2.2.3}\protected@file@percent }
\newlabel{zotero-connector-browser-plugin}{{A.1.2.2.3}{14}{Zotero Connector Browser Plugin}{paragraph.A.1.2.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.3}lmodern}{14}{subsubsection.A.1.2.3}\protected@file@percent }
\newlabel{lmodern}{{A.1.2.3}{14}{lmodern}{subsubsection.A.1.2.3}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.4}epubcheck}{14}{subsubsection.A.1.2.4}\protected@file@percent }
\newlabel{epubcheck}{{A.1.2.4}{14}{epubcheck}{subsubsection.A.1.2.4}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.5}foliate}{14}{subsubsection.A.1.2.5}\protected@file@percent }
\newlabel{foliate}{{A.1.2.5}{14}{foliate}{subsubsection.A.1.2.5}{}}
\@writefile{toc}{\contentsline {subsubsection}{\numberline {A.1.2.6}calibre}{14}{subsubsection.A.1.2.6}\protected@file@percent }
\newlabel{calibre}{{A.1.2.6}{14}{calibre}{subsubsection.A.1.2.6}{}}
\@writefile{toc}{\contentsline {section}{\numberline {A.2}Editing the Configuration}{14}{section.A.2}\protected@file@percent }
\newlabel{editing-the-configuration}{{A.2}{14}{Editing the Configuration}{section.A.2}{}}
\newlabel{design}{{4}{12}{Design}{chapter.4}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}\protected@file@percent }
\newlabel{directory-structure}{{4.1}{12}{Directory Structure}{section.4.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}\protected@file@percent }
\newlabel{configuration-files}{{4.2}{12}{Configuration Files}{section.4.2}{}}
\@writefile{toc}{\contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}\protected@file@percent }
\newlabel{pandoc-main-config}{{4.2.1}{14}{Pandoc Main Config}{subsection.4.2.1}{}}
\@writefile{toc}{\contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}\protected@file@percent }
\newlabel{build-workflow}{{4.3}{14}{Build Workflow}{section.4.3}{}}
\gdef \LT@i {\LT@entry
{1}{86.68152pt}\LT@entry
{1}{383.07349pt}}
\newlabel{glossary-1}{{A.2}{15}{Glossary}{appendix*.2}{}}
\@writefile{toc}{\contentsline {chapter}{Glossary}{15}{appendix*.2}\protected@file@percent }
\@writefile{toc}{\contentsline {chapter}{Index}{17}{appendix*.3}\protected@file@percent }
\newlabel{glossary-1}{{4.3}{15}{Glossary}{chapter*.2}{}}
\@writefile{toc}{\contentsline {chapter}{Glossary}{15}{chapter*.2}\protected@file@percent }
\@writefile{toc}{\contentsline {chapter}{Index}{17}{chapter*.3}\protected@file@percent }
\bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext }
\bibcite{ref-JohnHaverlackACEP}{\citeproctext }
\bibcite{ref-PandocIndex}{\citeproctext }
\bibcite{ref-JehaverlackBasicbookbuilderPandoca}{\citeproctext }
\bibcite{ref-JohnHaverlackACEP}{\citeproctext }
\bibcite{ref-PandocIndex}{\citeproctext }
\newlabel{bibliography-1}{{A.2}{19}{Bibliography}{appendix*.4}{}}
\@writefile{toc}{\contentsline {chapter}{Bibliography}{19}{appendix*.4}\protected@file@percent }
\newlabel{refs}{{A.2}{19}{Bibliography}{section*.5}{}}
\newlabel{bibliography-1}{{4.3}{19}{Bibliography}{chapter*.4}{}}
\@writefile{toc}{\contentsline {chapter}{Bibliography}{19}{chapter*.4}\protected@file@percent }
\newlabel{refs}{{4.3}{19}{Bibliography}{section*.5}{}}
\gdef \@abspage@last{24}

View File

@ -1,4 +1,4 @@
This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022/Debian) (preloaded format=xelatex 2025.11.6) 5 FEB 2026 15:41
This is XeTeX, Version 3.141592653-2.6-0.999994 (TeX Live 2022/Debian) (preloaded format=xelatex 2025.11.6) 5 FEB 2026 17:35
entering extended mode
restricted \write18 enabled.
file:line:error style messages enabled.
@ -1347,18 +1347,7 @@ File: bkm-dvipdfm.def 2020-11-06 v1.29 bookmark driver for dvipdfm (HO)
))
Package hyperref Info: Option `colorlinks' set `true' on input line 306.
(./basic-book-builder.aux
LaTeX Warning: Label `ref-JehaverlackBasicbookbuilderPandoca' multiply defined.
LaTeX Warning: Label `ref-JohnHaverlackACEP' multiply defined.
LaTeX Warning: Label `ref-PandocIndex' multiply defined.
)
(./basic-book-builder.aux)
\openout1 = `basic-book-builder.aux'.
LaTeX Font Info: Checking defaults for OML/cmm/m/it on input line 311.
@ -1757,104 +1746,77 @@ LaTeX Font Info: Font shape `TU/NotoSerif(0)/b/n' will be
[2]
Chapter 1.
LaTeX Font Info: Font shape `TU/NotoSansMono(0)/m/n' will be
(Font) scaled to size 12.0pt on input line 463.
[1
]
Chapter 2.
LaTeX Font Info: Font shape `TU/NotoSansMono(0)/m/n' will be
(Font) scaled to size 12.0pt on input line 450.
Overfull \hbox (10.34296pt too wide) in paragraph at lines 451--451
Overfull \hbox (10.34296pt too wide) in paragraph at lines 485--485
[]\TU/NotoSansMono(0)/m/n/12 git clone https://github.com/jehaverlack/basic-boo
k-builder.git[]
[]
[2
] [3]
Chapter 3.
[4
Underfull \vbox (badness 2644) has occurred while \output is active []
] [5]
Chapter 4.
[6
[2
] [7] [8] [9] [10]
Overfull \hbox (262.34303pt too wide) in paragraph at lines 862--862
[]\TU/NotoSansMono(0)/m/n/12 build chapters conf filters lib LICENSE.md M
akefile metadata.yaml >README.md scripts templates[]
]
Underfull \hbox (badness 10000) in paragraph at lines 539--542
[]\TU/NotoSerif(0)/m/n/12 You do not want to edit your new project document in
the
[]
[3] [4]
Chapter 3.
[5
Overfull \hbox (255.14304pt too wide) in paragraph at lines 875--875
[]\TU/NotoSansMono(0)/m/n/12 build chapters conf filters lib LICENSE.md M
akefile metadata.yaml README.md scripts templates[]
]
Overfull \hbox (19.09433pt too wide) in paragraph at lines 687--690
\TU/NotoSerif(0)/m/n/12 The table of contents is auto generated. But can be dis
abled in \TU/NotoSansMono(0)/m/n/12 template\pandoc.yaml
[]
[6]
File: lib/img/ACEPLogo.png Graphic file (type bmp)
<lib/img/ACEPLogo.png>
LaTeX Font Info: Font shape `TU/NotoSerif(0)/b/it' will be
(Font) scaled to size 17.28pt on input line 746.
[7] [8] [9] [10]
Overfull \hbox (71.729pt too wide) in paragraph at lines 945--949
\TU/NotoSerif(0)/m/n/12 It is possible to change fonts by editing \TU/NotoSansM
ono(0)/m/n/12 templates/pandoc.yaml\TU/NotoSerif(0)/m/n/12 , and \TU/NotoSansMo
no(0)/m/n/12 templates\styles.css\TU/NotoSerif(0)/m/n/12 ,
[]
[11]
Appendix A.
Overfull \hbox (12.85075pt too wide) in paragraph at lines 885--885
|\TU/NotoSerif(0)/b/n/24.88 Appendix A: Build Environment Notes|
[]
Overfull \hbox (295.84503pt too wide) in paragraph at lines 906--907
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/jgm/pandoc/rel
eases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb
[]
Underfull \hbox (badness 10000) in paragraph at lines 912--914
[][][]\TU/NotoSerif(0)/m/n/12 VSCodium[][] is recommend for privacy (telemetry/
tracking) reasons -
[]
Chapter 4.
[12
]
Overfull \hbox (358.24503pt too wide) in paragraph at lines 975--975
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/obsidianmd/obs
idian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb[]
[]
[13]
Overfull \hbox (12.02498pt too wide) in paragraph at lines 1020--1022
[]\TU/NotoSerif(0)/m/n/12 Symlink your ~/Documents/Lib/Citations.bib to basic-b
ook-builder/lib/zotero.bib
[]
Overfull \hbox (107.64897pt too wide) in paragraph at lines 1030--1031
[]\TU/NotoSerif(0)/m/n/12 https://chromewebstore.google.com/detail/zotero-conne
ctor/ekhagklcjbdpajgpjgmbionohlpdbjgc
[]
Overfull \hbox (430.245pt too wide) in paragraph at lines 1059--1059
[]\TU/NotoSansMono(0)/m/n/12 sudo apt install https://github.com/johnfactotum/f
oliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb[]
[]
Underfull \vbox (badness 10000) has occurred while \output is active []
[13]
[14]
Underfull \hbox (badness 10000) in alignment at lines 1086--1094
Underfull \hbox (badness 10000) in alignment at lines 1106--1114
[] []
[]
Underfull \hbox (badness 10000) in alignment at lines 1094--1096
Underfull \hbox (badness 10000) in alignment at lines 1114--1116
[] []
[]
Overfull \hbox (1.68248pt too wide) in paragraph at lines 1100--1100
Overfull \hbox (1.68248pt too wide) in paragraph at lines 1120--1120
[]|\TU/NotoSerif(0)/b/n/12 Bibliography|
[]
Underfull \hbox (badness 10000) in alignment at lines 1096--1148
Underfull \hbox (badness 10000) in alignment at lines 1116--1168
[] []
[]
@ -1866,13 +1828,7 @@ Underfull \hbox (badness 10000) in alignment at lines 1096--1148
] [18
]
Underfull \hbox (badness 3977) in paragraph at lines 1183--1185
[]\TU/NotoSerif(0)/m/it/12 John Haverlack | ACEP\TU/NotoSerif(0)/m/n/12 . n.d.
Https://www.uaf.edu/acep/about/our-team/john-
[]
Underfull \hbox (badness 3977) in paragraph at lines 1195--1197
Underfull \hbox (badness 3977) in paragraph at lines 1203--1205
[]\TU/NotoSerif(0)/m/it/12 John Haverlack | ACEP\TU/NotoSerif(0)/m/n/12 . n.d.
Https://www.uaf.edu/acep/about/our-team/john-
[]
@ -1881,18 +1837,14 @@ Https://www.uaf.edu/acep/about/our-team/john-
] [20
] (./basic-book-builder.aux)
LaTeX Warning: There were multiply-defined labels.
)
] (./basic-book-builder.aux) )
Here is how much of TeX's memory you used:
36437 strings out of 478775
750795 string characters out of 5850945
36434 strings out of 478775
751025 string characters out of 5850945
1859991 words of memory out of 5000000
55860 multiletter control sequences out of 15000+600000
516036 words of font info for 92 fonts, out of 8000000 for 9000
55855 multiletter control sequences out of 15000+600000
516044 words of font info for 93 fonts, out of 8000000 for 9000
14 hyphenation exceptions out of 8191
90i,11n,122p,1207b,959s stack positions out of 10000i,1000n,20000p,200000b,200000s
90i,12n,122p,1207b,1051s stack positions out of 10000i,1000n,20000p,200000b,200000s
Output written on basic-book-builder.pdf (24 pages).

Binary file not shown.

View File

@ -274,7 +274,7 @@
\fancypagestyle{plain}{%
\fancyhf{}%
\fancyhead[C]{\leftmark} % Chapter title
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles} % Book title
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles.} % Book title
\rfoot{\thepage} % Page number
\renewcommand{\headrulewidth}{0pt}
\renewcommand{\footrulewidth}{0pt}
@ -288,7 +288,7 @@
\fancyhead[C]{\leftmark} % Chapter title (centered)
% Footer
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles} % Book title
\cfoot{Basic Book Builder: A Pandoc build process for books, docs and articles.} % Book title
\rfoot{\thepage} % Page number
% Line rules
@ -321,7 +321,7 @@
{\Huge\bfseries Basic Book Builder \par}
\vspace{0.4cm}
{\Large A Pandoc build process for books, docs and articles \par}
{\Large A Pandoc build process for books, docs and articles. \par}
\vspace{1.2cm}
\includegraphics[width=0.5\textwidth]{lib/img/UAF-ACEP.png}
@ -338,14 +338,14 @@
{\Large\bfseries Basic Book Builder \par}
\vspace{0.2cm}
{\normalsize\textit{A Pandoc build process for books, docs and articles}\par}
{\normalsize\textit{A Pandoc build process for books, docs and articles.}\par}
\vspace{0.4cm}
\renewcommand{\arraystretch}{1.3} % row spacing
\setlength{\tabcolsep}{8pt} % column padding
\begin{tabular}{@{}p{0.28\textwidth}p{0.65\textwidth}@{}}
\textbf{Author:} & John Haverlack \\
\textbf{Version:} & 1.2.2 \\
\textbf{Version:} & 1.2.3 \\
\textbf{Date:} & 2026-02-05 \\
\textbf{Affiliation:} & Alaska Center for Energy and Power \\
\textbf{Institution:} & University of Alaska Fairbanks \\
@ -428,12 +428,46 @@ Licensed under the Creative Commons Attribution-NoDerivatives 4.0 International
\mainmatter
\chapter{Introduction}\label{introduction}
This is a basic book (or article / document) builder template based on a
This is a \textbf{basic book builder} template is based on a
Pandoc(\citeproc{ref-PandocIndex}{\emph{Pandoc - Index},
n.d.})\index{Pandoc} 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.
n.d.})\index{Pandoc} + Makefile build process in conjunction Obsidian to
edit content and Zotero to manage citation, to generate multiple format
of the document including:
\begin{itemize}
\tightlist
\item
PDF
\item
HTML
\item
\emph{LaTeX}
\item
Markdown
\item
ODT
\item
DOCX
\item
Epub
\end{itemize}
\subsection{Workflow}\label{workflow}
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
Create a new project
\item
Initialize \texttt{metadata.yaml} with title, copyright, author, etc.
\item
Customize \texttt{input-files:} in \texttt{pandoc.yaml}
\item
Edit \texttt{chapters} Markdown ``conent'' files using Obidian
\item
Build your document
\end{enumerate}
This \textbf{basic book
builder}(\citeproc{ref-JehaverlackBasicbookbuilderPandoca}{\emph{Jehaverlack/Basic-Book-Builder},
@ -443,8 +477,8 @@ Haverlack.(\citeproc{ref-JohnHaverlackACEP}{\emph{John {Haverlack}
\chapter{Getting Started}\label{getting-started}
\section{Cloning the Basic Book
Builder}\label{cloning-the-basic-book-builder}
\section{Clone the Basic Book
Builder}\label{clone-the-basic-book-builder}
\begin{clibox}[Clone the repository]
\begin{verbatim}
@ -464,10 +498,17 @@ cd basic-book-builder
Environment}\label{setting-up-build-environment}
\begin{cautionbox}[~Debian Linux]
This script only support Debian based Linux system (Debian, Ubunutu,
Zorin, etc) This script has not been widely tested across platforms
This script only support Debian based Linux system (e.g Debian, Ubuntu,
Zorin). And this script will install several ATP packages on your
system.
\end{cautionbox}
\begin{dangerbox}[Warning]
This script \textbf{has not} been widely tested across many platforms
\end{dangerbox}
To initialize your systems build environment run:
\begin{clibox}[Setup Build Environment]
\begin{verbatim}
./scripts/setup-linux-deb.sh
@ -475,13 +516,15 @@ Zorin, etc) This script has not been widely tested across platforms
\end{clibox}
\subsection{Non deb systems}\label{non-deb-systems}
For more information on setting up the build environment for your system
see Appendix A.
see: \textbf{TBD: NEEDS DOCUMENTED}.
\section{Testing}\label{testing}
If you can build all format for the \textbf{Basic Book Build} then you
have a working build environment.
Once you have set up your build environment, you test by building the
\textbf{basic book builder}.
\begin{clibox}[Testing Build Environment]
\begin{verbatim}
@ -492,66 +535,43 @@ make all
\section{Creating a New Project}\label{creating-a-new-project}
\subsection{Zotero Configuration
(Optional)}\label{zotero-configuration-optional}
\begin{proposedbox}[Tip]
You do not want to edit your new project document in the
\texttt{basic-book-builder} directory. You will want to create a
\textbf{new project} for your document based on this template.
\end{proposedbox}
\chapter{Usage}\label{usage}
\begin{clibox}[Create a new project]
\begin{verbatim}
./scripts/new-project.sh <NEW_PROJECT_DIR>
\end{verbatim}
\section{Creating a Project}\label{creating-a-project}
\end{clibox}
To create a new Project based on the Basic Book Builder template:
\begin{verbatim}
cd <NEW_PROJECT_DIR>
\end{verbatim}
Update your project configuration:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
Run the new-project.sh script.
Edit: \texttt{metadata.yaml}, for title, author, etc
\item
Edit: \texttt{templates/pandoc.yaml}
\item
Open: \texttt{\textless{}NEW\_PROJECT\_DIR\textgreater{}} with
Obsidian, and edit \texttt{chapters} documents.
\item
Build: \texttt{make\ pdf}
\end{enumerate}
\begin{verbatim}
./scripts/new-project.sh <PATH_TO_PROJECT>
\end{verbatim}
\begin{itemize}
\tightlist
\item
should be outside of the \textbf{basic-book-builder} directory
\end{itemize}
\begin{verbatim}
cd <PATH_TO_PROJECT>
\end{verbatim}
Update:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
\texttt{metadata.yaml}
\item
\texttt{templates/pandoc.yaml}
\end{enumerate}
\begin{quote}
{[}!info{]} Suggestion Create a git repository to version control your
new content.
\end{quote}
\section{Editing Content}\label{editing-content}
Edit your source content Markdown under the \texttt{chapters} directory.
\textbf{Optional}
\begin{itemize}
\tightlist
\item
Open your \texttt{\textless{}PATH\_TO\_PROJECT\textgreater{}}
directory as an Obsidian vault.
\item
Edit your Markdown with Obsidian
\end{itemize}
\begin{warningbox}[Warning]
\texttt{\textless{}NEW\_PROJECT\_DIR\textgreater{}} should be outside of
the \textbf{basic-book-builder} directory
\end{warningbox}
\section{Building}\label{building}
@ -602,15 +622,22 @@ make all
\chapter{Features}\label{features}
The basic book builder template integrates feature from many systems
including Pandoc, MathJax, Obsidian, and Zotero. The following list
covers these features from a functional point of view.
\section{Metadata}\label{metadata}
Metadata for the project is managed in \texttt{metadata.yaml}. Edit this
file to make global changes to variables for your document. Changes here
will propagate to all format builds.
file to make \textbf{global changes} to variables for your document.
Definitions in \texttt{metadata.yaml} will propagate to all format
builds.
\section{Front-matter}\label{front-matter}
Front matter content is manged in:
Front-Matter documents control the Title Page, Metadata and other pages
before the Title of Contents. Front matter content is manged in these
files:
\begin{itemize}
\tightlist
@ -622,22 +649,16 @@ Front matter content is manged in:
\texttt{templates/frontmatter-md.html}
\end{itemize}
\begin{cautionbox}[Tip]
Unfortunately when you edit one, you need to edit the respective changes
to the other front-matter formats. \#\#\# Title Page
\end{cautionbox}
Edit the \textbf{Front-matter} files to modify the formatting of the
Title Page.
\begin{cautionbox}[Tip]
You'll need to modify the HTML / LaTex.
\end{cautionbox}
Title Page. You'll need to modify the HTML / LaTex code.
\subsection{Meta Data Page}\label{meta-data-page}
Edit the \textbf{Front-matter} files to modify the 2nd page Metadata
format.
format and fields to display.
\subsection{Cover Illustration}\label{cover-illustration}
@ -658,14 +679,26 @@ Dedication.
\begin{itemize}
\tightlist
\item
This is disabled by default \#\# Table of Contents
This is disabled by default
\end{itemize}
\section{Table of Contents}\label{table-of-contents}
The table of contents is auto generated. But can be disabled in
\texttt{template\textbackslash{}pandoc.yaml} by setting: -
\texttt{toc:\ false}
\section{Chapters}\label{chapters}
Chapter Markdown source files are located in the \texttt{chapters}
directory. Edit the \texttt{template\textbackslash{}pandoc.yaml} file to
control which chapter markdown files are in what order.
directory. To edit which chapter files are included the document:
\begin{itemize}
\tightlist
\item
Edit the \texttt{input-file:} section of the
\texttt{template\textbackslash{}pandoc.yaml}
\end{itemize}
\section{Appendixes}\label{appendixes}
@ -695,22 +728,64 @@ TBD
TBD
\section{Mathjax Equations}\label{mathjax-equations}
\section{Images}\label{images}
TBD
You can use basic Markdown Images
\begin{verbatim}
![ACEP](lib/img/ACEPLogo.png)
\end{verbatim}
\begin{figure}
\centering
\pandocbounded{\includegraphics[keepaspectratio,alt={ACEP}]{lib/img/ACEPLogo.png}}
\caption{ACEP}
\end{figure}
\section{\texorpdfstring{\emph{LaTeX}
Equations}{LaTeX Equations}}\label{latex-equations}
You can embed LaTeX equations directly in your Markdown pages.
\subsection{Left Justified / Inline}\label{left-justified-inline}
TBD
To left justify \emph{LaTex} surround the code inside single
\texttt{\$}:
\begin{codebox}[Left Justified Equation]
\begin{verbatim}
$x = \frac{1}{2}$
\end{verbatim}
\end{codebox}
\(x = \frac{1}{2}\)
\begin{codebox}[Inline]
\begin{verbatim}
Or inline, $x = \frac{1}{2}$, in a sentence.
\end{verbatim}
\end{codebox}
Or inline, \(x = \frac{1}{2}\), in a sentence.
\subsection{Centered}\label{centered}
TBD
To center justify \emph{LaTex} surround the code inside double
\texttt{\$\$}:
\begin{codebox}[Centered Equation]
\begin{verbatim}
$$x = \frac{1}{2}$$
\end{verbatim}
\end{codebox}
\[x = \frac{1}{2}\]
\section{Custom Markdown}\label{custom-markdown}
TBD
\subsection{Call-outs}\label{call-outs}
A few call-out box styles have been custom added to easily highlight
@ -748,22 +823,6 @@ A blue box
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
\begin{codebox}[Markdown Example]
\begin{verbatim}
[!info] Info Box
Same as a blue box
\end{verbatim}
\end{codebox}
Will render:
\begin{quote}
{[}!info{]} Info Box Same as a blue box
\end{quote}
\begin{center}\rule{0.5\linewidth}{0.5pt}\end{center}
\begin{codebox}[Markdown Example]
\begin{verbatim}
[!speculative] Purple Call-out Title
@ -859,7 +918,8 @@ fi
A command line example
'''
$ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml >README.md scripts templates
build chapters conf filters lib LICENSE.md Makefile
metadata.yaml >README.md scripts templates
'''
\end{verbatim}
@ -872,208 +932,168 @@ A command line example
\begin{verbatim}
$ ls
build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates
build chapters conf filters lib LICENSE.md Makefile
metadata.yaml README.md scripts templates
\end{verbatim}
\end{clibox}
\appendix
\section{Advanced}\label{advanced}
Appendix A
\subsection{Changing Fonts}\label{changing-fonts}
\chapter{Appendix A: Build Environment
Notes}\label{appendix-a-build-environment-notes}
It is possible to change fonts by editing
\texttt{templates/pandoc.yaml}, and
\texttt{templates\textbackslash{}styles.css}, but you will have to make
sure you have the proper font's installed on your system first.
\section{Installing Pre-Requisites}\label{installing-pre-requisites}
\subsection{Adding Filters}\label{adding-filters}
\begin{cautionbox}[Not Cross-platform Tested]
For Debian / ZorinOS and likely Ubuntu based systems.
Custom filters can be created. This is complicated and typically needs
done in 3 places for:
\begin{itemize}
\tightlist
\item
obsidian
\item
\emph{LaTeX}
\item
HTML
\end{itemize}
\chapter{Design}\label{design}
\section{Directory Structure}\label{directory-structure}
The \textbf{basic-book-builder} directory tree.
\begin{verbatim}
basic-book-builder
├── build
│   ├── docx
│   ├── html
│   │   ├── conf
│   │   └── lib
│   │   ├── diag
│   │   ├── img
│   │   └── mathjax
│   ├── latex
│   ├── odt
│   └── pdf
├── chapters
├── conf
├── filters
├── lib
│   ├── citations
│   ├── diag
│   ├── img
│   └── mathjax
├── scripts
│   └── tmp
└── templates
\end{verbatim}
\section{Configuration Files}\label{configuration-files}
The \textbf{basic-book-builder} configuration files, scripts, and build
files.
\begin{verbatim}
../basic-book-builder
├── chapters
├── conf
├── filters
│   ├── callouts-html.lua
│   └── callouts.lua
├── lib
│   ├── diag
│   ├── img
│   └── zotero.bib
├── Makefile
├── metadata.yaml
├── scripts
│   ├── new-project.sh
│   ├── replace-metadata.sh
│   ├── setup-linux-deb.sh
│   └── tmp
└── templates
├── docx.yaml
├── epub_template.html
├── epub.yaml
├── frontmatter-docx.md
├── frontmatter.html
├── frontmatter-md.html
├── frontmatter.tex
├── header.tex
├── html.yaml
├── latex.yaml
├── markdown.yaml
├── odt.yaml
├── pandoc.yaml
├── pdf.yaml
├── style.css
└── style_epub.css
\end{verbatim}
\begin{cautionbox}[About conf]
NEVER: edit file directly in \texttt{conf}. They will be overwritten by
the build process. \#\#\# Metadata
\end{cautionbox}
\subsection{Required}\label{required}
Update the \texttt{metadata.yaml} file to globally configure your
document title and other metadata. Edit this file to control your
document title, author, etc.
\subsubsection{Pandoc}\label{pandoc}
\subsection{Pandoc Main Config}\label{pandoc-main-config}
\begin{itemize}
Update the \texttt{input-files:} section of
\texttt{templates/pandoc.yaml} to control what chapter source files are
in which order in your document.
\begin{verbatim}
# pandoc.yaml
input-files:
# - chapters/Preface.md
- chapters/00_Introduction.md
- chapters/01_Getting_Started.md
- chapters/02_Usage.md
- chapters/03_Features.md
- chapters/Appendix.md
- chapters/AppendixA.md
# - chapters/AppendixB.md
- chapters/Glossary.md
- chapters/Index.md
- chapters/Bibliography.md
\end{verbatim}
\section{Build Workflow}\label{build-workflow}
For a PDF Build:
\begin{verbatim}
make pdf
\end{verbatim}
will build dependencies on these file:
\begin{enumerate}
\def\labelenumi{\arabic{enumi}.}
\tightlist
\item
https://pandoc.org/
Makefile
\item
\href{https://github.com/jgm/pandoc/releases/tag/3.8.2.1}{Download}
\end{itemize}
\begin{quote}
\texttt{sudo\ apt\ install\ https://github.com/jgm/pandoc/releases/download/3.8.2.1/pandoc-3.8.2.1-1-amd64.deb}
\end{quote}
\subsubsection{Code Editor}\label{code-editor}
\begin{establishedbox}[Code Editor]
\href{https://vscodium.com/}{VSCodium} is recommend for privacy
(telemetry/tracking) reasons - https://vscodium.com/
\end{establishedbox}
But any text editor will work. \#\#\#\# make
\begin{verbatim}
sudo apt install make
\end{verbatim}
\subsubsection{jq and yq}\label{jq-and-yq}
\begin{verbatim}
sudo apt install jq yq
\end{verbatim}
\subsubsection{texlive}\label{texlive}
\begin{quote}
\texttt{sudo\ apt\ install\ texlive\ texlive-xetex\ texlive-latex-extra\ texlive-fonts-recommended\ texlive-fonts-extra}
\end{quote}
\subsubsection{MathJax}\label{mathjax}
\begin{itemize}
\tightlist
conf/pandoc.yaml
\item
https://www.mathjax.org/
\end{itemize}
\begin{verbatim}
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
\end{verbatim}
\begin{cautionbox}[TODO]
This need to be rolled into a setup script.
\end{cautionbox}
\subsection{Optional}\label{optional}
The following are not strictly requires to use this book builder
template.
\subsubsection{Obsidian}\label{obsidian}
\begin{establishedbox}[Highly Recommended]
Editing book chapter content in Obsidian is a very productive means for
editing Markdown source content.
\end{establishedbox}
\begin{itemize}
\tightlist
conf/pdf.yaml
\item
https://obsidian.md/
lib/zotero.bib
\item
\href{https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb}{Deb
Package}
\end{itemize}
chapters/*.md
\end{enumerate}
\begin{verbatim}
sudo apt install https://github.com/obsidianmd/obsidian-releases/releases/download/v1.9.14/obsidian_1.9.14_amd64.deb
\end{verbatim}
\subsubsection{Zotero}\label{zotero}
\begin{establishedbox}[Highly Recommended]
If you need to managed citations and references, Zotero integration is
highly recommended.
\end{establishedbox}
\begin{itemize}
\tightlist
\item
https://www.zotero.org/
\end{itemize}
\begin{verbatim}
sudo cp ./scripts/deps/zotero.list /etc/apt/sources.list.d/
\end{verbatim}
\begin{verbatim}
sudo apt update
\end{verbatim}
\begin{verbatim}
sudo apt install zotero
\end{verbatim}
\paragraph{Better BibTex for Zotero}\label{better-bibtex-for-zotero}
Install the Better BibTex Plugin for Zotero - Zotero \textgreater{} Tool
\textgreater{} Plugins
\paragraph{Export citations.bib}\label{export-citations.bib}
\begin{itemize}
\tightlist
\item
Zotero \textgreater{} File \textgreater{} Export Library
\textgreater{} Format: Better BibTeX
\item[$\square$]
Keep Updated
\item[$\square$]
Save to: \textasciitilde/Documents/Lib/zotero.bib
\item[$\square$]
Symlink your \textasciitilde/Documents/Lib/Citations.bib to
basic-book-builder/lib/zotero.bib
\end{itemize}
\paragraph{Zotero Connector Browser
Plugin}\label{zotero-connector-browser-plugin}
\begin{itemize}
\tightlist
\item
https://chromewebstore.google.com/detail/zotero-connector/ekhagklcjbdpajgpjgmbionohlpdbjgc
\end{itemize}
Provides you the ability to auto add Web resources to your Zotero
citation database.
\subsubsection{lmodern}\label{lmodern}
\begin{verbatim}
sudo apt install lmodern
\end{verbatim}
\subsubsection{epubcheck}\label{epubcheck}
\begin{verbatim}
sudo apt install epubcheck
\end{verbatim}
\subsubsection{foliate}\label{foliate}
An EPub Reader
\begin{itemize}
\tightlist
\item
https://johnfactotum.github.io/foliate/
\end{itemize}
\begin{verbatim}
sudo apt install https://github.com/johnfactotum/foliate/releases/download/2.6.4/com.github.johnfactotum.foliate_2.6.4_all.deb
\end{verbatim}
\subsubsection{calibre}\label{calibre}
An EPub Reader
\begin{itemize}
\tightlist
\item
https://calibre-ebook.com
\end{itemize}
\begin{verbatim}
sudo apt install calibre
\end{verbatim}
\section{Editing the Configuration}\label{editing-the-configuration}
NOTE: the \texttt{Makefile} will copy \texttt{templates/*.yaml} to
\texttt{conf/*.yaml}. \textbf{Never} edit \texttt{conf/*}directly.
\backmatter
@ -1186,18 +1206,6 @@ Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
\bibitem[\citeproctext]{ref-PandocIndex}
\emph{Pandoc - Index}. n.d. Https://pandoc.org/.
\bibitem[\citeproctext]{ref-JehaverlackBasicbookbuilderPandoca}
\emph{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.
\bibitem[\citeproctext]{ref-JohnHaverlackACEP}
\emph{John {Haverlack} \textbar{} {ACEP}}. n.d.
Https://www.uaf.edu/acep/about/our-team/john-haverlack.php.
\bibitem[\citeproctext]{ref-PandocIndex}
\emph{Pandoc - Index}. n.d. Https://pandoc.org/.
\end{CSLReferences}
\backmatter

View File

@ -1,57 +1,46 @@
\contentsline {chapter}{\numberline {1}Introduction}{1}{chapter.1}%
\contentsline {subsection}{\numberline {1.0.1}Workflow}{1}{subsection.1.0.1}%
\contentsline {chapter}{\numberline {2}Getting Started}{2}{chapter.2}%
\contentsline {section}{\numberline {2.1}Cloning the Basic Book Builder}{2}{section.2.1}%
\contentsline {section}{\numberline {2.1}Clone the Basic Book Builder}{2}{section.2.1}%
\contentsline {section}{\numberline {2.2}Setting Up Build Environment}{2}{section.2.2}%
\contentsline {section}{\numberline {2.3}Testing}{2}{section.2.3}%
\contentsline {subsection}{\numberline {2.2.1}Non deb systems}{3}{subsection.2.2.1}%
\contentsline {section}{\numberline {2.3}Testing}{3}{section.2.3}%
\contentsline {section}{\numberline {2.4}Creating a New Project}{3}{section.2.4}%
\contentsline {subsection}{\numberline {2.4.1}Zotero Configuration (Optional)}{3}{subsection.2.4.1}%
\contentsline {chapter}{\numberline {3}Usage}{4}{chapter.3}%
\contentsline {section}{\numberline {3.1}Creating a Project}{4}{section.3.1}%
\contentsline {section}{\numberline {3.2}Editing Content}{4}{section.3.2}%
\contentsline {section}{\numberline {3.3}Building}{4}{section.3.3}%
\contentsline {subsection}{\numberline {3.3.1}PDF}{4}{subsection.3.3.1}%
\contentsline {subsection}{\numberline {3.3.2}HTML}{5}{subsection.3.3.2}%
\contentsline {subsection}{\numberline {3.3.3}DocX}{5}{subsection.3.3.3}%
\contentsline {subsection}{\numberline {3.3.4}ODT}{5}{subsection.3.3.4}%
\contentsline {subsection}{\numberline {3.3.5}Make All}{5}{subsection.3.3.5}%
\contentsline {chapter}{\numberline {4}Features}{6}{chapter.4}%
\contentsline {section}{\numberline {4.1}Metadata}{6}{section.4.1}%
\contentsline {section}{\numberline {4.2}Front-matter}{6}{section.4.2}%
\contentsline {subsection}{\numberline {4.2.1}Meta Data Page}{6}{subsection.4.2.1}%
\contentsline {subsection}{\numberline {4.2.2}Cover Illustration}{6}{subsection.4.2.2}%
\contentsline {subsection}{\numberline {4.2.3}Dedication}{7}{subsection.4.2.3}%
\contentsline {section}{\numberline {4.3}Chapters}{7}{section.4.3}%
\contentsline {section}{\numberline {4.4}Appendixes}{7}{section.4.4}%
\contentsline {section}{\numberline {4.5}Glossary}{7}{section.4.5}%
\contentsline {section}{\numberline {4.6}Index}{7}{section.4.6}%
\contentsline {subsection}{\numberline {4.6.1}Markdown Indexes}{7}{subsection.4.6.1}%
\contentsline {section}{\numberline {4.7}Bibliography}{7}{section.4.7}%
\contentsline {subsection}{\numberline {4.7.1}Zotero Integration}{7}{subsection.4.7.1}%
\contentsline {subsection}{\numberline {4.7.2}Obsidian Citations}{8}{subsection.4.7.2}%
\contentsline {section}{\numberline {4.8}Mathjax Equations}{8}{section.4.8}%
\contentsline {subsection}{\numberline {4.8.1}Left Justified / Inline}{8}{subsection.4.8.1}%
\contentsline {subsection}{\numberline {4.8.2}Centered}{8}{subsection.4.8.2}%
\contentsline {section}{\numberline {4.9}Custom Markdown}{8}{section.4.9}%
\contentsline {subsection}{\numberline {4.9.1}Call-outs}{8}{subsection.4.9.1}%
\contentsline {chapter}{\numberline {A}Appendix A: Build Environment Notes}{12}{appendix.A}%
\contentsline {section}{\numberline {A.1}Installing Pre-Requisites}{12}{section.A.1}%
\contentsline {subsection}{\numberline {A.1.1}Required}{12}{subsection.A.1.1}%
\contentsline {subsubsection}{\numberline {A.1.1.1}Pandoc}{12}{subsubsection.A.1.1.1}%
\contentsline {subsubsection}{\numberline {A.1.1.2}Code Editor}{12}{subsubsection.A.1.1.2}%
\contentsline {subsubsection}{\numberline {A.1.1.3}jq and yq}{12}{subsubsection.A.1.1.3}%
\contentsline {subsubsection}{\numberline {A.1.1.4}texlive}{12}{subsubsection.A.1.1.4}%
\contentsline {subsubsection}{\numberline {A.1.1.5}MathJax}{13}{subsubsection.A.1.1.5}%
\contentsline {subsection}{\numberline {A.1.2}Optional}{13}{subsection.A.1.2}%
\contentsline {subsubsection}{\numberline {A.1.2.1}Obsidian}{13}{subsubsection.A.1.2.1}%
\contentsline {subsubsection}{\numberline {A.1.2.2}Zotero}{13}{subsubsection.A.1.2.2}%
\contentsline {paragraph}{\numberline {A.1.2.2.1}Better BibTex for Zotero}{14}{paragraph.A.1.2.2.1}%
\contentsline {paragraph}{\numberline {A.1.2.2.2}Export citations.bib}{14}{paragraph.A.1.2.2.2}%
\contentsline {paragraph}{\numberline {A.1.2.2.3}Zotero Connector Browser Plugin}{14}{paragraph.A.1.2.2.3}%
\contentsline {subsubsection}{\numberline {A.1.2.3}lmodern}{14}{subsubsection.A.1.2.3}%
\contentsline {subsubsection}{\numberline {A.1.2.4}epubcheck}{14}{subsubsection.A.1.2.4}%
\contentsline {subsubsection}{\numberline {A.1.2.5}foliate}{14}{subsubsection.A.1.2.5}%
\contentsline {subsubsection}{\numberline {A.1.2.6}calibre}{14}{subsubsection.A.1.2.6}%
\contentsline {section}{\numberline {A.2}Editing the Configuration}{14}{section.A.2}%
\contentsline {chapter}{Glossary}{15}{appendix*.2}%
\contentsline {chapter}{Index}{17}{appendix*.3}%
\contentsline {chapter}{Bibliography}{19}{appendix*.4}%
\contentsline {section}{\numberline {2.5}Building}{4}{section.2.5}%
\contentsline {subsection}{\numberline {2.5.1}PDF}{4}{subsection.2.5.1}%
\contentsline {subsection}{\numberline {2.5.2}HTML}{4}{subsection.2.5.2}%
\contentsline {subsection}{\numberline {2.5.3}DocX}{4}{subsection.2.5.3}%
\contentsline {subsection}{\numberline {2.5.4}ODT}{4}{subsection.2.5.4}%
\contentsline {subsection}{\numberline {2.5.5}Make All}{4}{subsection.2.5.5}%
\contentsline {chapter}{\numberline {3}Features}{5}{chapter.3}%
\contentsline {section}{\numberline {3.1}Metadata}{5}{section.3.1}%
\contentsline {section}{\numberline {3.2}Front-matter}{5}{section.3.2}%
\contentsline {subsection}{\numberline {3.2.1}Meta Data Page}{5}{subsection.3.2.1}%
\contentsline {subsection}{\numberline {3.2.2}Cover Illustration}{5}{subsection.3.2.2}%
\contentsline {subsection}{\numberline {3.2.3}Dedication}{6}{subsection.3.2.3}%
\contentsline {section}{\numberline {3.3}Table of Contents}{6}{section.3.3}%
\contentsline {section}{\numberline {3.4}Chapters}{6}{section.3.4}%
\contentsline {section}{\numberline {3.5}Appendixes}{6}{section.3.5}%
\contentsline {section}{\numberline {3.6}Glossary}{6}{section.3.6}%
\contentsline {section}{\numberline {3.7}Index}{6}{section.3.7}%
\contentsline {subsection}{\numberline {3.7.1}Markdown Indexes}{6}{subsection.3.7.1}%
\contentsline {section}{\numberline {3.8}Bibliography}{7}{section.3.8}%
\contentsline {subsection}{\numberline {3.8.1}Zotero Integration}{7}{subsection.3.8.1}%
\contentsline {subsection}{\numberline {3.8.2}Obsidian Citations}{7}{subsection.3.8.2}%
\contentsline {section}{\numberline {3.9}Images}{7}{section.3.9}%
\contentsline {section}{\numberline {3.10}\emph {LaTeX} Equations}{7}{section.3.10}%
\contentsline {subsection}{\numberline {3.10.1}Left Justified / Inline}{7}{subsection.3.10.1}%
\contentsline {subsection}{\numberline {3.10.2}Centered}{8}{subsection.3.10.2}%
\contentsline {section}{\numberline {3.11}Custom Markdown}{8}{section.3.11}%
\contentsline {subsection}{\numberline {3.11.1}Call-outs}{8}{subsection.3.11.1}%
\contentsline {section}{\numberline {3.12}Advanced}{11}{section.3.12}%
\contentsline {subsection}{\numberline {3.12.1}Changing Fonts}{11}{subsection.3.12.1}%
\contentsline {subsection}{\numberline {3.12.2}Adding Filters}{11}{subsection.3.12.2}%
\contentsline {chapter}{\numberline {4}Design}{12}{chapter.4}%
\contentsline {section}{\numberline {4.1}Directory Structure}{12}{section.4.1}%
\contentsline {section}{\numberline {4.2}Configuration Files}{12}{section.4.2}%
\contentsline {subsection}{\numberline {4.2.1}Pandoc Main Config}{14}{subsection.4.2.1}%
\contentsline {section}{\numberline {4.3}Build Workflow}{14}{section.4.3}%
\contentsline {chapter}{Glossary}{15}{chapter*.2}%
\contentsline {chapter}{Index}{17}{chapter*.3}%
\contentsline {chapter}{Bibliography}{19}{chapter*.4}%

Binary file not shown.

Binary file not shown.

View File

@ -1,6 +1,24 @@
# Introduction
This is a basic book (or article / document) builder template based on a Pandoc[@PandocIndex]\index{Pandoc} 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.
This is a **basic book builder** template is based on a Pandoc[@PandocIndex]\index{Pandoc} + Makefile build process in conjunction Obsidian to edit content and Zotero to manage citation, to generate multiple format of the document including:
- PDF
- HTML
- *LaTeX*
- Markdown
- ODT
- DOCX
- Epub
### Workflow
1. Create a new project
2. Initialize `metadata.yaml` with title, copyright, author, etc.
3. Customize `input-files:` in `pandoc.yaml`
4. Edit `chapters` Markdown "conent" files using Obidian
5. Build your document
This **basic book builder**[@JehaverlackBasicbookbuilderPandoca] template has been curated by John Haverlack.[@JohnHaverlackACEP]

View File

@ -1,6 +1,6 @@
# Getting Started
## Cloning the Basic Book Builder
## Clone the Basic Book Builder
> [!cli] Clone the repository
@ -18,35 +18,99 @@
> [!caution] ~Debian Linux
> This script only support Debian based Linux system (Debian, Ubunutu, Zorin, etc)
> This script has not been widely tested across platforms
> This script only support Debian based Linux system (e.g Debian, Ubuntu, Zorin). And this script will install several ATP packages on your system.
> [!danger] Warning
This script **has not** been widely tested across many platforms
To initialize your systems build environment run:
> [!cli] Setup Build Environment
> ```
> ./scripts/setup-linux-deb.sh
> ```
For more information on setting up the build environment for your system see Appendix A.
### Non deb systems
For more information on setting up the build environment for your system see: **TBD: NEEDS DOCUMENTED**.
## Testing
If you can build all format for the **Basic Book Build** then you have a working build environment.
Once you have set up your build environment, you test by building the **basic book builder**.
> [!cli] Testing Build Environment
> ```
> make all
> ```
## Creating a New Project
### Zotero Configuration (Optional)
> [!proposed] Tip
> You do not want to edit your new project document in the `basic-book-builder` directory. You will want to create a **new project** for your document based on this template.
> [!cli] Create a new project
> ```
> ./scripts/new-project.sh <NEW_PROJECT_DIR>
> ```
```
cd <NEW_PROJECT_DIR>
```
Update your project configuration:
1. Edit: `metadata.yaml`, for title, author, etc
2. Edit: `templates/pandoc.yaml`
3. Open: `<NEW_PROJECT_DIR>` with Obsidian, and edit `chapters` documents.
4. Build: `make pdf`
> [!warning] Warning
> `<NEW_PROJECT_DIR>` should be outside of the **basic-book-builder** directory
## Building
### PDF
```
make pdf
```
> NOTE: Building the PDF also builds the **LaTeX** version of the book.
### HTML
```
make html
```
### DocX
```
make docx
```
> NOTE: DocX is a work in progress. Frontmatter and formatting need work.
### ODT
```
make odt
```
> NOTE: ODT is a work in progress. Frontmatter and formatting need work.
### Make All
To build all supported formats
```
make all
```

View File

@ -1,4 +1,4 @@
# Usage
# Basic Usage
## Creating a Project

View File

@ -1,30 +1,27 @@
# Features
The basic book builder template integrates feature from many systems including Pandoc, MathJax, Obsidian, and Zotero. The following list covers these features from a functional point of view.
## Metadata
Metadata for the project is managed in `metadata.yaml`. Edit this file to make global changes to variables for your document. Changes here will propagate to all format builds.
Metadata for the project is managed in `metadata.yaml`. Edit this file to make **global changes** to variables for your document. Definitions in `metadata.yaml` will propagate to all format builds.
## Front-matter
Front matter content is manged in:
Front-Matter documents control the Title Page, Metadata and other pages before the Title of Contents. Front matter content is manged in these files:
- `templates/frontmatter.tex`
- `templates/frontmatter.html`
- `templates/frontmatter-md.html`
> [!caution] Tip
Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats.
Unfortunately when you edit one, you need to edit the respective changes to the other front-matter formats.
### Title Page
Edit the **Front-matter** files to modify the formatting of the Title Page.
> [!caution] Tip
> You'll need to modify the HTML / LaTex.
Edit the **Front-matter** files to modify the formatting of the Title Page. You'll need to modify the HTML / LaTex code.
### Meta Data Page
Edit the **Front-matter** files to modify the 2nd page Metadata format.
Edit the **Front-matter** files to modify the 2nd page Metadata format and fields to display.
### Cover Illustration
@ -34,15 +31,21 @@ Edit the **Front-matter** files to optionally un-comment the Cover Art Acknowled
### Dedication
Edit the **Front-matter** files to modify un-comment the Book Dedication.
- This is disabled by default
## Table of Contents
The table of contents is auto generated. But can be disabled in `template\pandoc.yaml` by setting:
- `toc: false`
## Chapters
Chapter Markdown source files are located in the `chapters` directory. Edit the `template\pandoc.yaml` file to control which chapter markdown files are in what order.
Chapter Markdown source files are located in the `chapters` directory. To edit which chapter files are included the document:
- Edit the `input-file:` section of the `template\pandoc.yaml`
## Appendixes
@ -72,22 +75,58 @@ TBD
TBD
## Mathjax Equations
## Images
TBD
You can use basic Markdown Images
```
![ACEP](lib/img/ACEPLogo.png)
```
![ACEP](lib/img/ACEPLogo.png)
## *LaTeX* Equations
You can embed LaTeX equations directly in your Markdown pages.
### Left Justified / Inline
TBD
To left justify *LaTex* surround the code inside single `$`:
> [!code] Left Justified Equation
> ```
> $x = \frac{1}{2}$
> ```
$x = \frac{1}{2}$
> [!code] Inline
> ```
> Or inline, $x = \frac{1}{2}$, in a sentence.
> ```
Or inline, $x = \frac{1}{2}$, in a sentence.
### Centered
TBD
To center justify *LaTex* surround the code inside double `$$`:
> [!code] Centered Equation
> ```
> $$x = \frac{1}{2}$$
> ```
$$x = \frac{1}{2}$$
## Custom Markdown
TBD
### Call-outs
A few call-out box styles have been custom added to easily highlight certain types of content.
@ -118,19 +157,6 @@ Will render:
---
> [!code] Markdown Example
> ```
> [!info] Info Box
> Same as a blue box
> ```
Will render:
> [!info] Info Box
> Same as a blue box
---
> [!code] Markdown Example
> ```
> [!speculative] Purple Call-out Title
@ -210,7 +236,8 @@ Will render:
> A command line example
>'''
>$ ls
>build chapters conf filters lib LICENSE.md Makefile metadata.yaml >README.md scripts templates
>build chapters conf filters lib LICENSE.md Makefile
>metadata.yaml >README.md scripts templates
> '''
> ```
@ -220,7 +247,8 @@ Will render:
> A command line example
> ```
> $ ls
> build chapters conf filters lib LICENSE.md Makefile metadata.yaml README.md scripts templates
> build chapters conf filters lib LICENSE.md Makefile
> metadata.yaml README.md scripts templates
> ```
@ -228,11 +256,15 @@ Will render:
### Changing Fonts
TBD
It is possible to change fonts by editing `templates/pandoc.yaml`, and `templates\styles.css`, but you will have to make sure you have the proper font's installed on your system first.
### Adding Filters
TBD
Custom filters can be created. This is complicated and typically needs done in 3 places for:
- obsidian
- *LaTeX*
- HTML

View File

@ -2,6 +2,8 @@
## Directory Structure
The **basic-book-builder** directory tree.
```
basic-book-builder
├── build
@ -30,6 +32,7 @@ basic-book-builder
## Configuration Files
The **basic-book-builder** configuration files, scripts, and build files.
```
../basic-book-builder
@ -70,9 +73,11 @@ basic-book-builder
```
> [!caution] About conf
> NEVER: edit file directly in `conf`. They will be overwritten by the build process.
### Metadata
Update the `metadata.yaml` file to globally configure your document title and other metadata.
Update the `metadata.yaml` file to globally configure your document title and other metadata. Edit this file to control your document title, author, etc.
### Pandoc Main Config
@ -92,46 +97,22 @@ input-files:
- chapters/Glossary.md
- chapters/Index.md
- chapters/Bibliography.md
from: markdown+yaml_metadata_block+raw_tex
standalone: true
metadata:
mainfont: "Noto Serif"
sansfont: "Noto Sans"
monofont: "Noto Sans Mono"
# mainfont: "Libertinus Serif"
# sansfont: "Libertinus Sans"
# monofont: "DejaVu Sans Mono"
date: "" # <-- forces maketitle to exist, but blank
link-citations: true
variables:
documentclass: book # options: report, book, article
fontsize: 12pt
geometry:
- margin=1in
toc: true # ✅ Pandoc-recognized variable
toc-depth: 3 # ✅ nested inside variables
toc-title: "Contents" # ✅ controls TOC heading
numbersections: true # ✅ correct key (not number-sections)
colorlinks: true # nice PDF hyperlinks
linkcolor: blue
graphics: true
float: false
figure-latex-placement: H
# suppress-chapter: true
resource-path:
- .
- lib/img
- lib/diag
citeproc: true
bibliography: lib/zotero.bi
```
## Build Workflow
TBD
For a PDF Build:
```
make pdf
```
will build dependencies on these file:
1. Makefile
2. conf/pandoc.yaml
3. conf/pdf.yaml
4. lib/zotero.bib
5. chapters/*.md
NOTE: the `Makefile` will copy `templates/*.yaml` to `conf/*.yaml`. **Never** edit `conf/*`directly.

View File

@ -60,36 +60,3 @@ To insert a Zotero Citation
- 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
```

View File

@ -4,5 +4,3 @@
# Bibliography {-}
::: {#refs .references}
:::

View File

@ -1,11 +1,11 @@
# Title
title: "Basic Book Builder"
subtitle: "A Pandoc build process for books, docs and articles"
subtitle: "A Pandoc build process for books, docs and articles."
name: "basic-book-builder"
logo: "lib/img/UAF-ACEP.png"
# Version / Repo
version: "1.2.2"
version: "1.2.3"
date: "2026-02-05"
state: "BETA"
source: "https://github.com/jehaverlack/basic-book-builder"

View File

@ -45,4 +45,3 @@ resource-path:
- lib/img
- lib/diag
citeproc: true

View File

@ -3,10 +3,11 @@ input-files:
# - chapters/Preface.md
- chapters/00_Introduction.md
- chapters/01_Getting_Started.md
- chapters/02_Usage.md
# - chapters/02_Usage.md
- chapters/03_Features.md
- chapters/Appendix.md
- chapters/AppendixA.md
- chapters/04_Design.md
# - chapters/Appendix.md
# - chapters/AppendixA.md
# - chapters/AppendixB.md
- chapters/Glossary.md
- chapters/Index.md
@ -27,8 +28,8 @@ metadata:
link-citations: true
variables:
documentclass: book # options: report, book, article
fontsize: 12pt
documentclass: extbook # options: report, book, article
fontsize: 9pt
geometry:
- margin=1in
toc: true # ✅ Pandoc-recognized variable