@justai/cuts 0.49.0 → 0.50.0
This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
- package/package.json +1 -1
- package/src/Posts.astro +15 -7
package/package.json
CHANGED
package/src/Posts.astro
CHANGED
|
@@ -21,12 +21,20 @@
|
|
|
21
21
|
// folding it UP into this cut is what lets every persona show a cross-reply correctly instead of
|
|
22
22
|
// mislabelling it as its own.
|
|
23
23
|
//
|
|
24
|
-
//
|
|
25
|
-
//
|
|
26
|
-
//
|
|
27
|
-
//
|
|
28
|
-
//
|
|
29
|
-
//
|
|
24
|
+
// EVERYONE IS NAMED ONCE — no @handle anywhere in this feed.
|
|
25
|
+
//
|
|
26
|
+
// It started with the personas, where the name and the handle are the same word by construction: app.zone
|
|
27
|
+
// beside @appzone, AMRAP beside @amrap, Tabata beside @tabata. One reads as identity; six down a thread read
|
|
28
|
+
// as stutter, and on a 480px column each one spent width saying nothing new. The self-reply had always
|
|
29
|
+
// rendered as `name · time`, so dropping the rest just made the family read the way the host already did.
|
|
30
|
+
//
|
|
31
|
+
// Humans were kept for one release on the argument that a person's display name and their account are two
|
|
32
|
+
// different facts. Overruled, and the call is better than the argument was: what a reader needs from a line
|
|
33
|
+
// in a conversation is who said it, and the name is that. The @handle was a convention borrowed from a
|
|
34
|
+
// product where handles are how you address someone — nobody is addressed here.
|
|
35
|
+
//
|
|
36
|
+
// `handle` (the prop) and `authorHandle` (the API field) both stay: they are keys, not labels. The feed
|
|
37
|
+
// query, the is-this-mine test, and the link to another persona's profile all read them. Nothing prints them.
|
|
30
38
|
interface Props {
|
|
31
39
|
handle: string; // the persona KEY — the feed query (?persona=) and the "is this reply mine?" test
|
|
32
40
|
name: string; // the persona's display name; rendered RAW, so a name may carry markup (justai's ".pro")
|
|
@@ -242,7 +250,7 @@ const vars = [
|
|
|
242
250
|
return `<div class="trow${last ? " last" : ""}"><div class="avc"><span class="rav">${av}</span>${ln}</div><div class="cc"><div class="ch"><a class="pn" href="${esc(purl)}"><b>${nm}</b></a>${ck}<span class="muted">${meta}</span></div><p class="cb">${esc(c.body)}</p></div></div>`;
|
|
243
251
|
}
|
|
244
252
|
const initial = esc(String(c.authorName || "?").slice(0, 1));
|
|
245
|
-
return `<div class="trow${last ? " last" : ""}"><div class="avc"><span class="uav" style="--c:${esc(c.authorColor || "#888")}">${initial}</span>${ln}</div><div class="cc"><div class="ch"><b>${esc(c.authorName)}</b><span class="muted"
|
|
253
|
+
return `<div class="trow${last ? " last" : ""}"><div class="avc"><span class="uav" style="--c:${esc(c.authorColor || "#888")}">${initial}</span>${ln}</div><div class="cc"><div class="ch"><b>${esc(c.authorName)}</b><span class="muted">· ${timeAgo(c.createdAt)}</span></div><p class="cb">${esc(c.body)}</p></div></div>`;
|
|
246
254
|
};
|
|
247
255
|
const post = (p: P): string => {
|
|
248
256
|
const cs = p.comments || [];
|