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="https://blog.tangled.org{{ .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="https://blog.tangled.org{{ .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<header class="max-w-screen-xl mx-auto w-full" style="z-index: 20;">
24 {{ template "layouts/fragments/topbar" . }}
25</header>
26{{ end }}
27
28{{ define "footerLayout" }}{{ template "blog/fragments/footer" . }}{{ end }}
29
30{{ define "content" }}
31<div class="max-w-[90ch] mx-auto w-full px-4 py-8">
32 <div class="prose dark:prose-invert w-full max-w-none">
33
34 <header class="not-prose mb-4">
35 {{ $authors := .Post.Meta.Authors }}
36 <p class="mb-1 text-sm text-gray-600 dark:text-gray-400">
37 {{ $date := .Post.ParsedDate }}
38 {{ $date | shortTimeFmt }}
39 </p>
40
41 <h1 class="mb-0 text-2xl font-bold dark:text-white">
42 {{ .Post.Meta.Title }}
43 {{ if .Post.Meta.Draft }}<span class="text-red-500 text-base font-normal">[draft]</span>{{ end }}
44 </h1>
45 <p class="italic mt-1 mb-3 text-lg text-gray-600 dark:text-gray-400">{{ .Post.Meta.Subtitle }}</p>
46
47 <div class="flex items-center gap-3 not-prose">
48 {{ $hasAvatar := false }}{{ range $authors }}{{ if tinyAvatar .Handle }}{{ $hasAvatar = true }}{{ end }}{{ end }}
49 {{ if $hasAvatar }}
50 <div class="inline-flex items-center -space-x-2">
51 {{ range $authors }}
52 {{ $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 }}
53 {{ end }}
54 </div>
55 {{ end }}
56 <div class="flex items-center gap-1 text-sm text-gray-700 dark:text-gray-300">
57 {{ range $i, $a := $authors }}
58 {{ if gt $i 0 }}<span class="text-gray-400">&</span>{{ end }}
59 <a href="https://tangled.org/@{{ $a.Handle }}" class="hover:underline">{{ $a.Handle }}</a>
60 {{ end }}
61 </div>
62 </div>
63 </header>
64
65 <article>
66 {{ .Post.Body }}
67 </article>
68
69 </div>
70</div>
71{{ end }}