<% // @license MIT // @copyright 2026 Mickaël Canouil // @author Mickaël Canouil

const featured = items.filter(i => i.featured === true);

function renderCategoryChips(item) { if (!item.categories) return ““; return item.categories .map((c) => <span class="project-category" onclick="window.quartoListingCategory('${utils.b64encode(c)}'); return false;">${c}</span>) .join(”“); } %>

<% if (featured.length > 0) { const N = featured.length; const looped = N >= 3; const TOTAL = looped ? N + 3 : N; const slides = looped ? featured.concat([featured[0], featured[1], featured[2]]) : featured; %>

<% } %>

Back to top