%#
Het profiel van een ward, en het enige dat een bezoeker van de site ziet
(Robins ontwerp, 30-9; zie middleware/ward-profile.js).
Omdat dit ALLES is wat er openbaar staat, mag het er verzorgd uitzien: een
eigen pagina en geen voorpagina met een lege stroom eronder.
Dezelfde bronnen als de profielkop (partials/profile-header.ejs), zodat het
profiel op geen twee plekken iets anders kan zeggen: naam uit profile_name of
title, tekst uit profile_bio, description of tagline, links uit profile_links.
NERGENS "KIND" OF "WARD". Dat deze account guardians heeft staat al openbaar op
de fediverse (shaer:guardians, FEP-633c 2.1); deze pagina hoeft dat niet in
koeienletters te herhalen. Wat een bezoeker wel hoort te weten, is dat de
berichten er niet voor hem staan -- neutraal gezegd.
Verwacht: site, wardHandle, wardLinks, platforms_catalog, avatar, t.
%>
<%
const _name = site.profile_name || site.title || site.slug;
const _bio = site.profile_bio || site.description || site.tagline || '';
const _photo = site.profile_photo || '';
const _catalog = (typeof platforms_catalog !== 'undefined' && platforms_catalog) || {};
const _links = (wardLinks || []).filter(function (l) { return l && _catalog[l.platform]; });
const _href = function (p, u) {
u = String(u || '').trim();
if (p === 'email' && u.indexOf('mailto:') !== 0) return 'mailto:' + u;
if (p === 'phone' && !/^tel:/i.test(u)) return 'tel:' + u.replace(/[^\d+]/g, '');
return u;
};
const _showFollow = site.slug && (typeof apEnabled === 'undefined' || apEnabled);
%>