about summary refs log tree commit diff
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2023-06-15 17:05:11 +0300
committerVika <vika@fireburn.ru>2023-06-15 17:05:11 +0300
commit7264126a184b357a1764a577c299d1cc06083696 (patch)
tree529cbdf8b799147dbde0135a5ba48a894287e753
parented7049048cc4d12422c07ddbaa15fbb3662c0260 (diff)
downloadkittybox-7264126a184b357a1764a577c299d1cc06083696.tar.zst
templates: allow for alt-text on profile photo
Fixes accessibility issue and allows non-sighted users to learn how
your profile picture looks.

Generating alt-text with AI might be a nice idea, except I don't know
how to integrate this yet.
-rw-r--r--kittybox-rs/templates/src/mf2.rs18
1 files changed, 18 insertions, 0 deletions
diff --git a/kittybox-rs/templates/src/mf2.rs b/kittybox-rs/templates/src/mf2.rs
index eaac621..893cf7b 100644
--- a/kittybox-rs/templates/src/mf2.rs
+++ b/kittybox-rs/templates/src/mf2.rs
@@ -36,6 +36,12 @@ markup::define! {
                     a."u-author"[href=author["properties"]["uid"][0].as_str().unwrap()] {
                         @if let Some(photo) = author["properties"]["photo"][0].as_str() {
                             img[src=photo, loading="lazy"];
+                        } else if author["properties"]["photo"][0].is_object() {
+                            img[
+                                src=author["properties"]["photo"][0]["value"].as_str().unwrap(),
+                                alt=author["properties"]["photo"][0]["alt"].as_str().unwrap(),
+                                loading="lazy"
+                            ];
                         }
                         @author["properties"]["name"][0].as_str().unwrap()
                     }
@@ -92,7 +98,14 @@ markup::define! {
                         a.larger."u-author"[href=author["properties"]["uid"][0].as_str().unwrap()] {
                             @if let Some(photo) = author["properties"]["photo"][0].as_str() {
                                 img[src=photo, loading="lazy"];
+                            } else if let Some(photo) = author["properties"]["photo"][0].as_object() {
+                                img[
+                                    src=photo["value"].as_str().unwrap(),
+                                    alt=photo["alt"].as_str().unwrap(),
+                                    loading="lazy"
+                                ];
                             }
+
                             @author["properties"]["name"][0].as_str().unwrap()
                         }
                     }
@@ -262,6 +275,11 @@ markup::define! {
         article."h-card" {
             @if card["properties"]["photo"][0].is_string() {
                 img."u-photo"[src=card["properties"]["photo"][0].as_str().unwrap()];
+            } else if card["properties"]["photo"][0].is_object() {
+                img."u-photo"[
+                    src=card["properties"]["photo"][0]["value"].as_str().unwrap(),
+                    alt=card["properties"]["photo"][0]["alt"].as_str().unwrap()
+                ];
             }
             h1 {
                 a."u-url"."u-uid"."p-name"[href=card["properties"]["uid"][0].as_str().unwrap()] {