@uniweb/unipress 0.2.4 → 0.2.5
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/docs/templates/monograph.md +168 -16
- package/package.json +6 -6
- package/src/content-loader.js +4 -0
- package/src/orchestrator.js +34 -0
- package/src/templates-data.js +6 -14
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
# `monograph`
|
|
2
2
|
|
|
3
|
-
A scholarly monograph — sustained, single-author argument on a focused topic. Royal-octavo trim, classical typography (EB Garamond by default with Garamond and Georgia fall-backs), three-deep TOC, roman-numeralled front matter. Same `@uniweb/book` foundation as the `book` and `report` templates, configured for academic press conventions.
|
|
3
|
+
A scholarly monograph — sustained, single-author argument on a focused topic with a working citation system. Royal-octavo trim, classical typography (EB Garamond by default with Garamond and Georgia fall-backs), three-deep TOC, roman-numeralled front matter, inline `[@key]` cites, and a back-matter bibliography formatted by [citestyle](https://github.com/uniweb/csl) in any of nine styles. Same `@uniweb/book` foundation as the `book` and `report` templates, configured for academic press conventions.
|
|
4
4
|
|
|
5
5
|
## Scaffold
|
|
6
6
|
|
|
@@ -10,40 +10,192 @@ cd my-monograph
|
|
|
10
10
|
unipress compile . --format pdf --out my-monograph.pdf
|
|
11
11
|
```
|
|
12
12
|
|
|
13
|
+
The starter ships a small Victorian-naturalist bibliography (nine entries — Darwin, Wallace, Lyell, Mendel, Huxley, Hooker, Spencer) and a chapter that exercises every inline-cite shape. Compile out of the box and read the result alongside the markdown source to see what each shape produces.
|
|
14
|
+
|
|
13
15
|
## What you get
|
|
14
16
|
|
|
15
17
|
```
|
|
16
18
|
my-monograph/
|
|
17
|
-
├── document.yml
|
|
19
|
+
├── document.yml pinned to @uniweb/book@<version>; royal-octavo, EB Garamond
|
|
20
|
+
├── collections/
|
|
21
|
+
│ └── bibliography/
|
|
22
|
+
│ └── refs.bib BibTeX file — every @entry is one record
|
|
18
23
|
├── content/
|
|
19
|
-
│ ├── 01-preface.md
|
|
20
|
-
│ ├── 02-introduction.md
|
|
21
|
-
│
|
|
24
|
+
│ ├── 01-preface.md type: BackMatter
|
|
25
|
+
│ ├── 02-introduction.md type: Chapter
|
|
26
|
+
│ ├── 03-chapter-one.md type: Chapter (worked cite example)
|
|
27
|
+
│ └── 99-bibliography.md type: Bibliography (back-matter list)
|
|
22
28
|
└── README.md
|
|
23
29
|
```
|
|
24
30
|
|
|
25
31
|
## When to pick `monograph` over `book`
|
|
26
32
|
|
|
33
|
+
- You need cited bibliographic references in your prose.
|
|
27
34
|
- You want section numbering deeper than two levels (default `tocDepth: 3`).
|
|
28
35
|
- You want classical book typography (EB Garamond) rather than the foundation's default sans/serif fall-back.
|
|
29
36
|
- You want a slightly larger page (royal-octavo, 6.14×9.21in) common in academic hardcovers.
|
|
30
37
|
|
|
31
38
|
For trade-paperback fiction or non-fiction prose, use `book` instead. For a technical report with tables and code, use `report`.
|
|
32
39
|
|
|
40
|
+
## Citations
|
|
41
|
+
|
|
42
|
+
The citation system has three pieces: a **style** declared in `document.yml`, a **collection** of bibliography records, and **inline cites** in the prose that reference those records by key.
|
|
43
|
+
|
|
44
|
+
### Pick a style
|
|
45
|
+
|
|
46
|
+
Set `book.citationStyle:` in `document.yml`. Nine styles ship statically wired — switch the document's whole bibliographic apparatus by changing one value:
|
|
47
|
+
|
|
48
|
+
| Style | Inline shape | Use case |
|
|
49
|
+
|------------------------|--------------------|-------------------------------------------------|
|
|
50
|
+
| `chicago-author-date` | (Darwin 1859, 42) | Humanities, history, social sciences (default) |
|
|
51
|
+
| `apa` | (Darwin, 1859) | Psychology, education, social sciences |
|
|
52
|
+
| `mla` | (Darwin 42) | Literature, modern languages |
|
|
53
|
+
| `harvard` | (Darwin 1859: 42) | UK humanities, business |
|
|
54
|
+
| `ieee` | [1, p. 42] | Engineering, computer science |
|
|
55
|
+
| `vancouver` | (1) | Medicine, biomedicine |
|
|
56
|
+
| `ama` | ¹ | Medical journals |
|
|
57
|
+
| `nature` | ¹ | Nature journals |
|
|
58
|
+
| `science` | (1) | Science journals |
|
|
59
|
+
|
|
60
|
+
Numbered styles (IEEE, Vancouver, Nature, Science, AMA) reuse the same numbering across inline cites and the back-matter list — `[1]` inline matches `[1]` in the back-matter.
|
|
61
|
+
|
|
62
|
+
Optional sort: `book.bibliography.sortBy:` — `author` (default), `year`, or `collection-order`.
|
|
63
|
+
|
|
64
|
+
### Author bibliography entries
|
|
65
|
+
|
|
66
|
+
Drop a `.bib` file into `collections/bibliography/`. Every `@entry{key, ...}` becomes one record; the BibTeX cite key is the entry id you reference from prose with `[@key]`. Standard BibTeX entry types work (`@article`, `@book`, `@incollection`, `@inproceedings`, `@phdthesis`, `@techreport`, `@misc`, etc.); LaTeX accents (`\"u`, `\'e`, `\v{c}`) are converted to Unicode automatically.
|
|
67
|
+
|
|
68
|
+
```bibtex
|
|
69
|
+
% collections/bibliography/refs.bib
|
|
70
|
+
|
|
71
|
+
@book{darwin1859,
|
|
72
|
+
author = {Darwin, Charles},
|
|
73
|
+
title = {On the Origin of Species},
|
|
74
|
+
publisher = {John Murray},
|
|
75
|
+
address = {London},
|
|
76
|
+
year = {1859}
|
|
77
|
+
}
|
|
78
|
+
|
|
79
|
+
@article{wallace1858,
|
|
80
|
+
author = {Wallace, Alfred Russel},
|
|
81
|
+
title = {On the Tendency of Varieties to Depart Indefinitely from the Original Type},
|
|
82
|
+
journal = {Journal of the Proceedings of the Linnean Society of London. Zoology},
|
|
83
|
+
volume = {3},
|
|
84
|
+
number = {9},
|
|
85
|
+
pages = {53--62},
|
|
86
|
+
year = {1858}
|
|
87
|
+
}
|
|
88
|
+
```
|
|
89
|
+
|
|
90
|
+
If a record needs a CSL field BibTeX can't carry — multi-script titles, fine-grained date parts, fielded notes — drop a hand-written YAML file (CSL-JSON shape) into the same folder. The loader merges every `.bib`, `.yml`, and `.json` it finds, so authors can mix the format their reference manager exports with one-off hand-edited entries.
|
|
91
|
+
|
|
92
|
+
```yaml
|
|
93
|
+
# collections/bibliography/wallace1858.yml — full CSL-JSON, overrides if a duplicate
|
|
94
|
+
# cite key exists in any .bib file in the same folder.
|
|
95
|
+
id: wallace1858
|
|
96
|
+
type: article-journal
|
|
97
|
+
author:
|
|
98
|
+
- family: Wallace
|
|
99
|
+
given: Alfred Russel
|
|
100
|
+
title: "On the Tendency of Varieties to Depart Indefinitely from the Original Type"
|
|
101
|
+
container-title: "Journal of the Proceedings of the Linnean Society of London. Zoology"
|
|
102
|
+
volume: 3
|
|
103
|
+
issue: 9
|
|
104
|
+
page: 53-62
|
|
105
|
+
issued:
|
|
106
|
+
date-parts: [[1858]]
|
|
107
|
+
```
|
|
108
|
+
|
|
109
|
+
#### Common entry types
|
|
110
|
+
|
|
111
|
+
| `type:` value | What it is |
|
|
112
|
+
|-------------------------|-----------------------------------------------------------------------|
|
|
113
|
+
| `book` | Single-volume monograph (Darwin's *Origin*). |
|
|
114
|
+
| `article-journal` | Journal article (Mendel's *Versuche*). |
|
|
115
|
+
| `article-magazine` | Magazine article. |
|
|
116
|
+
| `article-newspaper` | Newspaper article. |
|
|
117
|
+
| `chapter` | Chapter in an edited volume — set `editor:` and `container-title:`. |
|
|
118
|
+
| `paper-conference` | Conference proceedings. |
|
|
119
|
+
| `thesis` | Dissertation or thesis — set `genre: PhD` / `Master's` if relevant. |
|
|
120
|
+
| `report` | Technical or institutional report. |
|
|
121
|
+
| `webpage` | Web page, blog post, or any URL-only source. |
|
|
122
|
+
| `personal_communication`| Letter, email, interview. |
|
|
123
|
+
|
|
124
|
+
The full CSL 1.0.2 type list is at [docs.citationstyles.org](https://docs.citationstyles.org/en/stable/specification.html#appendix-iii-types). The foundation passes `type:` through to citestyle unchanged; any valid CSL type works.
|
|
125
|
+
|
|
126
|
+
#### Common fields
|
|
127
|
+
|
|
128
|
+
| Field | Purpose |
|
|
129
|
+
|------------------------------------------------------|----------------------------------------------------------------------|
|
|
130
|
+
| `id` | Cite key (defaults to the filename stem). |
|
|
131
|
+
| `type` | One of the CSL types above. |
|
|
132
|
+
| `author` | String (`"Last, First"`) or array of name objects (`[{family, given}]`). |
|
|
133
|
+
| `editor`, `translator`, `container-author` | Same shape as `author`. |
|
|
134
|
+
| `title` | The work's title. |
|
|
135
|
+
| `container-title` | Journal name, edited-volume title, magazine. |
|
|
136
|
+
| `publisher`, `publisher-place` | Publisher and city. |
|
|
137
|
+
| `volume`, `issue`, `page` | Journal locators (string or number). |
|
|
138
|
+
| `year` (shorthand) or `issued: { date-parts: [[YYYY]] }` | Publication date. |
|
|
139
|
+
| `DOI`, `URL`, `ISBN`, `ISSN`, `PMID` | Identifiers — citestyle auto-links DOIs. |
|
|
140
|
+
| `edition`, `genre`, `note`, `language` | Misc fields most styles consume. |
|
|
141
|
+
|
|
142
|
+
### Cite in prose
|
|
143
|
+
|
|
144
|
+
Inline citations use a Pandoc-style sugar that compiles to an inline inset. Five shapes cover the full range:
|
|
145
|
+
|
|
146
|
+
| Markdown | Renders as (chicago-author-date) |
|
|
147
|
+
|-----------------------------------|-----------------------------------------------------------|
|
|
148
|
+
| `[@darwin1859]` | (Darwin 1859) |
|
|
149
|
+
| `[@darwin1859]{page=42}` | (Darwin 1859, 42) |
|
|
150
|
+
| `[@darwin1859; @wallace1858]` | (Darwin 1859; Wallace 1858) |
|
|
151
|
+
| `[@darwin1859]{suppress-author}` | (1859) — when "Darwin" already appears in the prose |
|
|
152
|
+
| `[@nope]` | [?] — visible placeholder, no compile failure |
|
|
153
|
+
|
|
154
|
+
The locator can be `page=42`, `chapter=3`, `section=2.1`, `paragraph=12`, etc. Set `label=<kind>` to label it explicitly: `[@darwin1859]{locator=2 label=chapter}` renders as `(Darwin 1859, chap. 2)` in styles that abbreviate the label.
|
|
155
|
+
|
|
156
|
+
Multi-cite clusters collapse per the active style's rules. In chicago-author-date, two cites by the same author share the author and join their years with a comma: `[@darwin1859; @darwin1871]` renders as `(Darwin 1859, 1871)`.
|
|
157
|
+
|
|
158
|
+
The `[@key]` shorthand desugars to `[@key](@Cite){k=v}` — the framework's textual inline-inset form. You can also call other inline insets directly with the same `[text](@Component){k=v}` syntax (see the foundation README).
|
|
159
|
+
|
|
160
|
+
### The back-matter bibliography
|
|
161
|
+
|
|
162
|
+
`content/99-bibliography.md` is a one-line back-matter section that lists every record from the collection in style-correct order:
|
|
163
|
+
|
|
164
|
+
```markdown
|
|
165
|
+
---
|
|
166
|
+
type: Bibliography
|
|
167
|
+
title: References
|
|
168
|
+
data: bibliography
|
|
169
|
+
---
|
|
170
|
+
```
|
|
171
|
+
|
|
172
|
+
The `data: bibliography` shorthand fetches from the collection of that name declared in `document.yml`. For numbered styles the entries appear in citation-encounter order; for author-date styles they're alphabetical by author then year.
|
|
173
|
+
|
|
174
|
+
For collections of references that don't all need to ride together — say, a list of "further reading" separate from the main bibliography — declare a second collection in `document.yml` and reference it from a second `Bibliography` section with `data: <other-name>` and an optional `style: <override>`.
|
|
175
|
+
|
|
33
176
|
## `document.yml` fields
|
|
34
177
|
|
|
35
|
-
Same shape as `book` (see [book.md](./book.md)). The
|
|
178
|
+
Same shape as `book` (see [book.md](./book.md)). The defaults differ:
|
|
179
|
+
|
|
180
|
+
| Field | `monograph` default |
|
|
181
|
+
|--------------------------------------|------------------------------------------------------|
|
|
182
|
+
| `book.trim` | `royal-octavo` |
|
|
183
|
+
| `book.typography.bodyFont` | `["EB Garamond", "Garamond", "Georgia"]` |
|
|
184
|
+
| `book.typography.headingFont` | `["EB Garamond", "Garamond", "Georgia"]` |
|
|
185
|
+
| `book.typography.bodySize` | `10.5pt` |
|
|
186
|
+
| `book.typography.leading` | `0.68em` |
|
|
187
|
+
| `book.structure.tocDepth` | `3` |
|
|
188
|
+
| `book.structure.frontMatterNumbering`| `roman` |
|
|
189
|
+
| `book.citationStyle` | `chicago-author-date` |
|
|
190
|
+
| `book.bibliography.sortBy` | `author` |
|
|
191
|
+
| `collections.bibliography.path` | `collections/bibliography` |
|
|
192
|
+
|
|
193
|
+
## Common customizations
|
|
36
194
|
|
|
37
|
-
|
|
38
|
-
|
|
39
|
-
|
|
40
|
-
| `book.typography.bodyFont` | `["EB Garamond", "Garamond", "Georgia"]` |
|
|
41
|
-
| `book.typography.headingFont`| `["EB Garamond", "Garamond", "Georgia"]` |
|
|
42
|
-
| `book.typography.bodySize` | `10.5pt` |
|
|
43
|
-
| `book.typography.leading` | `0.68em` |
|
|
44
|
-
| `book.structure.tocDepth` | `3` |
|
|
45
|
-
| `book.structure.frontMatterNumbering` | `roman` |
|
|
195
|
+
- **Switch citation style** by changing one line: `book.citationStyle: ieee` (or any of the nine styles above). Re-compile; every cite and the back-matter list re-formats to match.
|
|
196
|
+
- **Add a "further reading" section** by declaring a second collection in `document.yml` (`collections.further-reading.path: collections/further-reading`) and a second `Bibliography` content file with `data: further-reading`.
|
|
197
|
+
- **Drop the citations entirely** by deleting `99-bibliography.md`, the `collections/` directory, and the `book.citationStyle:` block. The remaining template behaves like a citation-free `book` with monograph typography.
|
|
46
198
|
|
|
47
199
|
## Foundation reference
|
|
48
200
|
|
|
49
|
-
`@uniweb/book` — see the foundation
|
|
201
|
+
`@uniweb/book` — see [foundations/book/README.md](https://github.com/uniweb/unipress/blob/main/foundations/book/README.md) for the full list of foundation knobs and `foundations/book/CHANGELOG.md` for the version history.
|
package/package.json
CHANGED
|
@@ -1,6 +1,6 @@
|
|
|
1
1
|
{
|
|
2
2
|
"name": "@uniweb/unipress",
|
|
3
|
-
"version": "0.2.
|
|
3
|
+
"version": "0.2.5",
|
|
4
4
|
"description": "Compile a content directory into a document (PDF, EPUB, Paged.js HTML, Typst source bundle, DOCX, XLSX) using a Uniweb foundation. Five built-in templates: book, monograph, report, data-report, directory.",
|
|
5
5
|
"type": "module",
|
|
6
6
|
"publishConfig": {
|
|
@@ -49,11 +49,11 @@
|
|
|
49
49
|
"prompts": "^2.4.2",
|
|
50
50
|
"react": "^18.0.0 || ^19.0.0",
|
|
51
51
|
"react-dom": "^18.0.0 || ^19.0.0",
|
|
52
|
-
"@uniweb/build": "0.11.
|
|
53
|
-
"@uniweb/runtime": "0.8.
|
|
54
|
-
"@uniweb/
|
|
55
|
-
"@uniweb/
|
|
56
|
-
"@uniweb/content-reader": "1.1.
|
|
52
|
+
"@uniweb/build": "0.11.4",
|
|
53
|
+
"@uniweb/runtime": "0.8.6",
|
|
54
|
+
"@uniweb/semantic-parser": "1.1.13",
|
|
55
|
+
"@uniweb/core": "0.7.5",
|
|
56
|
+
"@uniweb/content-reader": "1.1.7"
|
|
57
57
|
},
|
|
58
58
|
"scripts": {
|
|
59
59
|
"test": "echo \"no tests yet\" && exit 0",
|
package/src/content-loader.js
CHANGED
|
@@ -152,5 +152,9 @@ export async function loadContent(dir, options = {}) {
|
|
|
152
152
|
|
|
153
153
|
await resolveLocalCollections(content, sitePath)
|
|
154
154
|
|
|
155
|
+
// Cross-reference registry is built AFTER the foundation loads, in
|
|
156
|
+
// orchestrator.loadAndInit, so foundation-declared `xref.kinds`
|
|
157
|
+
// contribute to the kind inference at id-collection time.
|
|
158
|
+
|
|
155
159
|
return { content, configFile, sitePath }
|
|
156
160
|
}
|
package/src/orchestrator.js
CHANGED
|
@@ -30,6 +30,26 @@ import { readFile } from 'node:fs/promises'
|
|
|
30
30
|
import { initPrerender } from '@uniweb/runtime/ssr'
|
|
31
31
|
import { FoundationResolutionError, CompileError } from './errors.js'
|
|
32
32
|
|
|
33
|
+
// `buildXrefRegistry` is a recent addition to @uniweb/build/content
|
|
34
|
+
// (cross-references milestone). Older published versions don't expose
|
|
35
|
+
// it; the dynamic resolver below falls back to a no-op registry so the
|
|
36
|
+
// pipeline keeps working against any installed version. Once the build
|
|
37
|
+
// package republishes with the new export, the real registry kicks in
|
|
38
|
+
// automatically — no code change required.
|
|
39
|
+
let _buildXrefRegistry = null
|
|
40
|
+
async function getBuildXrefRegistry() {
|
|
41
|
+
if (_buildXrefRegistry !== null) return _buildXrefRegistry
|
|
42
|
+
try {
|
|
43
|
+
const mod = await import('@uniweb/build/content')
|
|
44
|
+
_buildXrefRegistry = typeof mod.buildXrefRegistry === 'function'
|
|
45
|
+
? mod.buildXrefRegistry
|
|
46
|
+
: () => ({ entries: {} })
|
|
47
|
+
} catch {
|
|
48
|
+
_buildXrefRegistry = () => ({ entries: {} })
|
|
49
|
+
}
|
|
50
|
+
return _buildXrefRegistry
|
|
51
|
+
}
|
|
52
|
+
|
|
33
53
|
export async function importFoundation(resolvedPath) {
|
|
34
54
|
try {
|
|
35
55
|
return await import(pathToFileURL(resolvedPath).href)
|
|
@@ -49,8 +69,22 @@ export function initOrchestrator({ content, foundation, extensions = [], onProgr
|
|
|
49
69
|
// Convenience: import + init in one step. Returns the uniweb instance,
|
|
50
70
|
// or throws (the caller decides whether to surface as fatal or attached
|
|
51
71
|
// to the inspect dump).
|
|
72
|
+
//
|
|
73
|
+
// Cross-reference registry is built here, after the foundation imports
|
|
74
|
+
// so any foundation-declared `xref.kinds` participate in id-collection.
|
|
75
|
+
// Built-in kinds (figure / equation / section / table) work without
|
|
76
|
+
// foundation cooperation; foundation extensions land alongside.
|
|
52
77
|
export async function loadAndInit({ content, resolvedPath, extensions = [], onProgress } = {}) {
|
|
53
78
|
const foundation = await importFoundation(resolvedPath)
|
|
79
|
+
|
|
80
|
+
const foundationKinds =
|
|
81
|
+
foundation?.default?.capabilities?.xref?.kinds ||
|
|
82
|
+
foundation?.default?.xref?.kinds ||
|
|
83
|
+
foundation?.xref?.kinds ||
|
|
84
|
+
{}
|
|
85
|
+
const buildXrefRegistry = await getBuildXrefRegistry()
|
|
86
|
+
content.xref = buildXrefRegistry(content, { foundationKinds })
|
|
87
|
+
|
|
54
88
|
const uniweb = initOrchestrator({ content, foundation, extensions, onProgress })
|
|
55
89
|
return { foundation, uniweb }
|
|
56
90
|
}
|
package/src/templates-data.js
CHANGED
|
@@ -44,24 +44,16 @@ export const TEMPLATES = {
|
|
|
44
44
|
"document.yml.hbs": "name: \"{{title}}\"\n{{#if author}}\nauthor: \"{{author}}\"\n{{/if}}\nyear: {{year}}\n\nfoundation: '@uniweb/data@0.1.0'\nformat: xlsx\n\n# content/directory/ holds one page-folder; the listing renders into a\n# single workbook (xlsx) with one sheet, or a docx tabular report.\nindex: directory\n\ncollections:\n members:\n path: collections/members\n queryable:\n department:\n type: enum\n label: Department\n options: [engineering, sciences, humanities]\n role:\n type: enum\n label: Role\n options: [member, lead, advisor]\n active:\n type: boolean\n label: Active\n",
|
|
45
45
|
},
|
|
46
46
|
"monograph": {
|
|
47
|
-
"README.md": "# `monograph` template\n\nA scholarly monograph: royal-octavo trim, classical typography (EB Garamond by default), three-deep TOC, roman-numeralled front matter, and a working citation system. Same `@uniweb/book` foundation as the `book` and `report` templates — different defaults to fit academic press conventions.\n\n```bash\nunipress compile . --format pdf --out my-monograph.pdf\nunipress compile . --format epub --out my-monograph.epub\n```\n\n## What's here\n\n```\nmonograph/\n├── document.yml pinned to @uniweb/book; royal-octavo, EB Garamond\n├── collections/\n│ └── bibliography
|
|
48
|
-
"collections/bibliography/
|
|
49
|
-
"
|
|
50
|
-
"
|
|
51
|
-
"collections/bibliography/huxley1863.yml": "id: huxley1863\ntype: book\nauthor: \"Huxley, Thomas Henry\"\ntitle: \"Evidence as to Man's Place in Nature\"\npublisher: \"Williams & Norgate\"\npublisher-place: London\nyear: 1863\n",
|
|
52
|
-
"collections/bibliography/lyell1830.yml": "id: lyell1830\ntype: book\nauthor: \"Lyell, Charles\"\ntitle: \"Principles of Geology\"\nvolume: 1\npublisher: \"John Murray\"\npublisher-place: London\nyear: 1830\n",
|
|
53
|
-
"collections/bibliography/mendel1866.yml": "id: mendel1866\ntype: article-journal\nauthor: \"Mendel, Gregor\"\ntitle: \"Versuche über Pflanzen-Hybriden\"\ncontainer-title: \"Verhandlungen des naturforschenden Vereines in Brünn\"\nvolume: 4\npage: 3-47\nyear: 1866\n",
|
|
54
|
-
"collections/bibliography/spencer1864.yml": "id: spencer1864\ntype: book\nauthor: \"Spencer, Herbert\"\ntitle: \"The Principles of Biology\"\nvolume: 1\npublisher: \"Williams & Norgate\"\npublisher-place: London\nyear: 1864\n",
|
|
55
|
-
"collections/bibliography/wallace1858.yml": "id: wallace1858\ntype: article-journal\nauthor:\n - family: Wallace\n given: Alfred Russel\ntitle: \"On the Tendency of Varieties to Depart Indefinitely from the Original Type\"\ncontainer-title: \"Journal of the Proceedings of the Linnean Society of London. Zoology\"\nvolume: 3\nissue: 9\npage: 53-62\nissued:\n date-parts:\n - [1858]\n",
|
|
56
|
-
"collections/bibliography/wallace1869.yml": "id: wallace1869\ntype: book\nauthor: \"Wallace, Alfred Russel\"\ntitle: \"The Malay Archipelago\"\npublisher: \"Macmillan\"\npublisher-place: London\nyear: 1869\n",
|
|
57
|
-
"content/01-preface.md": "---\ntype: BackMatter\ntitle: Preface\n---\n\n# Preface\n\nA monograph is a sustained, single-author argument on a focused topic — historically the form scholars use when an article is not enough and a textbook is too much. This template scaffolds one: royal-octavo trim, classical body typography (EB Garamond by default, falling back to Garamond and Georgia), section numbering three levels deep, roman-numeralled front matter, and a working citation system.\n\nReplace this preface with your own. The `BackMatter` section type skips chapter numbering, so the \"Preface\" heading above renders without a \"Chapter N\" label. Acknowledgments, dedications, and a list of abbreviations all use the same section type.\n\nThe starter ships a small Victorian-naturalist bibliography (`collections/bibliography/`) and a chapter that exercises the inline `[@key]` cite syntax. Replace the entries with your own — one YAML file per record — and rewrite the chapter to fit your topic. The cites and the back-matter bibliography both update automatically.\n\nCompile to PDF for archive-quality print or to EPUB for distribution:\n\n```bash\nunipress compile . --format pdf\nunipress compile . --format epub\n```\n",
|
|
58
|
-
"content/02-introduction.md": "---\ntype: Chapter\ntitle: \"Introduction\"\n---\n\nEvery monograph opens with an introduction that does three things at once: it situates the work in its existing scholarship, it states the question the rest of the book will pursue, and it tells the reader what to expect chapter by chapter. The first task is the most contested — too brief and the reader doubts that you know the literature, too thorough and you have written a literature review instead of an introduction.\n\nThe starter chapter that follows treats Victorian-naturalist sources as a worked example of the citation apparatus this template ships with. The author of this template assumes you will replace both the sample bibliography (`collections/bibliography/`) and the chapter prose with your own material — the structural pattern is what's reusable.\n\n## The argument in brief\n\nState the argument once, plainly, in a paragraph. The remainder of the introduction can elaborate, but the reader should leave this section knowing the claim before the evidence arrives.\n\n## How citations work in this template\n\nInline citations use a Pandoc-style sugar: `[@key]` for a bare cite, `[@key]{page=42}` for a page locator, `[@a; @b]` for a multi-cite cluster, and `[@key]{suppress-author}` when the author is named in the running prose (\"Darwin (1859) showed…\"). The `key` is the bibliography entry's id — the filename stem of any YAML file under `collections/bibliography/`, or an explicit `id:` field inside that file. Pick a citation style by setting `book.citationStyle:` in `document.yml`; the same nine styles citestyle ships are wired in (Chicago author-date, APA, MLA, IEEE, Vancouver, Harvard, AMA, Nature, Science). Change one line and every cite plus the back-matter list re-formats to match.\n\n## The chapters ahead\n\nA monograph rewards readers who know the road map. Sketch each chapter in two or three sentences — what it does and why it has to be there.\n",
|
|
47
|
+
"README.md": "# `monograph` template\n\nA scholarly monograph: royal-octavo trim, classical typography (EB Garamond by default), three-deep TOC, roman-numeralled front matter, and a working citation system. Same `@uniweb/book` foundation as the `book` and `report` templates — different defaults to fit academic press conventions.\n\n```bash\nunipress compile . --format pdf --out my-monograph.pdf\nunipress compile . --format epub --out my-monograph.epub\n```\n\n## What's here\n\n```\nmonograph/\n├── document.yml pinned to @uniweb/book; royal-octavo, EB Garamond\n├── collections/\n│ └── bibliography/\n│ └── refs.bib BibTeX records — one .bib file, every @entry is one record\n├── content/\n│ ├── 01-preface.md type: BackMatter\n│ ├── 02-introduction.md type: Chapter\n│ ├── 03-chapter-one.md type: Chapter (worked cite example)\n│ └── 99-bibliography.md type: Bibliography (back-matter list)\n└── README.md this file\n```\n\nThe starter ships a small Victorian-naturalist bibliography and a chapter that exercises every inline-cite shape — bare, page locator, multi-cite cluster, suppress-author. Compile out of the box and read the result alongside the markdown source to see what each shape produces.\n\n## Citations\n\n### Pick a style\n\nSet `book.citationStyle:` in `document.yml`. Nine styles ship:\n\n| Style | Shape | Use case |\n|---|---|---|\n| `chicago-author-date` (default) | (Darwin 1859, 42) | Humanities, history, social sciences |\n| `apa` | (Darwin, 1859) | Psychology, education, social sciences |\n| `mla` | (Darwin 42) | Literature, modern languages |\n| `harvard` | (Darwin 1859: 42) | UK humanities, business |\n| `ieee` | [1, p. 42] | Engineering, computer science |\n| `vancouver` | (1) | Medicine, biomedicine |\n| `ama` | ¹ | Medical journals |\n| `nature` | ¹ | Nature journals |\n| `science` | (1) | Science journals |\n\nSwitching the style re-formats every inline cite and the back-matter bibliography to match. No other change is needed.\n\n### Author bibliography entries\n\nDrop a `.bib` file into `collections/bibliography/`. Every `@entry{key, ...}` becomes one record; the BibTeX cite key is the entry id you reference from prose with `[@key]`. Standard BibTeX entry types — `@article`, `@book`, `@incollection`, `@inproceedings`, `@phdthesis`, `@techreport`, `@misc`, and the rest — all work; LaTeX accents (`\\\"u`, `\\'e`, `\\v{c}`) are converted to Unicode automatically.\n\n```bibtex\n% collections/bibliography/refs.bib\n\n@book{darwin1859,\n author = {Darwin, Charles},\n title = {On the Origin of Species},\n publisher = {John Murray},\n address = {London},\n year = {1859}\n}\n\n@article{wallace1858,\n author = {Wallace, Alfred Russel},\n title = {On the Tendency of Varieties to Depart Indefinitely from the Original Type},\n journal = {Journal of the Proceedings of the Linnean Society of London. Zoology},\n volume = {3},\n number = {9},\n pages = {53--62},\n year = {1858}\n}\n```\n\nAlready have records as YAML or JSON in CSL-JSON shape? Drop them in the same folder — the loader merges every `.bib`, `.yml`, and `.json` it finds into one collection. Use whatever your reference manager exports; reach for hand-written YAML when an entry needs a field BibTeX can't carry. The full list of CSL types and fields is at [docs.citationstyles.org](https://docs.citationstyles.org/en/stable/specification.html#appendix-iii-types).\n\n### Cite in prose\n\n```markdown\nDarwin (1859) showed [@darwin1859]{suppress-author} that selection\nacts on heritable variation [@darwin1859]{page=42}.\nIndependent contemporary work [@wallace1858; @lyell1830] reached\ncompatible conclusions.\n```\n\n| Markdown | Renders as (chicago-author-date) |\n|---|---|\n| `[@darwin1859]` | (Darwin 1859) |\n| `[@darwin1859]{page=42}` | (Darwin 1859, 42) |\n| `[@a; @b]` | (Author A 1900; Author B 1910) |\n| `[@darwin1859]{suppress-author}` | (1859) — for prose where the author is already named |\n| `[@nope]` | [?] — visible placeholder, no compile failure |\n\nA missing key never breaks the compile — the `[?]` mark is a visible reminder to fix the citation.\n\n### The back-matter bibliography\n\n`content/99-bibliography.md` is a one-line back-matter section that lists every record from the collection in style-correct order:\n\n```markdown\n---\ntype: Bibliography\ntitle: References\ndata: bibliography\n---\n```\n\nFor numbered styles (IEEE, Vancouver, etc.), the bibliography list reuses the same numbering the inline cites use — `[1]` inline matches `[1]` in the back-matter list.\n\n## When to pick `monograph` over `book`\n\n- You need cited bibliographic references in your prose.\n- You want section numbering deeper than two levels (default `tocDepth: 3`).\n- You want classical book typography (EB Garamond) rather than the foundation's default sans/serif fall-back.\n- You want a slightly larger page (royal-octavo, 6.14×9.21in) common in academic hardcovers.\n\nFor trade-paperback fiction or non-fiction prose, use `book` instead.\n\n## Customize\n\nEdit `document.yml`:\n\n- `book.citationStyle:` — pick from the nine styles above.\n- `book.bibliography.sortBy:` — `author` (default), `year`, or `collection-order`.\n- `book.typography.bodyFont`, `book.typography.headingFont` — the EB Garamond fallback chain.\n- `book.trim:` — `royal-octavo` (default), `crown-octavo`, `trade-6x9`, `trade-7x10`, `a5`.\n- `book.structure.tocDepth:` — bump to 4 for very subdivided arguments.\n\nFor the full list of foundation knobs, see `framework/unipress/foundations/book/README.md`.\n",
|
|
48
|
+
"collections/bibliography/refs.bib": "@book{darwin1859,\n author = {Darwin, Charles},\n title = {On the Origin of Species by Means of Natural Selection},\n publisher = {John Murray},\n address = {London},\n year = {1859}\n}\n\n@book{darwin1871,\n author = {Darwin, Charles},\n title = {The Descent of Man, and Selection in Relation to Sex},\n publisher = {John Murray},\n address = {London},\n year = {1871}\n}\n\n@incollection{hooker1859,\n author = {Hooker, Joseph Dalton},\n title = {On the flora of {Australia}, its origin, affinities, and distribution},\n booktitle = {The Botany of the Antarctic Voyage of H.M. Discovery Ships Erebus and Terror},\n editor = {Hooker, Joseph Dalton},\n volume = {3},\n publisher = {Lovell Reeve},\n address = {London},\n pages = {i--cxxviii},\n year = {1859}\n}\n\n@book{huxley1863,\n author = {Huxley, Thomas Henry},\n title = {Evidence as to Man's Place in Nature},\n publisher = {Williams \\& Norgate},\n address = {London},\n year = {1863}\n}\n\n@book{lyell1830,\n author = {Lyell, Charles},\n title = {Principles of Geology},\n volume = {1},\n publisher = {John Murray},\n address = {London},\n year = {1830}\n}\n\n@article{mendel1866,\n author = {Mendel, Gregor},\n title = {Versuche \\\"uber Pflanzen-Hybriden},\n journal = {Verhandlungen des naturforschenden Vereines in Br\\\"unn},\n volume = {4},\n pages = {3--47},\n year = {1866}\n}\n\n@book{spencer1864,\n author = {Spencer, Herbert},\n title = {The Principles of Biology},\n volume = {1},\n publisher = {Williams \\& Norgate},\n address = {London},\n year = {1864}\n}\n\n@article{wallace1858,\n author = {Wallace, Alfred Russel},\n title = {On the Tendency of Varieties to Depart Indefinitely from the Original Type},\n journal = {Journal of the Proceedings of the Linnean Society of London. Zoology},\n volume = {3},\n number = {9},\n pages = {53--62},\n year = {1858}\n}\n\n@book{wallace1869,\n author = {Wallace, Alfred Russel},\n title = {The Malay Archipelago},\n publisher = {Macmillan},\n address = {London},\n year = {1869}\n}\n",
|
|
49
|
+
"content/01-preface.md": "---\ntype: BackMatter\ntitle: Preface\n---\n\n# Preface\n\nA monograph is a sustained, single-author argument on a focused topic — historically the form scholars use when an article is not enough and a textbook is too much. This template scaffolds one: royal-octavo trim, classical body typography (EB Garamond by default, falling back to Garamond and Georgia), section numbering three levels deep, roman-numeralled front matter, and a working citation system.\n\nReplace this preface with your own. The `BackMatter` section type skips chapter numbering, so the \"Preface\" heading above renders without a \"Chapter N\" label. Acknowledgments, dedications, and a list of abbreviations all use the same section type.\n\nThe starter ships a small Victorian-naturalist bibliography (`collections/bibliography/refs.bib`) and a chapter that exercises the inline `[@key]` cite syntax. Replace the entries with your own — drop in the `.bib` file your reference manager exports — and rewrite the chapter to fit your topic. The cites and the back-matter bibliography both update automatically.\n\nCompile to PDF for archive-quality print or to EPUB for distribution:\n\n```bash\nunipress compile . --format pdf\nunipress compile . --format epub\n```\n",
|
|
50
|
+
"content/02-introduction.md": "---\ntype: Chapter\ntitle: \"Introduction\"\n---\n\nEvery monograph opens with an introduction that does three things at once: it situates the work in its existing scholarship, it states the question the rest of the book will pursue, and it tells the reader what to expect chapter by chapter. The first task is the most contested — too brief and the reader doubts that you know the literature, too thorough and you have written a literature review instead of an introduction.\n\nThe starter chapter that follows treats Victorian-naturalist sources as a worked example of the citation apparatus this template ships with. The author of this template assumes you will replace both the sample bibliography (`collections/bibliography/`) and the chapter prose with your own material — the structural pattern is what's reusable.\n\n## The argument in brief\n\nState the argument once, plainly, in a paragraph. The remainder of the introduction can elaborate, but the reader should leave this section knowing the claim before the evidence arrives.\n\n## How citations work in this template\n\nInline citations use a Pandoc-style sugar: `[@key]` for a bare cite, `[@key]{page=42}` for a page locator, `[@a; @b]` for a multi-cite cluster, and `[@key]{suppress-author}` when the author is named in the running prose (\"Darwin (1859) showed…\"). The `key` is the BibTeX cite key in `collections/bibliography/refs.bib` — every `@entry{key, ...}` becomes one record the cites can reach. Pick a citation style by setting `book.citationStyle:` in `document.yml`; the same nine styles citestyle ships are wired in (Chicago author-date, APA, MLA, IEEE, Vancouver, Harvard, AMA, Nature, Science). Change one line and every cite plus the back-matter list re-formats to match.\n\n## The chapters ahead\n\nA monograph rewards readers who know the road map. Sketch each chapter in two or three sentences — what it does and why it has to be there.\n",
|
|
59
51
|
"content/03-chapter-one.md": "---\ntype: Chapter\ntitle: \"Variation and Its Discontents\"\n---\n\nThe first decade after the *Origin* unsettled the relations between three audiences for natural history — gentleman-naturalists in correspondence, Continental experimentalists working with quantitative methods, and the lay public reached by trade publishers. Each read the new mechanism through prior commitments. The geological gradualism that Darwin (1859) inherited from Lyell — laid out a generation earlier in the *Principles of Geology* [@lyell1830] — gave him a vocabulary of slow, cumulative change that the British reading public was already prepared to accept [@darwin1859]{suppress-author}. The independent paper Wallace had sent from Ternate the year before [@wallace1858] proposed the same mechanism in compatible terms; the joint reading at the Linnean Society in 1858 made the priority public without making either author the popular face of the idea.\n\n## Two readings of the mechanism\n\nTwo strands of reception ran through the 1860s. The first, exemplified by Huxley's polemical defense [@huxley1863], used the new framework to argue continuity between humans and other primates. The second, advanced most systematically in Spencer's *Principles* [@spencer1864], read selection as a special case of a more general law of progress that Spencer thought already operated in non-biological domains. The two strands diverged on what the mechanism was a mechanism *of*: in Huxley's reading it was a tool for reorganizing the boundary between the human and the animal; in Spencer's, it was confirmation of a metaphysics he had already published.\n\n## The variation problem\n\nSelection acts on heritable variation. Where the variation comes from, in what proportion, and whether it has any direction the organism contributes to — these were open questions in the 1860s that the *Origin* did not answer. Mendel's experiments on hybridization [@mendel1866]{page=12}, published in an obscure proceedings in Brünn the same decade, addressed the question of what was inherited at the level of single traits. The paper sat unread by the principals — Darwin, Wallace, Hooker, Huxley — for three and a half decades [@mendel1866]{suppress-author}. When it was rediscovered around 1900, it slotted into the variation problem in a way the Victorian generation could not have arranged for it to.\n\n### A note on sources\n\nFor the geographical-distribution side of the argument, Wallace's *Malay Archipelago* [@wallace1869]{page=78} remains the best-known synthesis. Hooker's flora-of-Australia essay [@hooker1859]{page=ii} predates the *Origin* by a few months and reads, in retrospect, as one of the cleanest pre-publication endorsements of the mechanism — Hooker had seen the manuscript. Darwin's later *Descent* [@darwin1871] makes the case for selection's reach into human evolution that Huxley had been making polemically since 1863 [@huxley1863]{page=125}.\n\n## The argument's afterlife\n\nBy the end of the 1870s, three of the period's central works — the *Origin*, the *Descent*, and Wallace's geographical essays — had crossed into the popular canon [@darwin1859; @darwin1871; @wallace1869]. The mechanism had found audiences the authors had not written for. The next chapter takes up the question of what those audiences read into it.\n",
|
|
60
52
|
"content/99-bibliography.md": "---\ntype: Bibliography\ntitle: References\ndata: bibliography\n---\n",
|
|
61
|
-
"document.yml.hbs": "name: \"{{title}}\"\nfoundation: '@uniweb/book@0.2.0'\nformat: pdf\n\nbook:\n title: \"{{title}}\"\n subtitle: \"\"\n author: \"{{author}}\"\n language: en\n rights: \"© {{year}} {{author}}.\"\n trim: royal-octavo\n typography:\n bodySize: 10.5pt\n leading: 0.68em\n firstLineIndent: 1.2em\n bodyFont: [\"EB Garamond\", \"Garamond\", \"Georgia\"]\n headingFont: [\"EB Garamond\", \"Garamond\", \"Georgia\"]\n structure:\n titlePage: true\n copyrightPage: true\n toc: true\n tocDepth: 3\n frontMatterNumbering: roman\n # Citation style for inline cites and the back-matter bibliography.\n # Pick from: chicago-author-date (default — the scholarly humanities\n # convention), apa, mla, harvard, ieee, vancouver, ama, nature, science.\n # Switch the document's whole bibliographic apparatus by changing one\n # value here; nothing else in the project needs editing.\n citationStyle: chicago-author-date\n bibliography:\n sortBy: author\n\n# Bibliographic records the inline `[@key]` cites and the back-matter\n# Bibliography section read from.
|
|
53
|
+
"document.yml.hbs": "name: \"{{title}}\"\nfoundation: '@uniweb/book@0.2.0'\nformat: pdf\n\nbook:\n title: \"{{title}}\"\n subtitle: \"\"\n author: \"{{author}}\"\n language: en\n rights: \"© {{year}} {{author}}.\"\n trim: royal-octavo\n typography:\n bodySize: 10.5pt\n leading: 0.68em\n firstLineIndent: 1.2em\n bodyFont: [\"EB Garamond\", \"Garamond\", \"Georgia\"]\n headingFont: [\"EB Garamond\", \"Garamond\", \"Georgia\"]\n structure:\n titlePage: true\n copyrightPage: true\n toc: true\n tocDepth: 3\n frontMatterNumbering: roman\n # Citation style for inline cites and the back-matter bibliography.\n # Pick from: chicago-author-date (default — the scholarly humanities\n # convention), apa, mla, harvard, ieee, vancouver, ama, nature, science.\n # Switch the document's whole bibliographic apparatus by changing one\n # value here; nothing else in the project needs editing.\n citationStyle: chicago-author-date\n bibliography:\n sortBy: author\n\n# Bibliographic records the inline `[@key]` cites and the back-matter\n# Bibliography section read from. Drop a `.bib` file into\n# `collections/bibliography/` — every `@entry{key, ...}` becomes one\n# record, with the BibTeX cite key used as the lookup id. YAML and JSON\n# files in the same directory are merged in (handy for one-off entries\n# you want to maintain by hand alongside an exported `.bib`).\ncollections:\n bibliography:\n path: collections/bibliography\n\ncontent:\n - 01-preface\n - 02-introduction\n - 03-chapter-one\n - 99-bibliography\n",
|
|
62
54
|
},
|
|
63
55
|
"report": {
|
|
64
|
-
"README.md": "# `report` template\n\nA technical report: trade-7x10 trim, block paragraphs (no first-line indent), tables and code listings styled for clarity, code-block margin relief so wide content doesn't wrap awkwardly. Same `@uniweb/book` foundation as the `book` and `monograph` templates — configured for technical writing.\n\n```bash\nunipress compile . --format pdf --out my-report.pdf\nunipress compile . --format pagedjs --out my-report.html\n```\n\n## What's here\n\n```\nreport/\n├── document.yml pinned to @uniweb/book; trade-7x10, block paragraphs\n├── content/\n│ ├── 01-summary.md executive summary + recommendations table\n│ ├── 02-findings.md body, with code listing and pull-quote\n│ └── 03-methodology.md\n└── README.md this file\n```\n\n## When to pick `report` over `book` or `monograph`\n\n- The reader expects a summary up top and methodology at the bottom.\n- The body has tables, code, configuration snippets, or numbered findings.\n- Block paragraphs (no indent) read better than first-line-indented prose for the content.\n- A wider page (trade-7x10) gives long code lines and wide tables more room.\n\nFor prose-driven content, pick `book` (trade-6x9) or `monograph` (royal-octavo, classical typography).\n\n## Adding citations\n\nReports often cite — primary sources backing findings, prior work in methodology, regulatory references in compliance reports. The same `@uniweb/book` foundation supports inline cites and a back-matter bibliography; this template ships them commented out so a report that doesn't need them isn't carrying empty scaffolding. To opt in:\n\n1. Uncomment the `citationStyle:` block under `book:` and the `collections:` block at the bottom of `document.yml`.\n2. Create `collections/bibliography/` and
|
|
56
|
+
"README.md": "# `report` template\n\nA technical report: trade-7x10 trim, block paragraphs (no first-line indent), tables and code listings styled for clarity, code-block margin relief so wide content doesn't wrap awkwardly. Same `@uniweb/book` foundation as the `book` and `monograph` templates — configured for technical writing.\n\n```bash\nunipress compile . --format pdf --out my-report.pdf\nunipress compile . --format pagedjs --out my-report.html\n```\n\n## What's here\n\n```\nreport/\n├── document.yml pinned to @uniweb/book; trade-7x10, block paragraphs\n├── content/\n│ ├── 01-summary.md executive summary + recommendations table\n│ ├── 02-findings.md body, with code listing and pull-quote\n│ └── 03-methodology.md\n└── README.md this file\n```\n\n## When to pick `report` over `book` or `monograph`\n\n- The reader expects a summary up top and methodology at the bottom.\n- The body has tables, code, configuration snippets, or numbered findings.\n- Block paragraphs (no indent) read better than first-line-indented prose for the content.\n- A wider page (trade-7x10) gives long code lines and wide tables more room.\n\nFor prose-driven content, pick `book` (trade-6x9) or `monograph` (royal-octavo, classical typography).\n\n## Adding citations\n\nReports often cite — primary sources backing findings, prior work in methodology, regulatory references in compliance reports. The same `@uniweb/book` foundation supports inline cites and a back-matter bibliography; this template ships them commented out so a report that doesn't need them isn't carrying empty scaffolding. To opt in:\n\n1. Uncomment the `citationStyle:` block under `book:` and the `collections:` block at the bottom of `document.yml`.\n2. Create `collections/bibliography/` and drop a `.bib` file in (each `@entry{key, ...}` becomes one record; the cite key is what you reference with `[@key]`). Hand-written YAML in CSL-JSON shape works alongside it if you'd rather edit entries directly.\n3. Cite in prose: `[@smith2024]`, `[@smith2024]{page=12}` for a locator, `[@a; @b]` for a multi-cite cluster, `[@key]{suppress-author}` when the author is named in the running prose.\n4. Add a back-matter content file (e.g. `99-bibliography.md`) with `type: Bibliography` and `data: bibliography` in frontmatter.\n\nPick a citation style by setting `book.citationStyle:` to one of `chicago-author-date`, `apa`, `mla`, `harvard`, `ieee`, `vancouver`, `ama`, `nature`, `science`. For numbered styles (IEEE, Vancouver, Nature, etc.), the back-matter list reuses the same numbering as the inline cites — `[1]` inline matches `[1]` in the back-matter.\n\nThe `monograph` template ships with this turned on as a worked example — `unipress create my-mono --template monograph` to see it, including a Victorian-naturalist bibliography that exercises every cite shape.\n\n## Customize\n\nEdit `document.yml`:\n\n- `book.trim:` — `trade-7x10` (default), `trade-6x9`, `crown-octavo`, `royal-octavo`, `a5`.\n- `book.typography.codeMarginRelief:` — `0pt` to disable; `0.25in` (default) lets code blocks extend past the body column.\n- `book.typography.firstLineIndent:` — `0pt` (default for reports) for block paragraphs; `1.25em` for prose-style indented paragraphs.\n- `book.structure.copyrightPage:` — `false` (default for reports) to drop the copyright spread.\n- `book.citationStyle:` — one of nine supported styles; pairs with the `collections.bibliography` block above.\n",
|
|
65
57
|
"content/01-summary.md": "---\ntype: BackMatter\ntitle: Executive Summary\n---\n\n# Executive Summary\n\nA technical report opens with a summary because most readers will read no further. State the question, the headline answer, and the practical implications in three or four short paragraphs. Save the methodology, caveats, and full evidence for the body.\n\nThis template is configured for technical writing rather than narrative prose: a wider trade-7x10 trim, no first-line paragraph indent (block paragraphs read better with technical content), and a code-block margin relief that lets long code lines and wide tables push past the body column.\n\n## Headline result\n\nLead with the single most important finding. One sentence, plain language. The reader who stops here should still leave with the one thing you most want them to know.\n\n## Recommendations\n\n| # | Recommendation | Owner | Timeline |\n|---|----------------|-------|----------|\n| 1 | First action item, stated as an imperative. | Team A | Q3 |\n| 2 | Second action item. | Team B | Q4 |\n| 3 | Third — typically a measurement or follow-up. | Team A | Q4 |\n\nTables work in both PDF and EPUB output. The Paged.js stylesheet keeps rows together so a table doesn't break across pages mid-row.\n",
|
|
66
58
|
"content/02-findings.md": "# Findings\n\nThe body of the report. Replace this content with the substance of what you measured, observed, or analyzed. Each subsection is one finding; lead with the conclusion and follow with the evidence.\n\n## Finding one\n\nA finding is a claim plus a justification. State the claim in the heading or the first sentence; let the rest of the paragraph carry the evidence.\n\nThe numbers you cite should be reproducible. Where they came from, what time window they cover, and how you computed them should be obvious to a reader six months from now who finds the report and has lost the original spreadsheet.\n\n```js\n// A short, runnable code listing.\nconst median = (xs) =>\n xs.sort((a, b) => a - b)[Math.floor(xs.length / 2)]\n```\n\nThe `codeMarginRelief: 0.25in` setting in `document.yml` lets code blocks extend 0.25in past the body column on each side. For wide listings — long config files, full SQL queries, JSON snapshots — that extra room means lines don't wrap mid-statement.\n\n## Finding two\n\nA second finding, with its own claim and its own evidence. Keep the structure consistent across findings so the reader builds an expectation about how each section is going to be organized.\n\n> A pull-quote or block quotation can break up a long stretch of body text and signal that what follows deserves extra attention.\n\n## Finding three\n\nThe third typically points the reader toward whatever comes next — the methodology section that explains how the findings were obtained, an appendix with the raw data, or a follow-up report.\n",
|
|
67
59
|
"content/03-methodology.md": "# Methodology\n\nA reader who acts on the report's recommendations needs to know how the findings were obtained — not because they will redo the work, but because they need a sense of how confident the numbers are.\n\n## Data sources\n\nList the inputs. For each: what it is, when you collected it, who provided it, and any cleanup or filtering you applied before analysis.\n\n- Source A — origin, time window, sample size.\n- Source B — origin, time window, sample size.\n- Source C — origin, time window, sample size.\n\n## Analysis\n\nDescribe the steps from raw input to the numbers cited in the findings. A short section is fine — a paragraph per step, with code or formulas inline where they sharpen the explanation.\n\n## Limitations\n\nEvery report has limits. Naming them up front is more credible than letting a reader find them. A short list is enough — \"the sample only covers Q1–Q3, not the holiday period\" or \"we relied on self-reported timing rather than logged events\" — and it earns the reader's trust on the rest of the analysis.\n",
|