main pico / pkg / apps / prose / html / read.page.tmpl
Eric Bower  ·  2026-10-02
 1{{template "base" .}}
 2
 3{{define "title"}}prose.sh -- A blog platform for hackers{{end}}
 4
 5{{define "meta"}}
 6<meta name="description" content="A blog platform for hackers" />
 7<link rel="alternate" href="/rss" type="application/rss+xml" title="RSS feed for prose.sh" />
 8<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
 9
10<meta property="og:type" content="website">
11<meta property="og:site_name" content="{{.Site.Domain}}">
12<meta property="og:url" content="https://{{.Site.Domain}}">
13<meta property="og:title" content="{{.Site.Domain}}">
14<meta property="og:description" content="A blog platform for hackers">
15
16<meta name="twitter:card" content="summary" />
17<meta property="twitter:url" content="https://{{.Site.Domain}}">
18<meta property="twitter:title" content="{{.Site.Domain}}">
19<meta property="twitter:description" content="A blog platform for hackers">
20<meta name="twitter:image" content="https://{{.Site.Domain}}/card.png" />
21<meta name="twitter:image:src" content="https://{{.Site.Domain}}/card.png" />
22
23<meta property="og:image:width" content="300" />
24<meta property="og:image:height" content="300" />
25<meta itemprop="image" content="https://{{.Site.Domain}}/card.png" />
26<meta property="og:image" content="https://{{.Site.Domain}}/card.png" />
27
28<link rel="stylesheet" href="/read.css" />
29{{end}}
30
31{{define "attrs"}}{{end}}
32
33{{define "body"}}
34<header>
35    <h1>prose.sh</h1>
36    <p>A blog platform for hackers</p>
37    <div class="flex items-center gap my">
38        <span class="box-sm mono text-sm"><span class="text-green">$</span> ssh pico.sh</span>
39        <a href="https://pico.sh/prose" class="mono">[docs]</a>
40        <a href="/rss" class="mono">[rss]</a>
41    </div>
42</header>
43
44<main>
45    <div class="flex items-center text-sm text-grey mono my">
46        <span class="post-date">DATE</span>
47        <span class="flex-1">POST</span>
48        <span>SCORE</span>
49    </div>
50    {{range .Posts}}
51    <article class="my">
52        <div class="flex items-center">
53            <time datetime="{{.PublishAtISO}}" class="mono text-sm post-date">{{.PublishAt}}</time>
54            <div class="flex-1">
55                <a class="text-md transform-none" href="{{.URL}}">{{.Title}}</a>
56                <span class="text-sm mono">
57                    <a href="{{.BlogURL}}" class="text-grey">~{{.Username}}</a>
58                </span>
59            </div>
60            <span class="text-sm text-grey mono">[{{.Score}}]</span>
61        </div>
62    </article>
63    {{end}}
64</main>
65{{template "marketing-footer" .}}
66{{end}}