tangled
alpha
login
or
join now
nonbinary.computer
/
weaver
atproto blogging
24
fork
atom
overview
issues
2
pulls
pipelines
image pop-in
Orual
1 month ago
e7defa5c
0625c497
+23
-19
5 changed files
expand all
collapse all
unified
split
crates
weaver-app
assets
styling
notebook-cover.css
src
components
entry.rs
notebook_cover.rs
weaver-renderer
src
atproto
embed_renderer.rs
css.rs
+2
crates/weaver-app/assets/styling/notebook-cover.css
···
52
height: 48px;
53
min-width: 48px;
54
min-height: 48px;
0
0
55
}
56
57
.notebook-cover-description {
···
52
height: 48px;
53
min-width: 48px;
54
min-height: 48px;
55
+
max-width: 48px;
56
+
max-height: 48px;
57
}
58
59
.notebook-cover-description {
+6
-6
crates/weaver-app/src/components/entry.rs
···
463
rsx! {
464
span { class: "embed-author entry-card-author",
465
if let Some(ref avatar_url) = profile.avatar {
466
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
467
}
468
span { class: "embed-author-info",
469
span { class: "embed-author-name", "{display_name}" }
···
478
rsx! {
479
span { class: "embed-author entry-card-author",
480
if let Some(ref avatar_url) = profile.avatar {
481
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
482
}
483
span { class: "embed-author-info",
484
span { class: "embed-author-name", "{display_name}" }
···
629
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
630
class: "embed-author entry-card-author",
631
if let Some(ref avatar_url) = profile.avatar {
632
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
633
}
634
span { class: "embed-author-info",
635
span { class: "embed-author-name", "{display_name}" }
···
646
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
647
class: "embed-author entry-card-author",
648
if let Some(ref avatar_url) = profile.avatar {
649
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
650
}
651
span { class: "embed-author-info",
652
span { class: "embed-author-name", "{display_name}" }
···
762
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
763
class: "embed-author",
764
if let Some(ref avatar_url) = profile.avatar {
765
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
766
}
767
span { class: "embed-author-info",
768
span { class: "embed-author-name", "{display_name}" }
···
779
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
780
class: "embed-author",
781
if let Some(ref avatar_url) = profile.avatar {
782
-
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "" }
783
}
784
span { class: "embed-author-info",
785
span { class: "embed-author-name", "{display_name}" }
···
463
rsx! {
464
span { class: "embed-author entry-card-author",
465
if let Some(ref avatar_url) = profile.avatar {
466
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
467
}
468
span { class: "embed-author-info",
469
span { class: "embed-author-name", "{display_name}" }
···
478
rsx! {
479
span { class: "embed-author entry-card-author",
480
if let Some(ref avatar_url) = profile.avatar {
481
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
482
}
483
span { class: "embed-author-info",
484
span { class: "embed-author-name", "{display_name}" }
···
629
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
630
class: "embed-author entry-card-author",
631
if let Some(ref avatar_url) = profile.avatar {
632
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
633
}
634
span { class: "embed-author-info",
635
span { class: "embed-author-name", "{display_name}" }
···
646
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
647
class: "embed-author entry-card-author",
648
if let Some(ref avatar_url) = profile.avatar {
649
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
650
}
651
span { class: "embed-author-info",
652
span { class: "embed-author-name", "{display_name}" }
···
762
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
763
class: "embed-author",
764
if let Some(ref avatar_url) = profile.avatar {
765
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
766
}
767
span { class: "embed-author-info",
768
span { class: "embed-author-name", "{display_name}" }
···
779
to: Route::RepositoryIndex { ident: AtIdentifier::Handle(handle.clone()) },
780
class: "embed-author",
781
if let Some(ref avatar_url) = profile.avatar {
782
+
img { class: "embed-avatar", src: avatar_url.as_ref(), alt: "", width: "42", height: "42" }
783
}
784
span { class: "embed-author-info",
785
span { class: "embed-author-name", "{display_name}" }
+2
-2
crates/weaver-app/src/components/notebook_cover.rs
···
130
rsx! {
131
span { class: "embed-author notebook-author",
132
if let Some(ref avatar) = p.avatar {
133
-
img { class: "embed-avatar", src: avatar.as_ref(), alt: "" }
134
}
135
span { class: "embed-author-info",
136
span { class: "embed-author-name", "{display_name}" }
···
149
rsx! {
150
span { class: "embed-author notebook-author",
151
if let Some(ref avatar) = p.avatar {
152
-
img { class: "embed-avatar", src: avatar.as_ref(), alt: "" }
153
}
154
span { class: "embed-author-info",
155
span { class: "embed-author-name", "{display_name}" }
···
130
rsx! {
131
span { class: "embed-author notebook-author",
132
if let Some(ref avatar) = p.avatar {
133
+
img { class: "embed-avatar", src: avatar.as_ref(), alt: "", width: "48", height: "48" }
134
}
135
span { class: "embed-author-info",
136
span { class: "embed-author-name", "{display_name}" }
···
149
rsx! {
150
span { class: "embed-author notebook-author",
151
if let Some(ref avatar) = p.avatar {
152
+
img { class: "embed-avatar", src: avatar.as_ref(), alt: "", width: "48", height: "48" }
153
}
154
span { class: "embed-author-info",
155
span { class: "embed-author-name", "{display_name}" }
+8
-8
crates/weaver-renderer/src/atproto/embed_renderer.rs
···
250
if let Some(avatar) = &profile.avatar {
251
html.push_str("<img class=\"embed-avatar\" src=\"");
252
html.push_str(&html_escape(avatar.as_ref()));
253
-
html.push_str("\" alt=\"\" />");
254
}
255
html.push_str("<span class=\"embed-author-info\">");
256
if let Some(display_name) = &profile.display_name {
···
288
if let Some(avatar) = &profile.avatar {
289
html.push_str("<img class=\"embed-avatar\" src=\"");
290
html.push_str(&html_escape(avatar.as_ref()));
291
-
html.push_str("\" alt=\"\" />");
292
}
293
html.push_str("<span class=\"embed-author-info\">");
294
if let Some(display_name) = &profile.display_name {
···
573
html.push_str("\" target=\"_blank\" rel=\"noopener\">");
574
html.push_str("<img class=\"embed-avatar\" src=\"");
575
html.push_str(&html_escape(avatar_url));
576
-
html.push_str("\" alt=\"\" />");
577
html.push_str("</a>");
578
} else {
579
html.push_str("<img class=\"embed-avatar\" src=\"");
580
html.push_str(&html_escape(avatar_url));
581
-
html.push_str("\" alt=\"\" />");
582
}
583
}
584
···
886
if let Some(avatar) = &generator.avatar {
887
html.push_str("<img class=\"embed-avatar\" src=\"");
888
html.push_str(&html_escape(avatar.as_ref()));
889
-
html.push_str("\" alt=\"\" />");
890
}
891
html.push_str("<span class=\"embed-author-info\">");
892
html.push_str("<span class=\"embed-author-name\">");
···
927
if let Some(avatar) = &list.avatar {
928
html.push_str("<img class=\"embed-avatar\" src=\"");
929
html.push_str(&html_escape(avatar.as_ref()));
930
-
html.push_str("\" alt=\"\" />");
931
}
932
html.push_str("<span class=\"embed-author-info\">");
933
html.push_str("<span class=\"embed-author-name\">");
···
968
if let Some(avatar) = &labeler.creator.avatar {
969
html.push_str("<img class=\"embed-avatar\" src=\"");
970
html.push_str(&html_escape(avatar.as_ref()));
971
-
html.push_str("\" alt=\"\" />");
972
}
973
html.push_str("<span class=\"embed-author-info\">");
974
if let Some(name) = &labeler.creator.display_name {
···
1001
if let Some(avatar) = &sp.creator.avatar {
1002
html.push_str("<img class=\"embed-avatar\" src=\"");
1003
html.push_str(&html_escape(avatar.as_ref()));
1004
-
html.push_str("\" alt=\"\" />");
1005
}
1006
html.push_str("<span class=\"embed-author-info\">");
1007
···
250
if let Some(avatar) = &profile.avatar {
251
html.push_str("<img class=\"embed-avatar\" src=\"");
252
html.push_str(&html_escape(avatar.as_ref()));
253
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
254
}
255
html.push_str("<span class=\"embed-author-info\">");
256
if let Some(display_name) = &profile.display_name {
···
288
if let Some(avatar) = &profile.avatar {
289
html.push_str("<img class=\"embed-avatar\" src=\"");
290
html.push_str(&html_escape(avatar.as_ref()));
291
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
292
}
293
html.push_str("<span class=\"embed-author-info\">");
294
if let Some(display_name) = &profile.display_name {
···
573
html.push_str("\" target=\"_blank\" rel=\"noopener\">");
574
html.push_str("<img class=\"embed-avatar\" src=\"");
575
html.push_str(&html_escape(avatar_url));
576
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
577
html.push_str("</a>");
578
} else {
579
html.push_str("<img class=\"embed-avatar\" src=\"");
580
html.push_str(&html_escape(avatar_url));
581
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
582
}
583
}
584
···
886
if let Some(avatar) = &generator.avatar {
887
html.push_str("<img class=\"embed-avatar\" src=\"");
888
html.push_str(&html_escape(avatar.as_ref()));
889
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
890
}
891
html.push_str("<span class=\"embed-author-info\">");
892
html.push_str("<span class=\"embed-author-name\">");
···
927
if let Some(avatar) = &list.avatar {
928
html.push_str("<img class=\"embed-avatar\" src=\"");
929
html.push_str(&html_escape(avatar.as_ref()));
930
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
931
}
932
html.push_str("<span class=\"embed-author-info\">");
933
html.push_str("<span class=\"embed-author-name\">");
···
968
if let Some(avatar) = &labeler.creator.avatar {
969
html.push_str("<img class=\"embed-avatar\" src=\"");
970
html.push_str(&html_escape(avatar.as_ref()));
971
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
972
}
973
html.push_str("<span class=\"embed-author-info\">");
974
if let Some(name) = &labeler.creator.display_name {
···
1001
if let Some(avatar) = &sp.creator.avatar {
1002
html.push_str("<img class=\"embed-avatar\" src=\"");
1003
html.push_str(&html_escape(avatar.as_ref()));
1004
+
html.push_str("\" alt=\"\" width=\"42\" height=\"42\" />");
1005
}
1006
html.push_str("<span class=\"embed-author-info\">");
1007
+5
-3
crates/weaver-renderer/src/css.rs
···
356
.embed-avatar {{
357
width: 42px;
358
height: 42px;
359
-
min-width: 42px;
360
-
min-height: 42px;
0
361
margin: 0;
362
-
flex-shrink: 0;
363
object-fit: cover;
364
}}
365
···
617
height: 24px;
618
min-width: 24px;
619
min-height: 24px;
0
0
620
}}
621
622
.embed-quote .embed-content {{
···
356
.embed-avatar {{
357
width: 42px;
358
height: 42px;
359
+
max-width: 42px;
360
+
max-height: 42px;
361
+
aspect-ratio: 1;
362
margin: 0;
0
363
object-fit: cover;
364
}}
365
···
617
height: 24px;
618
min-width: 24px;
619
min-height: 24px;
620
+
max-width: 24px;
621
+
max-height: 24px;
622
}}
623
624
.embed-quote .embed-content {{