My website lesbian.skin
0
fork

Configure Feed

Select the types of activity you want to include in your feed.

CSS Edits

+50 -12
+2 -2
src/build.gleam
··· 18 18 |> sklustre.setup() 19 19 20 20 sketch.prepare(cache) 21 - 21 + 22 22 let posts = 23 23 dict.from_list({ 24 24 use post <- list.map(posts.all()) ··· 33 33 34 34 let build = 35 35 ssg.new("./out") 36 - |> ssg.add_static_route("/", index.view()) 36 + |> ssg.add_static_route("/", index.view(cache)) 37 37 |> ssg.add_static_route("/blog", blog.view(posts.all())) 38 38 |> ssg.add_dynamic_route("/blog", posts, post.view) 39 39 |> ssg.add_static_route("/projects", projects.view(projects.all(), cache))
+6 -6
src/website/data/projects.gleam
··· 25 25 26 26 fn project_class(archived: Bool) -> attribute.Attribute(a) { 27 27 let #(bg, bg_hov) = case archived { 28 - True -> #("#cb402b", "#f1553e") 29 - False -> #("#ddd4dd", "#daccda") 28 + True -> #("#d36473", "#c55d6b") 29 + False -> #("#cae4e7", "#b8cfd2") 30 30 } 31 31 sketch.class([ 32 32 sketch.background(bg), 33 33 sketch.padding(em(1)), 34 34 sketch.hover([sketch.background(bg_hov)]), 35 35 sketch.margin_bottom(em_(0.5)), 36 - sketch.border_radius(em_(0.75)) 36 + sketch.border_radius(em_(0.75)), 37 37 ]) 38 38 |> sketch.to_lustre 39 39 } ··· 88 88 |> ssr(cache) 89 89 }) 90 90 |> html.div([], _) 91 - |> ssr(cache) 91 + |> index.wrapper(cache) 92 92 } 93 93 94 94 pub fn all() -> List(Project) { ··· 206 206 id: "biomes_only", 207 207 title: "Incendium Biomes Only", 208 208 author: "naomieow", 209 - img: "./assets/biomes_only.png", 209 + img: "https://codeberg.org/repo-avatars/201bb4544ceaf3ca51a75958e3e276741e7ded9af6ee54e045be0b8010a45c4a", 210 210 links: [modrinth("ibo"), curseforge_mod("incendium-biomes-only")], 211 211 archived: False, 212 212 summary: html.p([], [ ··· 242 242 id: "asbestos", 243 243 title: "Carcinogenic Fibrous Silicate", 244 244 author: "naomieow", 245 - img: "./assets/asbestos.png", 245 + img: "https://codeberg.org/repo-avatars/4bc99be0657207ffeededcf7b62c9b032dae9570c17af372755755b5c9566175", 246 246 links: [modrinth("cfs")], 247 247 archived: True, 248 248 summary: html.p([], [
+42 -4
src/website/page/index.gleam
··· 1 + import lustre/attribute 1 2 import lustre/element 2 3 import lustre/element/html 3 - import lustre/attribute 4 + import sketch 5 + import sketch/lustre.{ssr} 6 + import sketch/size.{em} 4 7 5 8 pub fn link(text: String, url: String) -> element.Element(a) { 6 9 html.a([attribute.href(url)], [element.text(text)]) 7 10 } 8 11 9 - pub fn view() -> element.Element(a) { 10 - html.h1([], [element.text("Index")]) 11 - } 12 + fn body_class() -> attribute.Attribute(a) { 13 + sketch.class([ 14 + sketch.margin_left(em(15)), 15 + sketch.margin_right(em(15)), 16 + sketch.font_family("\"Inter\", sans-serif"), 17 + sketch.font_weight("400"), 18 + sketch.font_style("normal"), 19 + ]) 20 + |> sketch.to_lustre 21 + } 22 + 23 + pub fn wrapper(inner: element.Element(a), cache) -> element.Element(a) { 24 + html.html([], [ 25 + html.head([], [ 26 + html.link([ 27 + attribute.rel("preconnect"), 28 + attribute.href("https://fonts.googleapis.com"), 29 + ]), 30 + html.link([ 31 + attribute.rel("preconnect"), 32 + attribute.href("https://fonts.gstatic.com"), 33 + ]), 34 + html.link([ 35 + attribute.href( 36 + "https://fonts.googleapis.com/css2?family=Inter:wght@100..900&display=swap", 37 + ), 38 + attribute.rel("stylesheet"), 39 + ]), 40 + ]), 41 + html.body([body_class()], [inner]), 42 + ]) 43 + |> ssr(cache) 44 + } 45 + 46 + pub fn view(cache: sketch.Cache) -> element.Element(a) { 47 + html.h1([], [element.text("Index")]) 48 + |> wrapper(cache) 49 + }