Ignore:
Timestamp:
08/19/2026 06:43:41 PM (3 weeks ago)
Author:
Robin <roboburr@…>
Branches:
main
Children:
5869b1f
Parents:
3a3a882
Message:

Covers in de leesweergave

Een bericht in de leesstroom begon met kale tekst: de cover ontbrak,
terwijl hij op de berichtpagina, in de tijdlijn en in Grid gewoon staat.
Nu staat hij er ook, boven de titel, in dezelfde volgorde als post.ejs.

Twee dingen komen van post-card en niet van post.ejs. De SLUIER: op de
berichtpagina hangt de NSFW-waarschuwing als banner boven de pagina,
want daar staat een bericht -- in een stroom kan dat niet, want de buren
rollen voorbij en dan is het beeld onderweg al te zien. En thumb(), want
hier staan er meerdere onder elkaar in een stroom die dooraanvult.

De hoogte is begrensd op 45svh. Een paneel is min-height:100svh en snapt;
een staande foto op volle breedte zou titel en eerste alinea onder de
vouw duwen, en dan begint elk bericht met een plaat waar je langs moet
scrollen om te zien wat het is.

Nagekeken en niet aangenomen: beide voedingen van readerItems() halen
SELECT p.* op, dus cover_image_url, cover_video_url, cover_alt, nsfw en
content_warning komen mee. Een versmalde kolommenlijst zou hier niets
opleveren zonder ergens te klagen.

Co-Authored-By: Claude Opus 5 <noreply@…>

File:
1 edited

Legend:

Unmodified
Added
Removed
  • src/views/partials/read-article.ejs

    r3a3a882 r8c91ed3  
    2525      Een <a> en niet alleen een tik-afhandelaar: dat werkt ook met een
    2626      toetsenbord, met een schermlezer, en met cmd-klik. %>
     27  <%# De cover hoort hier net zo goed als op de berichtpagina: het is het beeld
     28      van het stuk, en zonder hem begint elk bericht in de stroom met kale tekst.
     29      Boven de titel, in dezelfde volgorde als post.ejs.
     30
     31      Twee dingen komen hier van post-card en NIET van post.ejs:
     32
     33      - De SLUIER. Op de berichtpagina hangt de waarschuwing als banner boven de
     34        hele pagina, want daar staat een bericht. In een stroom kan dat niet: de
     35        buren rollen gewoon voorbij, dus het beeld moet zijn eigen sluier dragen
     36        of het is onderweg al te zien. De afhandelaar zit gedelegeerd op
     37        document (shell.ejs), dus hij werkt ook op wat de client later aanschuift.
     38      - thumb(). De bron kan het volle bestand zijn en hier staan er meerdere
     39        onder elkaar in een stroom die dooraanvult.
     40
     41      cover_image_url en cover_video_url komen mee: beide voedingen van
     42      readerItems() halen `SELECT p.*` op (routes/posts.js, de pinned- en de
     43      gewone feed-query). Nagekeken, want een versmalde lijst zou hier niets
     44      opleveren zonder ergens te klagen. %>
     45  <% if (post.cover_image_url || post.cover_video_url) { %>
     46    <figure class="read-cover<%= post.nsfw ? ' nsfw-media' : '' %>">
     47      <% if (post.cover_image_url) { %>
     48        <img src="<%= thumb(post.cover_image_url, 1280) %>"
     49             srcset="<%= thumb(post.cover_image_url, 640) %> 640w, <%= thumb(post.cover_image_url, 1280) %> 1280w"
     50             sizes="(min-width: 768px) 46rem, 100vw"
     51             alt="<%= post.cover_alt || '' %>" loading="lazy" decoding="async"<% if (post.cover_video_url) { %> data-ios-mp4="<%= post.cover_video_url %>"<% } %>>
     52      <% } else { %>
     53        <video src="<%= post.cover_video_url %>" poster="<%= thumb(post.cover_video_url, 1280) %>"
     54               controls loop muted playsinline preload="metadata"></video>
     55      <% } %>
     56      <% if (post.nsfw) { %><span class="nsfw-veil"><%- include('nsfw-veil', { cw: post.content_warning }) %></span><% } %>
     57    </figure>
     58  <% } %>
     59
    2760  <header class="read-head">
    2861    <h1 class="read-title"><a href="<%= _b %>/<%= post.slug %>"><%= post.title || '' %></a></h1>
Note: See TracChangeset for help on using the changeset viewer.