1/* Random "Top games" grid on the homepage. Reads the global `games` 2 array exposed by loadpopulargames.js (must load first) and drops 3 30 random picks into #topGamesGrid. */ 4(function() { 5 const grid = document.getElementById('topGamesGrid'); 6 if (!grid || typeof games === 'undefined') return; 7 8 const base = 'https://gbkgames.org'; 9 const withSlash = (path) => path.endsWith('/') ? path : path + '/'; 10 11 const shuffled = games.slice().sort(() => Math.random() - 0.5); 12 const picks = shuffled.slice(0, 30); 13 14 grid.innerHTML = picks.map((game) => { 15 const image = base + game.image; 16 const url = base + withSlash(game.url); 17 return '<a href="' + url + '" class="game-link">' + 18 '<div class="game-thumb"><img src="' + image + '" alt="' + game.name + '" loading="lazy"></div>' + 19 '<div class="game-link-title">' + game.name + '</div>' + 20 '</a>'; 21 }).join(''); 22})();
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.