How anuopensci/quarto-anu-thesis works
1. Repository purpose
- This is a Quarto project template for an ANU thesis, not an application with runtime business logic.
- The architecture centers on source documents and rendering configuration that produce two outputs: HTML site and PDF thesis.
2. Primary source content layer
- The thesis content is split across standalone .qmd files: index.qmd, abstract.qmd, acknowledgements.qmd, disclaimer.qmd, chapter1.qmd, chapter2.qmd, tools.qmd, and references.qmd.
- These files are the main authored content units and form the document structure rendered by Quarto.
3. Project-level configuration
- _quarto.yml is the central build definition: it controls project metadata, output formats, site behavior, and which templates/extensions are applied.
- _variables.yml likely holds shared text/metadata variables used across multiple .qmd files and templates.
- ref.bib is the bibliography source for citations and reference generation.
4. Template and styling extension boundary
- The _extensions/anu-thesis directory is the main customization layer that adapts Quarto to the ANU thesis format.
- This extension is the boundary between generic Quarto rendering and thesis-specific branding, layout, and document structure.
5. HTML presentation subsystem
- HTML output is styled by the extension assets under _extensions/anu-thesis/assets/css/all.css and custom.scss.
- HTML title/page structure is customized through templates such as title-block.html.
- The generated site includes Quarto runtime libraries under docs/site_libs, plus navigation/search support.
6. PDF / LaTeX rendering subsystem
- PDF output is driven by LaTeX templates and style files in _extensions/anu-thesis/assets/latex and related files such as header.tex, _titlepage.tex, and anuthesis.sty.
- These files define the thesis title page, document class behavior, table-of-contents formatting, and other print-specific layout rules.
- latex-environment.lua is a Quarto extension hook used to integrate custom LaTeX environment behavior during rendering.
7. Shared assets and branding
- Branding assets are stored in images/ and _extensions/anu-thesis/assets/latex/, including ANU logo artwork.
- Web fonts and other front-end assets live under _extensions/anu-thesis/assets/webfonts, supporting the HTML visual identity.
- These assets are reused across both output formats where applicable.
8. Rendered outputs are checked in
- The docs/ directory contains the published/generated artifacts: rendered HTML pages, thesis.pdf, images, search index, and site libraries.
- From an architecture perspective, docs/ is the output layer, not the source-of-truth layer.
- This indicates the repo is designed for publishing via a static site host, with docs/ as the deployable site root.
9. Information flow through the system
- Content flows from the .qmd chapter files and bibliography into Quarto.
- Quarto applies _quarto.yml, shared variables, and the ANU extension templates/styles.
- The build then emits two parallel products: HTML pages for web reading and a single PDF thesis for print/download.
10. Tooling/runtime dependencies
- The core build tool is Quarto, which orchestrates Markdown-to-HTML and Markdown-to-PDF generation.
- PDF generation implies a LaTeX toolchain behind the scenes.
- The presence of quarto-anu-thesis.Rproj suggests an RStudio-compatible project setup, but the repo itself is template/content focused rather than R-application code.
11. Practical architectural takeaway
- For diagramming, treat this repo as a document publishing pipeline with three layers:
- Source content: .qmd, bibliography, and shared variables
- Presentation/configuration: _quarto.yml plus _extensions/anu-thesis
- Generated deliverables: docs/ HTML site and docs/thesis.pdf
Main entry points: anu-thesis ANU thesis · _variables.yml Shared vars · ref.bib Bibliography · index.qmd Front matter
Components 24
Source content
Authored thesis chapters, shared variables, and bibliography.
- Shared vars · Reusable text and metadata shared across documents.
_variables.yml - Bibliography · BibTeX source for citations and references.
ref.bib - Front matter · Main entry and thesis front matter.
index.qmd - Abstract · Standalone abstract page.
abstract.qmd - Thanks · Acknowledgements section.
acknowledgements.qmd - Disclaimer · Project or thesis disclaimer page.
disclaimer.qmd - Chapter 1 · Main thesis chapter content.
chapter1.qmd - Chapter 2 · Main thesis chapter content.
chapter2.qmd - Tools · Methods, tooling, or appendix-style content.
tools.qmd - References · Bibliography rendering and reference list page.
references.qmd
Build and extension
Quarto project settings and the ANU thesis extension layer.
- Quarto config · Central build definition for site and PDF rendering.
_quarto.yml - ANU thesis · Thesis-specific layout, branding, and format customization.
_extensions/anu-thesis - HTML theme · Web styling and title-block customization for HTML output.
_extensions/anu-thesis/assets/css/all.css - HTML layout · Custom web styling and page structure overrides.
_extensions/anu-thesis/custom.scss - Title block · HTML title/page header customization.
_extensions/anu-thesis/assets/title-block.html - LaTeX hook · Extension hook for custom LaTeX environment handling.
_extensions/anu-thesis/_extensions/quarto-ext/latex-environment/latex-environment.lua - PDF header · Shared LaTeX preamble and document setup.
_extensions/anu-thesis/header.tex - Title page · Thesis title page and front-matter layout.
_extensions/anu-thesis/_titlepage.tex - Thesis style · ANU thesis LaTeX style and formatting rules.
_extensions/anu-thesis/assets/latex/anuthesis.sty - Quarto · Orchestrates Markdown-to-HTML and Markdown-to-PDF rendering.
- LaTeX · Backend toolchain used to build the thesis PDF.
Generated output
Rendered site and PDF deliverables checked into the repo.
- Published site · Checked-in HTML output root for the thesis site.
docs - Thesis PDF · Rendered thesis document for print and download.
docs/thesis.pdf - Site libs · Generated Quarto runtime libraries used by the HTML site.
docs/site_libs
Connections 23
- Quarto config → Quarto: drives · Project settings determine how Quarto renders the thesis.
- Shared vars → Quarto: feeds · Shared variables are substituted into documents during rendering.
- Bibliography → Quarto: feeds · Citation data powers reference generation.
- Front matter → Quarto: renders via · Front matter is rendered by Quarto.
- Abstract → Quarto: renders via · Abstract page is rendered by Quarto.
- Thanks → Quarto: renders via · Acknowledgements page is rendered by Quarto.
- Disclaimer → Quarto: renders via · Disclaimer page is rendered by Quarto.
- Chapter 1 → Quarto: renders via · Chapter content is rendered by Quarto.
- Chapter 2 → Quarto: renders via · Chapter content is rendered by Quarto.
- Tools → Quarto: renders via · Supporting content is rendered by Quarto.
- References → Quarto: renders via · Reference list page is rendered by Quarto.
- ANU thesis → Quarto: extends · Thesis extension customizes the standard Quarto pipeline.
- ANU thesis → HTML theme: includes · Extension supplies web styling assets.
- ANU thesis → HTML layout: includes · Extension supplies HTML presentation overrides.
- ANU thesis → Title block: includes · Extension customizes the rendered title block.
- ANU thesis → LaTeX hook: includes · Extension adds custom LaTeX environment behavior.
- ANU thesis → PDF header: includes · Extension provides shared LaTeX preamble content.
- ANU thesis → Title page: includes · Extension defines the thesis title page.
- ANU thesis → Thesis style: includes · Extension provides thesis-specific LaTeX styling.
- Quarto → Published site: emits · Quarto generates the HTML site into the checked-in docs root.
- Quarto → Site libs: emits · Quarto generates runtime assets for the site.
- Quarto → LaTeX: invokes · PDF rendering is delegated to LaTeX.
- LaTeX → Thesis PDF: emits · LaTeX produces the thesis PDF artifact.