'+ '
'+ '
'+escapeHtml(article.title)+'
'+ '
'+escapeHtml(article.excerpt)+'
'+ '
'+ '✍️ '+escapeHtml(article.author)+''+ '📅 '+dateStr+''+ '
'+ '
'; grid.appendChild(card); }); more.style.display=filtered.length>displayedItems?'flex':'none'; } function escapeHtml(text){ var map={'&':'&','<':'<','>':'>','"':'"',"'":'''}; return text.replace(/[&<>"']/g,function(m){return map[m];}); } function updateLanguage(){ paintHead(); render(); } // инициализация paintHead(); render(); // обработчики document.getElementById('mm5-search').addEventListener('input',function(e){ searchQuery=e.target.value; displayedItems=itemsPerPage; render(); }); document.getElementById('mm5-sort').addEventListener('change',function(e){ sortBy=e.target.value; render(); }); document.getElementById('mm5-more').addEventListener('click',function(){ displayedItems+=itemsPerPage; render(); }); // синхронизация языка window.addEventListener('storage',function(e){ if(e.key==='mm-lang'&&e.newValue){ lang=e.newValue; updateLanguage(); } }); document.addEventListener('click',function(e){ var b=e.target.closest&&e.target.closest('.lang button[data-lang]'); if(b){ setTimeout(function(){ var l='ru';try{l=localStorage.getItem('mm-lang')||'ru';}catch(x){} if(l!==lang){lang=l;updateLanguage();} },30); } }); })();
Made on
Tilda