v1.1.0 Refactor

This commit is contained in:
John Haverlack 2026-02-05 08:35:36 -09:00
parent 3b3a0e2a92
commit 90aae529d7
11 changed files with 440 additions and 87 deletions

4
.gitignore vendored
View File

@ -1,3 +1,5 @@
scripts/tmp scripts/tmp
scripts/deps scripts/deps
lib/mathjax lib/mathjax
conf/frontmatter*
conf/header.tex

View File

@ -271,17 +271,17 @@
}, },
"active": "9aca980657068944", "active": "9aca980657068944",
"lastOpenFiles": [ "lastOpenFiles": [
"templates/style_epub.css",
"templates/style.css",
"templates/pandoc.yaml",
"templates/metadata.yaml",
"templates/epub_template.html",
"conf/sedYBewXK", "conf/sedYBewXK",
"conf/sedEJ4vx7", "conf/sedEJ4vx7",
"conf/sedhZUvts", "conf/sedhZUvts",
"conf/sedX6LM6n", "conf/sedX6LM6n",
"conf/sedvTzKO0", "conf/sedvTzKO0",
"conf/sedlEPqb2", "conf/sedlEPqb2",
"conf/sed1eOKK3",
"conf/sedXLODGr",
"conf/sedFPuOSH",
"conf/sedkL7Ngv",
"conf/sedtMLy1q",
"chapters/AppendixA.md", "chapters/AppendixA.md",
"chapters/00_Introduction.md", "chapters/00_Introduction.md",
"build/html/lib/img/unit-circle-with-tau.png", "build/html/lib/img/unit-circle-with-tau.png",

View File

@ -1,8 +0,0 @@
<?xml version="1.0" encoding="UTF-8"?>
<metadata xmlns:dc="http://purl.org/dc/elements/1.1/">
<dc:title>Paths to Perception</dc:title>
<dc:creator>John Haverlack</dc:creator>
<dc:rights>© 20052025 John Haverlack — CC BY-ND 4.0</dc:rights>
<dc:language>en</dc:language>
<dc:date>2025-10-31</dc:date>
</metadata>

View File

@ -1,42 +0,0 @@
---
title: "Paths to Perception"
author: "John Haverlack"
rights: "© 20052025 John Haverlack — CC BY-ND 4.0"
epub:titlepage: true
---
<section epub:type="frontmatter titlepage" style="text-align:center; page-break-after:always;">
<h1 style="margin-top:3em; font-size:2.2em;">Paths to Perception</h1>
<h2 style="font-weight:normal; font-size:1.3em;">A model of emergent reality</h2>
<figure style="margin:2em auto; text-align:center;">
<img src="lib/img/Revolving_circles.480x480_white.png"
alt="Cover illustration"
style="max-width:240px;" />
</figure>
<p style="font-size:1.1em;">John Haverlack</p>
<p style="font-size:0.9em;">© 20052025 — CC BY-ND 4.0</p>
</section>
<section epub:type="frontmatter" style="page-break-after:always; max-width:40em; margin:auto;">
<figure style="text-align:center;">
<img src="lib/img/Revolving_circles.480x480_white.png"
alt="Revolving Circles illusion"
style="max-width:200px; margin:1em auto;" />
<figcaption style="font-size:0.9em;">
“Revolving Circles.” Wikipedia. Accessed Oct 31, 2025.
</figcaption>
</figure>
<p>
The cover image presents an optical illusion of motion. When you focus on the
central point and move the page toward or away from your eyes, the concentric
circles appear to rotate. Perception shapes experience; we do not directly know
reality — our minds construct it.
</p>
</section>

View File

@ -1,25 +0,0 @@
<!-- Custom EPUB title content -->
<div style="text-align:center; page-break-after:always;">
<h1>Paths to Perception</h1>
<h2 style="font-weight:normal;">A model of emergent reality</h2>
<img src="lib/img/Revolving_circles.480x480_white.png"
alt="Cover illustration"
style="max-width:240px;" />
<p>John Haverlack</p>
<p>© 20052025 — CC BY-ND 4.0</p>
</div>
<div style="page-break-after:always; max-width:40em; margin:auto;">
<img src="lib/img/Revolving_circles.480x480_white.png"
alt="Revolving Circles illusion"
style="max-width:200px; margin:1em auto;" />
<p>
The cover image presents an optical illusion of motion.
Perception shapes experience. Our minds construct reality.
</p>
</div>

View File

@ -4,7 +4,13 @@ subtitle: "A Pandoc template for building books and articles"
name: "basic-book-builder" name: "basic-book-builder"
logo: "lib/img/UAF-ACEP.png" logo: "lib/img/UAF-ACEP.png"
# Idnetifiers # Version / Repo
version: "1.1.0"
date: "2026-02-04"
state: "BETA"
source: "https://github.com/jehaverlack/basic-book-builder"
# Identifiers
doi: "UNSPECIFIED" doi: "UNSPECIFIED"
isbn-pdf: "UNSPECIFIED" isbn-pdf: "UNSPECIFIED"
isbn-epub: "UNSPECIFIED" isbn-epub: "UNSPECIFIED"
@ -35,8 +41,4 @@ license-os-url: "https://creativecommons.org/licenses/by-nd/4.0/"
license-com: "All Rights Reserved." license-com: "All Rights Reserved."
license-com-text: "No part of the EPUB or printed editions may be reproduced or redistributed without permission." license-com-text: "No part of the EPUB or printed editions may be reproduced or redistributed without permission."
# Version / Repo
version: "1.1.0"
date: "2026-02-04"
state: "BETA"
source: "https://github.com/jehaverlack/basic-book-builder"

View File

@ -0,0 +1 @@
$body$

44
templates/metadata.yaml Normal file
View File

@ -0,0 +1,44 @@
# Title
title: "Basic Book Builder"
subtitle: "A Pandoc template for building books and articles"
name: "basic-book-builder"
logo: "lib/img/UAF-ACEP.png"
# Version / Repo
version: "1.1.0"
date: "2026-02-04"
state: "BETA"
source: "https://github.com/jehaverlack/basic-book-builder"
# Identifiers
doi: "UNSPECIFIED"
isbn-pdf: "UNSPECIFIED"
isbn-epub: "UNSPECIFIED"
isbn-kindle: "UNSPECIFIED"
isbn-paperback: "UNSPECIFIED"
isbn-hardcover: "UNSPECIFIED"
isbn-audiobook: "UNSPECIFIED"
# Publisher and Author
publisher: "University of Alaska Fairbanks"
author: "John Haverlack"
author-email: "jehaverlack@alaska.edu"
affiliation: "Alaska Center for Energy and Power"
institution: "University of Alaska Fairbanks"
# Copyright
copyright: "© 2026 Alaska Center for Energy and Power"
# License
license: "CC BY-ND 4.0"
license-name: "Creative Commons Attribution-NoDerivatives 4.0 International License"
# Open Source License
license-os: "CC BY-ND 4.0"
license-os-text: "Creative Commons Attribution-NoDerivatives 4.0 International License"
license-os-url: "https://creativecommons.org/licenses/by-nd/4.0/"
# Commercial License
license-com: "All Rights Reserved."
license-com-text: "No part of the EPUB or printed editions may be reproduced or redistributed without permission."

53
templates/pandoc.yaml Normal file
View File

@ -0,0 +1,53 @@
# pandoc.yaml
input-files:
- chapters/Preface.md
- chapters/00_Introduction.md
- chapters/01_Getting_Started.md
# - chapters/02_Features.md
# - chapters/Terminology.md
# - chapters/Citations.md
- chapters/Appendix.md
- chapters/AppendixA.md
- 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
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.bib

251
templates/style.css Normal file
View File

@ -0,0 +1,251 @@
/* ------------------------------
Base book typography
------------------------------ */
body {
font-family: "Libertinus Serif", Georgia, serif;
max-width: 42em;
margin: auto;
padding: 3rem 1.25rem;
line-height: 1.65;
background: #fff;
color: #111;
}
/* ------------------------------
Headings
------------------------------ */
h1, h2, h3, h4 {
font-family: "Libertinus Sans", sans-serif;
font-weight: 600;
}
h1 {
font-size: 2.1rem;
}
h1.titlepage {
border-bottom: 2px solid #ddd;
padding-bottom: 0.4rem;
margin-top: 2em;
margin-bottom: 0.6em;
}
h1.title {
display: none;
}
h2 {
font-size: 1.6rem;
}
h3 {
font-size: 1.25rem;
}
/* ------------------------------
Front matter page
------------------------------ */
.frontmatter {
text-align: center;
margin-top: 10vh;
}
.frontmatter img {
max-width: 30%;
margin: 2rem auto;
display: block;
}
/* ------------------------------
Lists / paragraphs
------------------------------ */
p {
margin: 1em 0;
}
ul, ol {
padding-left: 1.5em;
margin: 1em 0;
}
/* ------------------------------
Math block spacing
------------------------------ */
.math.display {
margin: 1.2em 0;
}
/* ------------------------------
Callouts (final tuned spacing)
------------------------------ */
.callout-established,
.callout-proposed,
.callout-speculative,
.callout-caution,
.callout-warning,
.callout-danger {
border-radius: 6px;
padding: 5px; /* internal padding */
margin-top: 5px; /* external spacing tightened */
margin-bottom: 5px;
border-left: 6px solid;
background: #fefefe;
}
/* Title line */
.callout-established p:first-child strong,
.callout-proposed p:first-child strong,
.callout-speculative p:first-child strong,
.callout-caution p:first-child strong,
.callout-warning p:first-child strong,
.callout-danger p:first-child strong {
display: block;
font-family: "Libertinus Sans", sans-serif;
font-weight: 600;
font-size: 1.05rem;
margin-bottom: 5px;
}
/* Paragraphs inside callouts */
.callout-established p,
.callout-proposed p,
.callout-speculative p,
.callout-caution p,
.callout-warning p,
.callout-danger p {
margin-top: 5px;
margin-bottom: 5px;
line-height: 1.45; /* slightly condensed text spacing */
}
/* Remove top margin on first paragraph, bottom on last */
.callout-established p:first-child,
.callout-proposed p:first-child,
.callout-speculative p:first-child,
.callout-caution p:first-child,
.callout-warning p:first-child,
.callout-danger p:first-child {
margin-top: 0;
}
.callout-established p:last-child,
.callout-proposed p:last-child,
.callout-speculative p:last-child,
.callout-caution p:last-child,
.callout-warning p:last-child,
.callout-danger p:last-child {
margin-bottom: 0;
}
/* Math inside callouts */
.callout-established .math.display,
.callout-proposed .math.display,
.callout-speculative .math.display,
.callout-caution .math.display,
.callout-warning .math.display,
.callout-danger .math.display {
margin: 0.4em 0;
}
/* Colors */
.callout-established {
background: #e8f7e8;
border-left-color: #3a8d3a;
}
.callout-proposed {
background: #e8f0ff;
border-left-color: #3b6dd8;
}
.callout-speculative {
background: #f7e8ff;
border-left-color: #8b2be2;
}
.callout-caution {
background: #fff0e8;
border-left-color: #f5a22f;
}
.callout-warning {
background: #fff0e8;
border-left-color: #f5a22f;
}
.callout-danger {
background: #ffe8e8;
border-left-color: #d83b3a;
}
/* ------------------------------
Images (in body content)
------------------------------ */
img {
max-width: 100%;
display: block;
margin: 1.2em auto;
}
/* ------------------------------
Blockquotes (normal ones)
------------------------------ */
blockquote {
border-left: 4px solid #ccc;
padding-left: 1em;
font-style: italic;
color: #444;
}
/* ------------------------------
Horizontal rule
------------------------------ */
hr {
margin: 3rem 0;
border: none;
border-top: 1px solid #ddd;
}
/* ------------------------------
Code (rare in your book)
------------------------------ */
code {
background: #f3f3f3;
padding: 0.1em 0.3em;
border-radius: 4px;
font-size: 0.95em;
}
/* Force all header cells to left-align their text */
table thead th {
text-align: left !important;
vertical-align: bottom; /* optional: aligns nicely with text baseline */
padding: 4px 8px; /* optional: consistent spacing */
}
/* Make data cells match if you want consistent left alignment */
table tbody td {
text-align: left;
padding: 4px 8px;
}
/* Optional: keep math inline nicely aligned */
table td .math,
table th .math {
display: inline-block;
vertical-align: baseline;
}
/* Optional: make math display nicely aligned */
table td .math.display,
table th .math.display {
display: block;
margin: 0.4em 0;
}

75
templates/style_epub.css Normal file
View File

@ -0,0 +1,75 @@
/* Safer defaults for varied EPUB engines (Kindle, iBooks, KOReader, etc.) */
html, body {
margin: 0;
padding: 0.8em;
line-height: 1.55;
widows: 2;
orphans: 2;
}
/* Avoid fonts that may not exist on the device */
body {
font-family: serif;
color: #111;
}
/* Headings */
h1, h2, h3 {
font-family: serif;
font-weight: 700;
margin: 1.2em 0 0.5em 0;
}
h1 { font-size: 1.6em; }
h2 { font-size: 1.3em; }
h3 { font-size: 1.1em; }
/* Lists and paragraphs */
p { margin: 0.7em 0; }
ul, ol { margin: 0.7em 0 0.7em 1.2em; }
/* Images */
img { max-width: 100%; height: auto; }
/* Page breaks for supported readers */
section[epub|type="titlepage"] {
break-after: page;
page-break-after: always; /* fallback */
}
section#pubmeta {
break-after: page;
page-break-after: always;
}
/* Callouts (match HTML look, keep it minimal for EPUB) */
.callout-established,
.callout-proposed,
.callout-speculative {
padding: 0.6em;
margin: 0.7em 0;
border-left: 0.35em solid;
background: #fefefe;
}
.callout-established { border-color: #3a8d3a; background: #e8f7e8; }
.callout-proposed { border-color: #3b6dd8; background: #e8f0ff; }
.callout-speculative { border-color: #8b2be2; background: #f7e8ff; }
/* First bold line inside a callout = title */
.callout-established p:first-child strong,
.callout-proposed p:first-child strong,
.callout-speculative p:first-child strong {
display: block;
margin-bottom: 0.3em;
}
/* Math (MathML) spacing */
.math.display { margin: 0.8em 0; }
/* Blockquotes */
blockquote {
border-left: 0.25em solid #bbb;
padding-left: 0.8em;
color: #444;
}