<% // @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; %>
Featured projects
<% slides.forEach((item, idx) => { const isClone = looped && idx >= N; %>
<% }); %>
<% } %>
- >
<% items.forEach(item => { %>
<% }); %>