1/* ============================================================ 2 AZURE â жÑÑнал 3 ============================================================ */ 4(() => { 5'use strict'; 6const $ = (s, r = document) => r.querySelector(s); 7const $$ = (s, r = document) => [...r.querySelectorAll(s)]; 8const T = (ru, en) => AZI18N.t(ru, en); 9 10AZI18N.addDict({ 11 'bl.title':'Travel <i>journal</i>', 12 'bl.lead':'What twelve years of work taught us: when to go, what to pack and why some routes work while others do not.', 13}); 14 15let cat = 'all'; 16const cats = () => { 17 const seen = new Map(); 18 AZ.ARTICLES.forEach(a => seen.set(a.cat.ru, a.cat)); 19 return [...seen.values()]; 20}; 21 22const paint = () => { 23 const L = AZ.lang(); 24 $('#blCats').innerHTML = 25 `<button type="button" class="bl-cat${cat==='all'?' is-on':''}" data-c="all">${T('ÐÑе','All')}</button>` 26 + cats().map(c => `<button type="button" class="bl-cat${cat===c.ru?' is-on':''}" data-c="${AZR.esc(c.ru)}">${AZR.esc(c[L])}</button>`).join(''); 27 28 const list = AZ.ARTICLES.filter(a => cat === 'all' || a.cat.ru === cat); 29 $('#blGrid').innerHTML = list.map((a, i) => AZR.postCard(a, i, i === 0 && cat === 'all')).join(''); 30 AZReveal(); 31}; 32 33$('#blCats').addEventListener('click', e => { 34 const b = e.target.closest('.bl-cat'); 35 if (!b) return; 36 cat = b.dataset.c; 37 paint(); 38}); 39 40paint(); 41AZI18N.onLang(paint); 42})();
Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.