Files
neilhanlon.me/layouts/partials/head.html
T
neilandClaude Opus 4.8 698d70d9ef Redesign: replace hugo-sustain with self-contained editorial theme
Drop the hugo-sustain submodule and build a custom theme forked from the
shrug.host design system, recolored to a potato identity (russet skin,
sprout-green leitmotif, purple-potato accent; potato-flesh light + soil
dark, follows prefers-color-scheme with a persisted toggle).

- Self-hosted Commit Mono + Source Serif 4 (no external requests)
- Token-based CSS: tokens / base / components / layouts
- Layouts: baseof, index (hero + latest posts + "now"), single, list,
  projects (card grid), partials for nav/footer/head + OG/Twitter/schema
- SEO scaffolding hugo-sustain lacked: OpenGraph, Person/BlogPosting
  schema, RSS, canonical
- Pipeline unchanged (Hugo 0.148.2, GitHub Pages); post URLs preserved

Co-Authored-By: Claude Opus 4.8 (1M context) <noreply@anthropic.com>
2026-07-11 11:08:32 -04:00

46 lines
1.8 KiB
HTML

<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<meta name="color-scheme" content="light dark">
<title>{{ if .IsHome }}{{ .Site.Title }} — {{ .Site.Params.description }}{{ else }}{{ .Title }} | {{ .Site.Title }}{{ end }}</title>
<meta name="description" content="{{ with .Description }}{{ . }}{{ else }}{{ .Site.Params.description }}{{ end }}">
<meta name="author" content="{{ .Site.Params.author }}">
{{- partial "opengraph.html" . }}
{{- partial "twitter_cards.html" . }}
{{- partial "schema.html" . }}
<link rel="canonical" href="{{ .Permalink }}">
<!-- Favicon -->
<link rel="icon" type="image/svg+xml" href="/favicon.svg">
{{- with .OutputFormats.Get "rss" }}
<link rel="alternate" type="application/rss+xml" title="{{ $.Site.Title }}" href="{{ .Permalink }}">
{{- end }}
<!-- Preload critical fonts -->
<link rel="preload" href="/fonts/CommitMono-700-Regular.woff2" as="font" type="font/woff2" crossorigin>
<link rel="preload" href="/fonts/SourceSerif4.woff2" as="font" type="font/woff2" crossorigin>
<!-- Styles -->
{{- $tokens := resources.Get "css/tokens.css" }}
{{- $base := resources.Get "css/base.css" }}
{{- $components := resources.Get "css/components.css" }}
{{- $layouts := resources.Get "css/layouts.css" }}
{{- $css := slice $tokens $base $components $layouts | resources.Concat "css/main.css" }}
{{- if hugo.IsProduction }}
{{- $css = $css | resources.Minify | resources.Fingerprint }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}" integrity="{{ $css.Data.Integrity }}">
{{- else }}
<link rel="stylesheet" href="{{ $css.RelPermalink }}">
{{- end }}
<!-- Theme: read preference before render to avoid flash -->
<script>
(function(){
var t = localStorage.getItem('potato-theme');
if (t) { document.documentElement.setAttribute('data-theme', t); }
})();
</script>