File size: 2,697 Bytes
aee31a9 | 1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 | // script.js
// Funci贸n para cambiar pesta帽as
function openTab(evt, tabName) {
var i, tabcontent, tablinks;
tabcontent = document.getElementsByClassName("tab-content");
for (i = 0; i < tabcontent.length; i++) { tabcontent[i].classList.remove("active"); }
tablinks = document.getElementsByClassName("tab-btn");
for (i = 0; i < tablinks.length; i++) { tablinks[i].classList.remove("active"); }
document.getElementById(tabName).classList.add("active");
evt.currentTarget.classList.add("active");
}
// Funci贸n para cargar enlaces desde el XML externo
async function loadDownloadsFromXML() {
const xmlUrl = 'https://huggingface.co/arepaconcafe/neko-base/resolve/main/downloads.xml';
try {
const response = await fetch(xmlUrl);
if (!response.ok) throw new Error('No se pudo cargar el archivo XML');
const xmlText = await response.text();
const parser = new DOMParser();
const xmlDoc = parser.parseFromString(xmlText, "text/xml");
// Obtener versi贸n si existe en el XML
const release = xmlDoc.getElementsByTagName("release")[0];
if (release) {
const version = release.getAttribute("version");
document.getElementById('version-tag').textContent = `v. ${version}`;
}
// Buscar nodos <iso> y asignar enlaces
const isos = xmlDoc.getElementsByTagName("iso");
for (let i = 0; i < isos.length; i++) {
const id = isos[i].getAttribute("id");
const url = isos[i].textContent.trim();
if (id === "link-xorg") document.getElementById('link-xorg').href = url;
if (id === "link-xlibre") document.getElementById('link-xlibre').href = url;
}
console.log("Enlaces de descarga sincronizados correctamente.");
} catch (error) {
console.error("Error al sincronizar con Hugging Face:", error);
document.getElementById('version-tag').textContent = "Error de sincronizaci贸n";
}
}
// L贸gica de Scroll para el men煤 lateral
window.addEventListener('scroll', () => {
let current = '';
const sections = document.querySelectorAll('section');
sections.forEach(section => {
const sectionTop = section.offsetTop;
if (pageYOffset >= sectionTop - 150) {
current = section.getAttribute('id');
}
});
document.querySelectorAll('.nav-link').forEach(link => {
link.classList.remove('active');
if (link.getAttribute('href').includes(current)) {
link.classList.add('active');
}
});
});
// Inicializar carga al abrir la p谩gina
window.onload = loadDownloadsFromXML; |