forked from
tangled.org/core
Monorepo for Tangled
1{{ define "title" }}{{ .Post.Meta.Title }} — tangled blog{{ end }}
2
3{{ define "extrameta" }}
4<meta name="description" content="{{ .Post.Meta.Subtitle }}"/>
5<meta property="og:title" content="{{ .Post.Meta.Title }}" />
6<meta property="og:description" content="{{ .Post.Meta.Subtitle }}" />
7<meta property="og:url" content="https://blog.tangled.org/{{ .Post.Meta.Slug }}" />
8{{ if .Post.Meta.Image }}
9<meta property="og:image" content="{{ .Post.Meta.Image }}" />
10<meta property="og:image:width" content="1200" />
11<meta property="og:image:height" content="630" />
12<meta name="twitter:card" content="summary_large_image" />
13<meta name="twitter:image" content="{{ .Post.Meta.Image }}" />
14{{ end }}
15<meta name="twitter:title" content="{{ .Post.Meta.Title }}" />
16<meta name="twitter:description" content="{{ .Post.Meta.Subtitle }}" />
17<link rel="alternate" type="application/atom+xml" title="Atom" href="/feed.xml" />
18{{ end }}
19
20{{ define "bodyClasses" }}!bg-white dark:!bg-gray-900{{ end }}
21
22{{ define "topbarLayout" }}
23 {{ template "blog/fragments/topbar" . }}
24{{ end }}
25
26{{ define "footerLayout" }}{{ template "blog/fragments/footer" . }}{{ end }}
27
28{{ define "content" }}
29<div class="max-w-[90ch] mx-auto w-full px-4 py-8">
30 <div class="prose dark:prose-invert prose-headings:no-underline [&_h1]:border-none [&_h2]:border-none [&_h1]:pb-0 [&_h2]:pb-0 [&_h2]:text-[1.25em] text-[15px] w-full max-w-none">
31
32 <header class="not-prose mb-4">
33 {{ $authors := .Post.Meta.Authors }}
34 <div class="flex items-center gap-2 mb-1 text-sm text-gray-600 dark:text-gray-400">
35 <a href="/" class="flex items-center gap-1 text-gray-600 dark:text-gray-400">{{ i "arrow-left" "size-4" }} all posts</a>
36 ·
37 <p>
38 {{ $date := .Post.ParsedDate }}
39 {{ $date | shortTimeFmt }}
40 </p>
41 </div class="flex items-center gap-2">
42
43 <h1 class="mb-0 text-2xl font-bold dark:text-white">
44 {{ .Post.Meta.Title }}
45 {{ if .Post.Meta.Draft }}<span class="text-red-500 text-base font-normal">[draft]</span>{{ end }}
46 </h1>
47 <p class="italic mt-1 mb-3 text-lg text-gray-600 dark:text-gray-400">{{ .Post.Meta.Subtitle }}</p>
48
49 <div class="flex items-center gap-3 not-prose">
50 {{ $hasAvatar := false }}{{ range $authors }}{{ if tinyAvatar .Handle }}{{ $hasAvatar = true }}{{ end }}{{ end }}
51 {{ if $hasAvatar }}
52 <div class="inline-flex items-center -space-x-2">
53 {{ range $authors }}
54 {{ $av := tinyAvatar .Handle }}{{ if $av }}<img src="{{ $av }}" class="size-7 rounded-full border border-gray-300 dark:border-gray-700" alt="{{ .Handle }}" title="{{ .Handle }}" />{{ end }}
55 {{ end }}
56 </div>
57 {{ end }}
58 <div class="flex items-center gap-1 text-sm text-gray-700 dark:text-gray-300">
59 {{ range $i, $a := $authors }}
60 {{ if gt $i 0 }}<span class="text-gray-400">&</span>{{ end }}
61 <a href="https://tangled.org/@{{ $a.Handle }}" class="hover:underline">{{ $a.Handle }}</a>
62 {{ end }}
63 </div>
64 </div>
65 </header>
66
67 <article>
68 {{ .Post.Body }}
69 </article>
70
71 </div>
72</div>
73{{ end }}