57 lines
3.1 KiB
HTML
57 lines
3.1 KiB
HTML
<meta charset="UTF-8">
|
|
<meta name="viewport" content="width=device-width, initial-scale=1.0">
|
|
$if(home)$<title>$site-title$</title>$else$<title>$title$ — $site-title$</title>$endif$
|
|
<link rel="stylesheet" href="/css/base.css">
|
|
<link rel="stylesheet" href="/css/layout.css">
|
|
<link rel="stylesheet" href="/css/typography.css">
|
|
<link rel="stylesheet" href="/css/sidenotes.css">
|
|
<link rel="stylesheet" href="/css/syntax.css">
|
|
<link rel="stylesheet" href="/css/components.css">
|
|
<link rel="stylesheet" href="/css/gallery.css">
|
|
<link rel="stylesheet" href="/css/popups.css">
|
|
<link rel="stylesheet" href="/css/selection-popup.css">
|
|
<link rel="stylesheet" href="/css/annotations.css">
|
|
<link rel="stylesheet" href="/css/images.css">
|
|
$if(home)$<link rel="stylesheet" href="/css/home.css">$endif$
|
|
$if(library)$<link rel="stylesheet" href="/css/library.css">$endif$
|
|
$if(new-page)$<link rel="stylesheet" href="/css/new.css">$endif$
|
|
$if(catalog)$<link rel="stylesheet" href="/css/catalog.css">$endif$
|
|
$if(commonplace)$<link rel="stylesheet" href="/css/commonplace.css">$endif$
|
|
$if(build)$<link rel="stylesheet" href="/css/build.css">$endif$
|
|
$if(reading)$<link rel="stylesheet" href="/css/reading.css">$endif$
|
|
$if(composition)$<link rel="stylesheet" href="/css/score-reader.css">$endif$
|
|
$if(photography)$<link rel="stylesheet" href="/css/photography.css">$endif$
|
|
$if(photography-map)$<link rel="stylesheet" href="/leaflet/leaflet.css">$endif$
|
|
$if(photography-map)$<link rel="stylesheet" href="/leaflet/MarkerCluster.css">$endif$
|
|
$if(photography-map)$<link rel="stylesheet" href="/leaflet/MarkerCluster.Default.css">$endif$
|
|
<link rel="stylesheet" href="/css/print.css" media="print">
|
|
$if(math)$
|
|
<!-- KaTeX CSS+fonts (~280 KB) is loaded from jsDelivr rather than vendored.
|
|
The framework vendors what is privacy/CSP-critical (Leaflet for the
|
|
photography map, the ML model for client-side semantic search); KaTeX
|
|
and Vega below are loaded only on pages that opt into them via
|
|
frontmatter, so the third-party request is bounded and predictable.
|
|
Swap the URL for a local /katex/ path if your CSP requires self-only. -->
|
|
<link rel="stylesheet" href="https://cdn.jsdelivr.net/npm/katex@0.16.11/dist/katex.min.css">
|
|
$endif$
|
|
$if(search)$
|
|
<link rel="stylesheet" href="/pagefind/pagefind-ui.css">
|
|
$endif$
|
|
<script src="/js/utils.js"></script>
|
|
<script src="/js/theme.js"></script>
|
|
$if(viz)$
|
|
<!-- Vega + Vega-Lite + Vega-Embed (~1.5 MB total) is loaded from jsDelivr
|
|
rather than vendored. Same rationale as KaTeX above: opt-in per page
|
|
via `viz: true` frontmatter, so the request only happens on pages that
|
|
actually render data visualisations. Swap for local /vega/ paths if
|
|
your CSP requires self-only. -->
|
|
<link rel="stylesheet" href="/css/viz.css">
|
|
<script src="https://cdn.jsdelivr.net/npm/vega@5" defer></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/vega-lite@5" defer></script>
|
|
<script src="https://cdn.jsdelivr.net/npm/vega-embed@6" defer></script>
|
|
<script src="/js/viz.js" defer></script>
|
|
$endif$
|
|
<script src="/js/collapse.js" defer></script>
|
|
<script src="/js/transclude.js" defer></script>
|
|
<script src="/js/copy.js" defer></script>
|