<%= t('cfeed.title') %>

<%= t('cfeed.sub') %>

<% if (typeof sites !== 'undefined' && sites && sites.length) { %> <% if (sites.length <= 5) { %>
<% sites.forEach(function(s){ %> <% if (s.url) { %><% } else { %><% } %> style="background-image:url('<%= s.avatar %>');background-color:transparent"<% } %>><% if (!s.avatar) { %><%= (s.name || '?').charAt(0).toUpperCase() %><% } %> <%= s.name %> <% if (s.url) { %><% } else { %><% } %> <% }); %>
<% } else { %> <%# More than 5: the count pill becomes a button that opens a modal listing every member (avatar + name + link). CSS-only via a hidden checkbox — no JS, so it's CSP- (no inline handler) and htmx-safe. Checkbox must precede .cirkel-modal so the `:checked ~` sibling selector matches. %> <% } %> <% } %>
<% if (!posts.length) { %>

<%= t('cfeed.empty') %>

<% } else { %> <%# Same view as the home page: timeline (post-card) + grid (post-tile), switched by the view-switcher via body[data-feed-view]. The remote posts are shaped to the local post format in circle.js (with external_url, so cards link to the source site). %>
<% posts.forEach(function(post){ %> <%- include('../partials/post-tile', { post: post }) %> <% }); %>
<% if (typeof hasMore !== 'undefined') { %>
<%- include('../partials/load-more', { hasMore: hasMore, nextOffset: nextOffset, moreBase: moreBase, moreTarget: '#post-list', morePath: '/cirkel' }) %>
<% } %> <% } %>