source: Klonkt/src/views/pages/lees.ejs@ f5cf299

main
Last change on this file since f5cf299 was f5cf299, checked in by Bart <bart@…>, 3 weeks ago

/lees: één bericht vult het scherm, met zijn buren als schildwachten

Stap 2 van de meeslepende tijdlijn. De route levert één bericht plus de twee
buren uit postNeighbors() -- dezelfde die de gewone postpagina gebruikt, zodat
"vorige" daar en hier hetzelfde betekent, gepinde berichten inbegrepen.

De schildwachten staan BINNEN het artikelblok en niet eromheen. Dat is het punt
waar dit later op zou stukgaan: staan ze erbuiten, dan wijzen ze na een
verwisseling nog naar het vorige bericht. Nu komt de hele staat uit het nieuwe
stuk en hoeft de client niets te onthouden.

?partial=1 geeft alleen het artikel, want dat is precies wat er ingeruild wordt.

Het lijf komt via postEntry(), dus een dichte poort levert hier geen tekst op --
gecontroleerd met een rooktest door de echte server: /lees, /lees/:slug, een
betaald bericht en de partial, en in alle vier staat de tweede alinea nergens in
het antwoord.

'lees' staat in de gereserveerde namen, anders overschaduwt een bericht met die
slug de route. En een noscript-terugval met twee gewone links: een tijdlijn die
alleen met script bestaat, bestaat niet voor wie het uitzet.

Nog niet gebouwd: het overscrollen zelf (stap 3).

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

  • Property mode set to 100644
File size: 1.7 KB
Line 
1<%
2// De meeslepende tijdlijn: één bericht vult het scherm, de chrome gaat weg.
3//
4// Barts idee, naar bartoverkamp.nl: lezen zonder balken, en voorbij de rand
5// scrollen brengt je bij de buurman. De ⏫/⏬ verschijnen bij de rand en worden
6// 🔄 als je ver genoeg doortrekt; de 👋 blijft staan als weg terug, want een
7// scherm zonder uitgang is geen scherm maar een val.
8//
9// Alles wat beweegt zit in de client (pageJs 'lees'). Zonder JavaScript blijft
10// dit een leesbaar artikel met twee gewone links -- dat is met opzet: een
11// tijdlijn die alleen met script bestaat, bestaat niet voor wie hem uitzet.
12var _b = (typeof siteUrlBase !== 'undefined' && siteUrlBase) ? siteUrlBase : '';
13%>
14
15<div class="lees-shell" id="lees-shell">
16 <%- include('../partials/lees-article', {
17 post: post, entry: entry, newerPost: newerPost, olderPost: olderPost,
18 }) %>
19
20 <%# De weg terug. Blijft zichtbaar als de chrome weg is -- op bartoverkamp.nl
21 is de 👋 de sessieknop in het zwevende menu, en hier doet hij hetzelfde
22 werk: hij brengt je uit het leesscherm terug naar de site. %>
23 <nav class="lees-exit" aria-label="<%= t('lees.exit_label') %>">
24 <a class="lees-hand" href="<%= _b %>/" title="<%= t('lees.exit') %>" aria-label="<%= t('lees.exit') %>">👋</a>
25 </nav>
26
27 <%# Zonder script geen overscroll: dan zijn dit gewoon twee links, en kom je
28 er nog steeds doorheen. %>
29 <noscript>
30 <nav class="lees-fallback">
31 <% if (newerPost) { %><a href="<%= _b %>/lees/<%= newerPost.slug %>">⏫ <%= newerPost.title %></a><% } %>
32 <% if (olderPost) { %><a href="<%= _b %>/lees/<%= olderPost.slug %>">⏬ <%= olderPost.title %></a><% } %>
33 </nav>
34 </noscript>
35</div>
Note: See TracBrowser for help on using the repository browser.