about summary refs log tree commit diff
path: root/templates
diff options
context:
space:
mode:
authorVika <vika@fireburn.ru>2024-08-26 17:49:45 +0300
committerVika <vika@fireburn.ru>2024-08-26 17:49:45 +0300
commit14e58b4137f8f77af43cad8b712596c2e1ab7e8a (patch)
tree841803560949d4fe7e60b232c8dc978c34988ce5 /templates
parent8f78140825380b808270422c9613999a9399c573 (diff)
downloadkittybox-14e58b4137f8f77af43cad8b712596c2e1ab7e8a.tar.zst
Indicate `u-uid` as `rel=canonical`
This only displays on top-level entries, not ones in feeds. This
should help search indexers know which URI is the canonical for a
given link.

I wonder why Google doesn't bother to parse MF2 markup. Do they think
themselves monarchs of the Internet, able to show peasants their
place? their search results are shitty anyway, I'd rather ask
GPT-2. Yes, GPT TWO. Not even 3, 4 or 4o!
Diffstat (limited to 'templates')
-rw-r--r--templates/src/mf2.rs10
1 files changed, 5 insertions, 5 deletions
diff --git a/templates/src/mf2.rs b/templates/src/mf2.rs
index 0b33f9f..4a683d6 100644
--- a/templates/src/mf2.rs
+++ b/templates/src/mf2.rs
@@ -21,9 +21,9 @@ fn decode_geo_uri(uri: &str) -> String {
 }
 
 markup::define! {
-    Entry<'a>(post: &'a serde_json::Value) {
+    Entry<'a>(post: &'a serde_json::Value, from_feed: bool) {
         @if post.pointer("/properties/like-of").is_none() && post.pointer("/properties/bookmark-of").is_none() {
-            @FullEntry { post }
+            @FullEntry { post, from_feed: *from_feed }
         } else {
             // Show a mini-post.
             @MiniEntry { post }
@@ -96,7 +96,7 @@ markup::define! {
             }
         }
     }
-    FullEntry<'a>(post: &'a serde_json::Value) {
+    FullEntry<'a>(post: &'a serde_json::Value, from_feed: bool) {
         article."h-entry" {
             header.metadata {
                 @if let Some(name) = post["properties"]["name"][0].as_str() {
@@ -121,7 +121,7 @@ markup::define! {
                 }
                 div {
                     span {
-                        a."u-url"."u-uid"[href=post["properties"]["uid"][0].as_str().unwrap()] {
+                        a."u-url"."u-uid"[href=post["properties"]["uid"][0].as_str().unwrap(), rel=(!from_feed).then_some("canonical")] {
                             @if let Some(published) = post["properties"]["published"][0].as_str() {
                                 time."dt-published"[datetime=published] {
                                     @chrono::DateTime::parse_from_rfc3339(published)
@@ -367,7 +367,7 @@ markup::define! {
             @if feed["children"].is_array() {
                 @for child in feed["children"].as_array().unwrap() {
                     @match child["type"][0].as_str().unwrap() {
-                        "h-entry" => { @Entry { post: child } }
+                        "h-entry" => { @Entry { post: child, from_feed: true, } }
                         "h-feed" => { @Feed { feed: child, cursor: None } }
                         "h-food" => { @Food { food: child } }
                         //"h-event" => { }