junetanglesite
june.tngl.io
2.4 kB
82 lines
1local copyright = [[
2
3 Copyright 2026 june
4
5 Licensed under the Apache License, Version 2.0 (the "License");
6 you may not use this file except in compliance with the License.
7 You may obtain a copy of the License at
8
9 https://tangled.org/did:plc:s4om5qbdtjzf53vsl4rxklbt/blob/main/LICENSE
10]]
11
12local did = "did:plc:b26ewgkrnx3yvsp2cdao3ntu"
13local site = "https://koi.rip"
14
15local function head()
16 local title = "juneeeee"
17 local description = "meow meow meow meow meow meow meow meow"
18 local canonical = "https://june.tngl.io"
19
20 return h.head({
21 h.meta({ charset = "utf-8" }),
22 h.meta({ name = "viewport", content = "width=device-width, initial-scale=1" }),
23 h.meta({ name = "color-scheme", content = "dark" }),
24 h.meta({ name = "darkreader-lock" }),
25 h.title(title),
26 h.meta({ name = "title", content = title }),
27 h.meta({ name = "description", content = description }),
28 h.meta({ name = "theme-color", content = "#cbe3b3" }),
29 h.link({ rel = "stylesheet", href = "/static/styles.css" }),
30 h.link({ rel = "canonical", href = canonical }),
31 h.link({
32 rel = "icon",
33 href = site .. "/img/favicon.ico",
34 type = "image/x-icon",
35 sizes = "32x32 64x64 96x96 128x128 256x256",
36 }),
37 h.link({
38 rel = "me atproto",
39 href = "https://bsky.app/profile/" .. did,
40 }),
41 h.meta({ property = "og:title", content = title }),
42 h.meta({ property = "og:description", content = description }),
43 h.meta({ property = "og:locale", content = "es_US" }),
44 h.meta({ property = "og:type", content = "website" }),
45 h.meta({ property = "og:url", content = canonical }),
46 })
47end
48
49local function link_list(links)
50 return h.ul(h(Iter.lst(links)
51 :map(function(_, link)
52 return h.li(h.a({ link.name, target = "_blank", href = link.href }))
53 end)
54 :to()))
55end
56
57local function body()
58 return h.body({
59 h.h1("june"),
60 link_list({
61 { name = "tangled", href = "https://tangled.org/" .. did },
62 { name = "bluesky", href = "https://bsky.app/profile/" .. did },
63 { name = "website", href = site },
64 { name = "forgejo", href = "https://git.koi.rip" },
65 }),
66 })
67end
68
69local function index()
70 return h.document({
71 h.comment(copyright),
72 h.html({
73 lang = "en",
74 head(),
75 body(),
76 }),
77 })
78end
79
80return function()
81 maivi.router:add("/", index, {})
82end